EOF exception comes while running DASH stream with TTML track
See original GitHub issueExoPlayer Version
2.17.1
Devices that reproduce the issue
NVDIA shield with Android 11
Devices that do not reproduce the issue
Not tested any other
Reproducible in the demo app?
No
Reproduction steps
Play the mpd , enable track selection parameters to select the text for eng and also enable the undefined language too
Expected result
Media should play successfully
Actual result
When exo player receives the first ttml segment -{mentioned as d1-1.m4s - in the log }, Following error is getting . video is not playing after the first frame . The segment data d1-1.m4s is uloaded in the 'media ’ field below as ttmlDump_org.txt.
MPD is also uploaded in media (renamed as txt in the Media as the xml was not supported)
CM_HttpSendResponse(): Sending AV 1385 Segment Sent =[d1-1.m4s] 963 D NvOsDebugPrintf: NVMEDIA: FrameRate = 59 960 I ACodec : Get OMX_IndexConfigScale: 0x10000/0x10000 960 I ACodec : Scaled Width is 1920, height is 1080 859 E EventLogger: internalError [eventTime=3.74, mediaPos=0.00, window=0, period=0, loadError 859 E EventLogger: java.io.EOFException 859 E EventLogger: at com.google.android.exoplayer2.extractor.DefaultExtractorInput.readFromUpstream(DefaultExtractorInput.java:296) 859 E EventLogger: at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:107) 859 E EventLogger: at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:115) 859 E EventLogger: at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.readAtomPayload(FragmentedMp4Extractor.java:457 859 E EventLogger: at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:336) 859 E EventLogger: at com.google.android.exoplayer2.source.chunk.BundledChunkExtractor.read(BundledChunkExtractor.java:153) 859 E EventLogger: at com.google.android.exoplayer2.source.chunk.ContainerMediaChunk.load(ContainerMediaChunk.java:127) 859 E EventLogger: at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412) 859 E EventLogger: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 859 E EventLogger: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 859 E EventLogger: at java.lang.Thread.run(Thread.java:923) 859 E EventLogger: ]
Media
Bug Report
- You will email the zip file produced by
adb bugreport
to dev.exoplayer@gmail.com after filing this issue.
Issue Analytics
- State:
- Created a year ago
- Comments:13 (6 by maintainers)
Thanks for the content, I was able to play it in our demo app by doing two things:
DashMediaSource
to stop it from using an NTP-based time source and use local device time by changing this line: https://github.com/google/ExoPlayer/blob/ab4d37f499ba49bb3cac7938eb03ebf7133ccfe6/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java#L761-L763To this:
I enabled the subtitle track while the content was playing, and saw subtitles appear on the screen.
So it looks like everything is working for me. If you make the same changes to the demo app, do you also see the subtitles?
If you’re trying to play live content long after it’s aired it should probably be served as VOD content instead? The intricacies of content preparation is out of scope for this issue tracker, but that is generally how I would expect ‘no longer live’ content to be served.
(I thought you were only trying to override the time in order to test some live behaviour to reliably repro this issue - using actually-live streams for repro can be annoying because they keep changing!)