Skip to content

Commit 64c40ae

Browse files
authored
Merge pull request #965 from nextcloud/fix/update-id3parser/stable22
[stable22] Bump christophwurst/id3parser to 0.1.4
2 parents b9b7832 + 298c1ce commit 64c40ae

File tree

6 files changed

+41
-38
lines changed

6 files changed

+41
-38
lines changed

christophwurst/id3parser/src/getID3/Tags/getid3_id3v2.php

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1870,17 +1870,14 @@ public function ParseID3v2Frame(&$parsedFrame) {
18701870
$frame_offset = 0;
18711871
$parsedFrame['peakamplitude'] = getid3_lib::BigEndian2Float(substr($parsedFrame['data'], $frame_offset, 4));
18721872
$frame_offset += 4;
1873-
$rg_track_adjustment = getid3_lib::Dec2Bin(substr($parsedFrame['data'], $frame_offset, 2));
1874-
$frame_offset += 2;
1875-
$rg_album_adjustment = getid3_lib::Dec2Bin(substr($parsedFrame['data'], $frame_offset, 2));
1876-
$parsedFrame['raw']['track']['name'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 0, 3));
1877-
$parsedFrame['raw']['track']['originator'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 3, 3));
1878-
$parsedFrame['raw']['track']['signbit'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 6, 1));
1879-
$parsedFrame['raw']['track']['adjustment'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 7, 9));
1880-
$parsedFrame['raw']['album']['name'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 0, 3));
1881-
$parsedFrame['raw']['album']['originator'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 3, 3));
1882-
$parsedFrame['raw']['album']['signbit'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 6, 1));
1883-
$parsedFrame['raw']['album']['adjustment'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 7, 9));
1873+
foreach (array('track','album') as $rgad_entry_type) {
1874+
$rg_adjustment_word = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2));
1875+
$frame_offset += 2;
1876+
$parsedFrame['raw'][$rgad_entry_type]['name'] = ($rg_adjustment_word & 0xE000) >> 13;
1877+
$parsedFrame['raw'][$rgad_entry_type]['originator'] = ($rg_adjustment_word & 0x1C00) >> 10;
1878+
$parsedFrame['raw'][$rgad_entry_type]['signbit'] = ($rg_adjustment_word & 0x0200) >> 9;
1879+
$parsedFrame['raw'][$rgad_entry_type]['adjustment'] = ($rg_adjustment_word & 0x0100);
1880+
}
18841881
$parsedFrame['track']['name'] = getid3_lib::RGADnameLookup($parsedFrame['raw']['track']['name']);
18851882
$parsedFrame['track']['originator'] = getid3_lib::RGADoriginatorLookup($parsedFrame['raw']['track']['originator']);
18861883
$parsedFrame['track']['adjustment'] = getid3_lib::RGADadjustmentLookup($parsedFrame['raw']['track']['adjustment'], $parsedFrame['raw']['track']['signbit']);

