-
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
Lack of "STATE_ENDED" when playing video in tunneling mode (Exoplayer 2.11.*) #7647
Comments
Since 2.11.0 (see 5579cc8), end of stream in tunneling is detected with Presumed root causeIf your device decoder does not send that callback, ExoPlayer will never detect the end of stream. Validating the root causeCould you please add a log line just before WorkaroundIf the missing EOS timestamp is indeed the issue, please edit codecNeedsEosPropagationWorkaround to return true for the tunneling decoder the issue was observed with. (The decoder name can be found in the logcat or you can add log it in codecNeedsEosPropagationWorkaround first). Upstreaming the workaroundCould you please post here the name of the tunneling decoder, we will merge the workaround in the next release. |
Hi, Thank you for your answer. You were right.
Agnieszka |
@jyee-brcm FYI: it looks like this Broadcom decoder is not producing the expected end-of-stream buffer in tunneled mode. I think we are planning to start verifying this behavior in an upcoming CTS release (@krocard can confirm). |
Hello, we have also seen this codec: "OMX.broadcom.video_decoder.tunnel.secure" on different Sagemcom STB with EOS issue. For my purposes I finally put following condition: Build.MANUFACTURER.equals("Sagemcom"), but checking if codec's name contains: "OMX.broadcom.video_decoder.tunnel" might be enough. |
That is correct, starting with Android 11, CTS will fails if a tunneling codecs does not report EOS (timestamps are also tested): https://android-review.googlesource.com/c/platform/cts/+/1225935 |
I'll merge a change to add |
The fix will be available in 2.12. Thanks for reporting the issue and validating the workaround. |
Please remember about both codecs: OMX.broadcom.video_decoder.tunnel.secure and OMX.broadcom.video_decoder.tunnel (checked on different Sagemcom STB). |
Thanks, I had indeed missed the difference, thankfully @ojw28 caught it in review. Both |
The passthrough codec does not propagate the EOS back to ExoPlayer. Issue: #7647 PiperOrigin-RevId: 323758941
The passthrough codec does not propagate the EOS back to ExoPlayer. Issue: #7647 PiperOrigin-RevId: 323758941
The passthrough codec does not propagate the EOS back to ExoPlayer. Issue: google#7647 PiperOrigin-RevId: 323758941
Issue description
There is no STATE_ENDED while playing video in tunneling mode. I have checked on Exoplayer Demo app with DASH/HLS materials, but all of them did not stopped at the end of the stream (timestamp was still increaasing). We need to call stop() to end the playback, but in this case, STATE_IDLE is only received.
Version of ExoPlayer:
Exoplayer 2.11.7 but checked also with Exoplayer 2.11.0
Device:
Sagemcom STB
The text was updated successfully, but these errors were encountered: