-
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
MPEG-TS stream with SCTE subtitle track may fail to start #5330
Comments
@andrewlewis - This looks related to addition of DTS support [internal cr ref: 112774678]. There's a stream with type 0x82 (
however we currently assume the latter. This might not be easy to fix, unfortunately. |
@AquilesCanta Any ideas if there's some signaling that we can use to distinguish these? |
In theory, would it be possible to do something temporary on our end? Either signal the player manually that it should treat the 0x82 stream as SCTE subtitle or tell the player to skip the 0x82 stream completely? Thank you. |
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
I think using a custom TsPayloadReaderFactory is the way to go. I'd just wrap the default implementation and intercept the 0x82 stream type. As a library-side fix, I think sniffing the PES packets is the only way to go. Unfortunately, I cannot allocate time to do this. For the time being, I have added a flag to the DefaultTsPayloadReaderFactory: FLAG_IGNORE_HDMV_DTS_STREAM, which will be available in the next push. Setting this flag should save you the factory customization. |
Prevents collisions with SCTE-35 subtitles. Issue:#5330 PiperOrigin-RevId: 230195494
Prevents collisions with SCTE-35 subtitles. Issue:#5330 PiperOrigin-RevId: 230195494
@andrewlewis - Given we can't reliably disambiguate between SCTE and DTS at the moment, should we consider disabling DTS support by default, and flipping the flag so that we only enable support if a flag is set? The issue ref'd above contains more streams that are affected by this issue. |
Issue: #5330 PiperOrigin-RevId: 241381723
Issue description
When trying to play the .ts file sent via email, the player goes to prepared state but doesn't start playing anything. If we stream the .ts file by tsplay as a UDP multicast, the player won't throw any error. If we try playing the .ts file directly from the device, we get
OutOfMemoryError
after a few seconds. We've tried setting theFLAG_ALLOW_NON_IDR_KEYFRAMES
andFLAG_DETECT_ACCESS_UNITS
flags but it didn't have any effect.Also, regarding MPEG-TS content in general, we've been having issues with playing some content. From our experience, ExoPlayer is usually able to play about 90% of streams we encounter but we're often not sure why the problematic streams are problematic. Do you have any advice on what to pay attention to when debugging this or on what is ExoPlayer sensitive to?
Thank you.
Reproduction steps
Either play the .ts file directly using
FileDataSource
andExtractorMediaSource
or stream the .ts file using tsplay and play the stream usingUdpDataSource
andExtractorMediaSource
.Link to test content
Sent via email
Version of ExoPlayer being used
ExoPlayer 2.9.0
Device(s) and version(s) of Android being used
Amlogic S905X, 1GB RAM, Android 6.0.1
HiSillicon Hi3798M V200, 2GB RAM, Android 8.0
A full bug report captured from the device
Sent via email (both when using
FileDataSource
and when usingUdpDataSource
)The text was updated successfully, but these errors were encountered: