Skip to content
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

java.io.EOFException: ExoPlayer does not play short AAC File #6700

Closed
patrick131313 opened this issue Nov 27, 2019 · 4 comments
Closed

java.io.EOFException: ExoPlayer does not play short AAC File #6700

patrick131313 opened this issue Nov 27, 2019 · 4 comments
Assignees
Labels

Comments

@patrick131313
Copy link

patrick131313 commented Nov 27, 2019

When I try to play an AAC File under 30 seconds ExoPlayer throws java.io.EOFException if "FLAG_ENABLE_CONSTANT_BITRATE_SEEKING" is set.

Currently I use version 2.9.3. I tried also with 2.10.8 and it still reproduces

Device(s) and version(s) of Android being used
Samsung Galaxy s8+ Android 8
Lg Q6 Android 8.1

I sent the report and AAC File on email at dev.exoplayer@gmail.com

@icbaker
Copy link
Collaborator

icbaker commented Nov 29, 2019

Thanks for the report - I'm able to repro in the demo app at 2.10.8 with the media you provided.

I'll dig deeper into what's going on here next week.

@icbaker
Copy link
Collaborator

icbaker commented Dec 2, 2019

I think this is happening because the file contains an incomplete ADTS frame at the end - so during the scan to setup the seeking, we're expecting to read 326 bytes but only 236 are available. How was this file produced? It seems it might have been sliced from a larger file using e.g. Unix split?

We probably shouldn't completely fail playback in this case though (given we successfully play the file when not using constant bitrate seeking) - I'll send a change that makes this slightly more robust.

@patrick131313
Copy link
Author

I record files from online streams, I slice the file when I stop the recording. I don't check if the frame is complete or not.

marcbaechinger pushed a commit that referenced this issue Dec 4, 2019
Fixes issue:#6700

sample_cbs_truncated.adts test file produced using
`$ split -b 31795 sample_truncated.adts` to remove the last 10 bytes

PiperOrigin-RevId: 283530136
@icbaker
Copy link
Collaborator

icbaker commented Dec 5, 2019

This should be fixed on the dev-v2 branch now.

@icbaker icbaker closed this as completed Dec 5, 2019
icbaker added a commit that referenced this issue Dec 5, 2019
This parameter is a little confusing, especially as the behaviour
can be surprising if the intended use-case isn't clear. This change
moves the description of the parameter into the class javadoc,
adds context/justification and slims down each method's
javadoc to refer to the class-level.

Related to investigating/fixing issue:#6700

PiperOrigin-RevId: 283724826
ojw28 pushed a commit that referenced this issue Dec 6, 2019
Fixes issue:#6700

sample_cbs_truncated.adts test file produced using
`$ split -b 31795 sample_truncated.adts` to remove the last 10 bytes

PiperOrigin-RevId: 283530136
ojw28 pushed a commit that referenced this issue Dec 6, 2019
This parameter is a little confusing, especially as the behaviour
can be surprising if the intended use-case isn't clear. This change
moves the description of the parameter into the class javadoc,
adds context/justification and slims down each method's
javadoc to refer to the class-level.

Related to investigating/fixing issue:#6700

PiperOrigin-RevId: 283724826
@google google locked and limited conversation to collaborators Feb 4, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants