mirror of
https://github.com/samsonjs/media.git
synced 2026-04-19 13:35:47 +00:00
Revert to using header bitrate for CBR MP3s
A previous change switched to calculation of the bitrate based on the first MPEG audio header in the stream. This had the effect of fixing seeking to be consistent with playing from the start for streams where every frame has the same padding value, but broke streams where the encoder (correctly) modifies the padding value to match the declared bitrate in the header. Issue: #6238 PiperOrigin-RevId: 261163904
This commit is contained in:
parent
42d3ca273b
commit
5eab519925
6 changed files with 6 additions and 8 deletions
|
|
@ -31,6 +31,8 @@
|
|||
([#6241](https://github.com/google/ExoPlayer/issues/6241)).
|
||||
* Fix Flac and ALAC playback on some LG devices
|
||||
([#5938](https://github.com/google/ExoPlayer/issues/5938)).
|
||||
* MP3: use CBR header bitrate, not calculated bitrate. This reverts a change
|
||||
from 2.9.3 ([#6238](https://github.com/google/ExoPlayer/issues/6238)).
|
||||
|
||||
### 2.10.4 ###
|
||||
|
||||
|
|
|
|||
|
|
@ -186,10 +186,6 @@ public final class MpegAudioHeader {
|
|||
}
|
||||
}
|
||||
|
||||
// Calculate the bitrate in the same way Mp3Extractor calculates sample timestamps so that
|
||||
// seeking to a given timestamp and playing from the start up to that timestamp give the same
|
||||
// results for CBR streams. See also [internal: b/120390268].
|
||||
bitrate = 8 * frameSize * sampleRate / samplesPerFrame;
|
||||
String mimeType = MIME_TYPE_BY_LAYER[3 - layer];
|
||||
int channels = ((headerData >> 6) & 3) == 3 ? 1 : 2;
|
||||
header.setValues(version, mimeType, frameSize, sampleRate, channels, bitrate, samplesPerFrame);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
seekMap:
|
||||
isSeekable = true
|
||||
duration = 26122
|
||||
duration = 26125
|
||||
getPosition(0) = [[timeUs=0, position=0]]
|
||||
numberOfTracks = 1
|
||||
track 0:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
seekMap:
|
||||
isSeekable = true
|
||||
duration = 26122
|
||||
duration = 26125
|
||||
getPosition(0) = [[timeUs=0, position=0]]
|
||||
numberOfTracks = 1
|
||||
track 0:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
seekMap:
|
||||
isSeekable = true
|
||||
duration = 26122
|
||||
duration = 26125
|
||||
getPosition(0) = [[timeUs=0, position=0]]
|
||||
numberOfTracks = 1
|
||||
track 0:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
seekMap:
|
||||
isSeekable = true
|
||||
duration = 26122
|
||||
duration = 26125
|
||||
getPosition(0) = [[timeUs=0, position=0]]
|
||||
numberOfTracks = 1
|
||||
track 0:
|
||||
|
|
|
|||
Loading…
Reference in a new issue