christophwurst/id3parser/src/getID3/getid3_lib.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -295,14 +295,20 @@ public static function BigEndian2String($number, $minbytes=1, $synchsafe=false,
295295

296296

297297
public static function Dec2Bin($number) {
298+
if (!is_numeric($number)) {
299+
// https://github.com/JamesHeinrich/getID3/issues/299
300+
trigger_error('TypeError: Dec2Bin(): Argument #1 ($number) must be numeric, '.gettype($number).' given', E_USER_WARNING);
301+
return '';
302+
}
303+
$bytes = array();
298304
while ($number >= 256) {
299-
$bytes[] = (($number / 256) - (floor($number / 256))) * 256;
305+
$bytes[] = (int) (($number / 256) - (floor($number / 256))) * 256;
300306
$number = floor($number / 256);
301307
}
302-
$bytes[] = $number;
308+
$bytes[] = (int) $number;
303309
$binstring = '';
304-
for ($i = 0; $i < count($bytes); $i++) {
305-
$binstring = (($i == count($bytes) - 1) ? decbin($bytes[$i]) : str_pad(decbin($bytes[$i]), 8, '0', STR_PAD_LEFT)).$binstring;
310+
foreach ($bytes as $i => $byte) {
311+
$binstring = (($i == count($bytes) - 1) ? decbin($byte) : str_pad(decbin($byte), 8, '0', STR_PAD_LEFT)).$binstring;
306312
}
307313
return $binstring;
308314
}
@@ -1147,7 +1153,7 @@ public static function trimNullByte($string) {
11471153
* @param string $suffix If the name component ends in suffix this will also be cut off.
11481154
* @return string
11491155
*/
1150-
public static function mb_basename($path, $suffix = null) {
1156+
public static function mb_basename($path, $suffix = '') {
11511157
$splited = preg_split('#/#', rtrim($path, '/ '));
11521158
return substr(basename('X'.$splited[count($splited) - 1], $suffix), 1);
11531159
}

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"php": "^7.3|^8.0",
2020
"aws/aws-sdk-php": "^3.35",
2121
"bantu/ini-get-wrapper": "v1.0.1",
22-
"christophwurst/id3parser": "^0.1.1",
22+
"christophwurst/id3parser": "^0.1.4",
2323
"cweagans/composer-patches": "^1.7",
2424
"deepdiver/zipstreamer": "2.0.0",
2525
"deepdiver1975/tarstreamer": "v2.0.0",

composer.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

composer/installed.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -309,23 +309,23 @@
309309
},
310310
{
311311
"name": "christophwurst/id3parser",
312-
"version": "v0.1.2",
313-
"version_normalized": "0.1.2.0",
312+
"version": "v0.1.4",
313+
"version_normalized": "0.1.4.0",
314314
"source": {
315315
"type": "git",
316316
"url": "https://github.com/ChristophWurst/ID3Parser.git",
317-
"reference": "d7f5e9e7db69a24e3111a2033cbdf640f9456f2f"
317+
"reference": "050c9d81ea89b0cf53e23a27efc4e1840f9ab260"
318318
},
319319
"dist": {
320320
"type": "zip",
321-
"url": "https://api.github.com/repos/ChristophWurst/ID3Parser/zipball/d7f5e9e7db69a24e3111a2033cbdf640f9456f2f",
322-
"reference": "d7f5e9e7db69a24e3111a2033cbdf640f9456f2f",
321+
"url": "https://api.github.com/repos/ChristophWurst/ID3Parser/zipball/050c9d81ea89b0cf53e23a27efc4e1840f9ab260",
322+
"reference": "050c9d81ea89b0cf53e23a27efc4e1840f9ab260",
323323
"shasum": ""
324324
},
325325
"require": {
326326
"php": ">=5.4.0"
327327
},
328-
"time": "2021-02-09T08:04:08+00:00",
328+
"time": "2021-11-29T15:02:22+00:00",
329329
"type": "library",
330330
"installation-source": "dist",
331331
"autoload": {
@@ -346,7 +346,7 @@
346346
],
347347
"support": {
348348
"issues": "https://github.com/ChristophWurst/ID3Parser/issues",
349-
"source": "https://github.com/ChristophWurst/ID3Parser/tree/v0.1.2"
349+
"source": "https://github.com/ChristophWurst/ID3Parser/tree/v0.1.4"
350350
},
351351
"install-path": "../christophwurst/id3parser"
352352
},
@@ -6617,6 +6617,6 @@
66176617
"install-path": "../web-auth/webauthn-lib"
66186618
}
66196619
],
6620-
"dev": true,
6620+
"dev": false,
66216621
"dev-package-names": []
66226622
}

composer/installed.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
'type' => 'library',
66
'install_path' => __DIR__ . '/../',
77
'aliases' => array(),
8-
'reference' => 'b83b10a0808b054f8cfbac0c5fbdffab15f90591',
8+
'reference' => 'b9b78329604fdbd9c06f8ef4d6cb4fa5ad8ab3c2',
99
'name' => 'nextcloud/3rdparty',
10-
'dev' => true,
10+
'dev' => false,
1111
),
1212
'versions' => array(
1313
'aws/aws-crt-php' => array(
@@ -56,12 +56,12 @@
5656
'dev_requirement' => false,
5757
),
5858
'christophwurst/id3parser' => array(
59-
'pretty_version' => 'v0.1.2',
60-
'version' => '0.1.2.0',
59+
'pretty_version' => 'v0.1.4',
60+
'version' => '0.1.4.0',
6161
'type' => 'library',
6262
'install_path' => __DIR__ . '/../christophwurst/id3parser',
6363
'aliases' => array(),
64-
'reference' => 'd7f5e9e7db69a24e3111a2033cbdf640f9456f2f',
64+
'reference' => '050c9d81ea89b0cf53e23a27efc4e1840f9ab260',
6565
'dev_requirement' => false,
6666
),
6767
'composer/package-versions-deprecated' => array(
@@ -313,7 +313,7 @@
313313
'type' => 'library',
314314
'install_path' => __DIR__ . '/../',
315315
'aliases' => array(),
316-
'reference' => 'b83b10a0808b054f8cfbac0c5fbdffab15f90591',
316+
'reference' => 'b9b78329604fdbd9c06f8ef4d6cb4fa5ad8ab3c2',
317317
'dev_requirement' => false,
318318
),
319319
'nextcloud/lognormalizer' => array(

0 commit comments

Comments
 (0)