wip
This commit is contained in:
@@ -305,7 +305,11 @@ class getid3_mp3 extends getid3_handler
|
||||
} elseif (!empty($info['audio']['bitrate'])) {
|
||||
|
||||
if ($info['audio']['bitrate_mode'] == 'cbr') {
|
||||
$encoder_options = strtoupper($info['audio']['bitrate_mode']).round($info['audio']['bitrate'] / 1000);
|
||||
if ($info['audio']['bitrate'] == 'free') {
|
||||
$encoder_options = strtoupper($info['audio']['bitrate_mode']);
|
||||
} else {
|
||||
$encoder_options = strtoupper($info['audio']['bitrate_mode']).round($info['audio']['bitrate'] / 1000);
|
||||
}
|
||||
} else {
|
||||
$encoder_options = strtoupper($info['audio']['bitrate_mode']);
|
||||
}
|
||||
@@ -315,7 +319,7 @@ class getid3_mp3 extends getid3_handler
|
||||
$encoder_options .= ' -b'.$thisfile_mpeg_audio_lame['bitrate_min'];
|
||||
}
|
||||
|
||||
if (isset($thisfile_mpeg_audio['bitrate']) && $thisfile_mpeg_audio['bitrate'] === 'free') {
|
||||
if (isset($thisfile_mpeg_audio['bitrate']) && ($thisfile_mpeg_audio['bitrate'] === 'free')) {
|
||||
$encoder_options .= ' --freeformat';
|
||||
}
|
||||
|
||||
@@ -712,7 +716,7 @@ class getid3_mp3 extends getid3_handler
|
||||
//$info['audio']['bitrate'] = (($framelengthfloat - intval($thisfile_mpeg_audio['padding'])) * $thisfile_mpeg_audio['sample_rate']) / 144;
|
||||
$info['audio']['bitrate'] = $framelengthfloat * $thisfile_mpeg_audio['sample_rate'] * (2 / $info['audio']['channels']) / 144;
|
||||
}
|
||||
$thisfile_mpeg_audio['framelength'] = floor($framelengthfloat);
|
||||
$thisfile_mpeg_audio['framelength'] = (int) floor($framelengthfloat);
|
||||
}
|
||||
|
||||
if ($thisfile_mpeg_audio['xing_flags']['toc']) {
|
||||
@@ -919,7 +923,7 @@ class getid3_mp3 extends getid3_handler
|
||||
|
||||
|
||||
// LAME CBR
|
||||
if ($thisfile_mpeg_audio_lame_raw['vbr_method'] == 1 && $thisfile_mpeg_audio['bitrate'] !== 'free') {
|
||||
if (($thisfile_mpeg_audio_lame_raw['vbr_method'] == 1) && ($thisfile_mpeg_audio['bitrate'] !== 'free')) {
|
||||
|
||||
$thisfile_mpeg_audio['bitrate_mode'] = 'cbr';
|
||||
$thisfile_mpeg_audio['bitrate'] = self::ClosestStandardMP3Bitrate($thisfile_mpeg_audio['bitrate']);
|
||||
@@ -1174,7 +1178,6 @@ class getid3_mp3 extends getid3_handler
|
||||
|
||||
$nextframetestarray = array('error' => array(), 'warning' => array(), 'avdataend' => $info['avdataend'], 'avdataoffset'=>$info['avdataoffset']);
|
||||
if ($this->decodeMPEGaudioHeader($nextframetestoffset, $nextframetestarray, false)) {
|
||||
/** @phpstan-ignore-next-line */
|
||||
getid3_lib::safe_inc($info['mp3_validity_check_bitrates'][$nextframetestarray['mpeg']['audio']['bitrate']]);
|
||||
if ($ScanAsCBR) {
|
||||
// force CBR mode, used for trying to pick out invalid audio streams with valid(?) VBR headers, or VBR streams with no VBR header
|
||||
@@ -1186,7 +1189,7 @@ class getid3_mp3 extends getid3_handler
|
||||
|
||||
// next frame is OK, get ready to check the one after that
|
||||
if (isset($nextframetestarray['mpeg']['audio']['framelength']) && ($nextframetestarray['mpeg']['audio']['framelength'] > 0)) {
|
||||
$nextframetestoffset += $nextframetestarray['mpeg']['audio']['framelength'];
|
||||
$nextframetestoffset += (int) $nextframetestarray['mpeg']['audio']['framelength'];
|
||||
} else {
|
||||
$this->error('Frame at offset ('.$offset.') is has an invalid frame length.');
|
||||
return false;
|
||||
@@ -1761,14 +1764,15 @@ class getid3_mp3 extends getid3_handler
|
||||
static $MPEGaudioBitrate;
|
||||
if (empty($MPEGaudioBitrate)) {
|
||||
$MPEGaudioBitrate = array (
|
||||
'1' => array (1 => array('free', 32000, 64000, 96000, 128000, 160000, 192000, 224000, 256000, 288000, 320000, 352000, 384000, 416000, 448000),
|
||||
2 => array('free', 32000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000, 384000),
|
||||
3 => array('free', 32000, 40000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000)
|
||||
),
|
||||
|
||||
'2' => array (1 => array('free', 32000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 144000, 160000, 176000, 192000, 224000, 256000),
|
||||
2 => array('free', 8000, 16000, 24000, 32000, 40000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 144000, 160000),
|
||||
)
|
||||
'1' => array(
|
||||
1 => array('free', 32000, 64000, 96000, 128000, 160000, 192000, 224000, 256000, 288000, 320000, 352000, 384000, 416000, 448000),
|
||||
2 => array('free', 32000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000, 384000),
|
||||
3 => array('free', 32000, 40000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000)
|
||||
),
|
||||
'2' => array(
|
||||
1 => array('free', 32000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 144000, 160000, 176000, 192000, 224000, 256000),
|
||||
2 => array('free', 8000, 16000, 24000, 32000, 40000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 144000, 160000),
|
||||
),
|
||||
);
|
||||
$MPEGaudioBitrate['2'][3] = $MPEGaudioBitrate['2'][2];
|
||||
$MPEGaudioBitrate['2.5'] = $MPEGaudioBitrate['2'];
|
||||
|
||||
Reference in New Issue
Block a user