-
Notifications
You must be signed in to change notification settings - Fork 6k
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
Support OGG fails with non-contiguous pages #7230
Comments
I can reproduce this behaviour in the demo app, both with the URL provided and a local copy of the same file. I think the media might be malformed. When I check it with
In contrast to the Google Play (Ogg/Vorbis) file in the demo app:
|
However
|
Ok i see, as you say If i paste the url to Google Chrome, it is able to playback the file with no problems with the embbeded player, so the file is playable |
The error also happens with this OGG file: |
The fact is though using the Google Chrome integrated player, it takes a long time to load and play the file. So finally i decided to recode these conflictive ogg files with Audacity and now they are playing well and fast. |
This is still an issue in apps like podcast players where the app is tasked with playing whatever URL comes from the feed. |
I looked deeper into this (using the pinkfairy file from OP as an example). The file doesn't seem to have contiguous OGG pages. The first page starts at the beginning of the file with the 'OggS' magic string as expected, and declares itself to contain a single segment of data that's 30 bytes long. The page header is 28 bytes, so the next page is expected to start at byte 58 (counting from 0) with another 'OggS' but that's not what we see:
The next 'OggS' magic string doesn't turn up until byte 1024:
ExoPlayer assumes the pages are contiguous, and when we read the 58 - 61 bytes and compare them to 'OggS' we find they don't match and return The magic 'OggS' strings are there to enable us to find the start of the next page, so we should probably keep looking forwards in the file until we find the next page. Not sure if it's directly related, since the byte offsets mentioned are much larger, but
No warnings are shown for the Google Play (Ogg/Vorbis) file from the demo app. |
bear_vorbis_gap.ogg is a copy of bear_vorbis.ogg with 10 garbage bytes (DE AD BE EF DE AD BE EF DE AD) inserted before the second capture pattern and 3 garbage bytes inserted at the end (DE AD BE). Issue: #7230 PiperOrigin-RevId: 314715729
This is now fixed on dev-v2. |
Issue description
Using the Exoplayer demo app, i've replaced the existing OGG file with another OGG file and it fails the playback
Reproduction steps
1- I open the Exoplayer demo app and i select the existing OGG file with uri
2- Playback is rightly played
3- I have placed my content inside the media.exolist.json
4- I open the Exoplayer demo app and i select that file
5- Playback Failed
Important: the file plays right if i use the Google Chrome navigator
Full bug report captured from the device:
Version of ExoPlayer being used is 2.11.4
Nexus 5 with Marshmallow 6.0.1
The text was updated successfully, but these errors were encountered: