-
Notifications
You must be signed in to change notification settings - Fork 413
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ExoPlayer still wrongly decode some MP3 file #1480
Comments
Thanks for the report. I can reproduce the issue by playing the I tried reverting 5b3066f and I see the same behaviour. I built the demo app at 1.3.1 and I see the same behaviour there (though with the expected incorrect duration), so I don't think this is a regression. Did the user report this file working correctly previously? On what media3 version? |
Did not say it's a regression, just that on those files the duration was also wrong before that patch by a few seconds and it's now the correct one. So it's possible the issue is tied like you fixed most of the stuff and it shows proper durations but there's still a wrong calculation leading to the app trying to read too much at the end by not using the updated calculation and so error and so break Gapless. |
#1563 points out that this is a regression since 1.2.1, and it is (like #1376) due to using "constant bitrate seeking" for files with an media/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/ConstantBitrateSeeker.java Lines 71 to 73 in 40de898
I've fixed this by changing this method to return I've sent this change for internal review. |
This is needed to correctly handle files with trailing non-MP3 data (which is indicated by the length in the `Info` frame being shorter than the overall length of the file). The test file was generated by appending 150kB of `DEADBEEF` onto the end of `test-cbr-info-header.mp3`, and the test asserts that the extracted samples are identical. Issue: #1480 #cherrypick PiperOrigin-RevId: 658727595
Should be fixed by the commit linked above. |
Thanks, is 1.5 alpha 1 planned relatively soon or should I just backport on my copy ? |
I plan to include b09cea9 in 1.4.1 which should be released this month (August). It will also be included in 1.5.0-alpha01, which atm is due to be released towards the beginning of next month (September). |
Perfect thanks. |
This is needed to correctly handle files with trailing non-MP3 data (which is indicated by the length in the `Info` frame being shorter than the overall length of the file). The test file was generated by appending 150kB of `DEADBEEF` onto the end of `test-cbr-info-header.mp3`, and the test asserts that the extracted samples are identical. Issue: #1480 PiperOrigin-RevId: 658727595 (cherry picked from commit b09cea9)
@parkbrakereminder then open a new issue and provide a media that reproduce it. They can't do anything without a repro. |
Version
Media3 pre-release (alpha, beta or RC not in this list)
More version details
1.4.0 Beta 1
Devices that reproduce the issue
All
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Not tested
Reproduction steps
Play the attached files, they should support gapless but it's not working and logs shows :
This is probably a follow up to #1376 as the user report that in the previous version (so before the fix from that issue) the duration was wrongly reported. Now the duration is good but there's still some decoding issue somewhere.
Expected result
No error in logs and gapless working
Actual result
Does not gapless and error in logs:
Media
Downloads.zip
Bug Report
adb bugreport
to [email protected] after filing this issue.The text was updated successfully, but these errors were encountered: