SRGSSR / pillarbox-android

The modern SRG SSR Pillarbox player targeting Android platforms
https://android.pillarbox.ch/api
MIT License
13 stars 1 forks source link

Unknown error in "Multi player" on "Realme 6" #511

Closed pixlhero closed 5 months ago

pixlhero commented 6 months ago

Description of the problem

When going to Showcases -> Misc -> Multi player one of the players displays an "Unknown error. Tap to retry!". Taping doesn't fix the issue.

drawing

This bug didn't appear on a Pixel 4a, Android 13

Device

P.S. the video setup in our app is a bit different. But the error is the same. Good thing is that the "Tap to retry!" command actually fixes the problem. And the issue only appears very rarely and only when switching from a vod-video to a live video. Moreover this device is not very widespread.

So for us it's not very big issue, we just thought it might be interesting in case you see any other devices that have the same issue.

Relevant stack trace or log output

2024-04-24 16:25:15.602 22062-23026 ACodec                  ch.srgssr.pillarbox.demo.debug       E  Unable to instantiate codec 'OMX.MTK.VIDEO.DECODER.AVC.secure' with err 0xfffffff4.
2024-04-24 16:25:15.602 22062-23026 ACodec                  ch.srgssr.pillarbox.demo.debug       E  signalError(omxError 0xfffffff4, internalError -12)
2024-04-24 16:25:15.602 22062-23026 OplusFeedbackInfo       ch.srgssr.pillarbox.demo.debug       I  [sendFeedbackInfo:L278]  send:MM_FB_EventID#11001#ClientPid#22062#ReportLevel#1#omxError#0xfffffff4#internalError#-12
2024-04-24 16:25:15.602 22062-23025 MediaCodec              ch.srgssr.pillarbox.demo.debug       E  Codec reported err 0xfffffff4, actionCode 0, while in state 1
2024-04-24 16:25:15.609 22062-22776 OplusACodec             ch.srgssr.pillarbox.demo.debug       D  ~OplusACodec [127]: 
2024-04-24 16:25:15.611 22062-22776 MediaCodec-JNI          ch.srgssr.pillarbox.demo.debug       W  try to release MediaCodec from JMediaCodec::~JMediaCodec()...
2024-04-24 16:25:15.611 22062-22776 MediaCodec-JNI          ch.srgssr.pillarbox.demo.debug       W  done releasing MediaCodec from JMediaCodec::~JMediaCodec().
2024-04-24 16:25:15.612 22062-22776 MediaCodecRenderer      ch.srgssr.pillarbox.demo.debug       W  Failed to initialize decoder: OMX.MTK.VIDEO.DECODER.AVC.secure
                                                                                                      android.media.MediaCodec$CodecException: Failed to initialize OMX.MTK.VIDEO.DECODER.AVC.secure, error 0xfffffff4
                                                                                                          at android.media.MediaCodec.native_setup(Native Method)
                                                                                                          at android.media.MediaCodec.<init>(MediaCodec.java:1912)
                                                                                                          at android.media.MediaCodec.createByCodecName(MediaCodec.java:1890)
                                                                                                          at androidx.media3.exoplayer.mediacodec.SynchronousMediaCodecAdapter$Factory.createCodec(SynchronousMediaCodecAdapter.java:76)
                                                                                                          at androidx.media3.exoplayer.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:51)
                                                                                                          at androidx.media3.exoplayer.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:119)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1195)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1103)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:551)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1560)
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:1152)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:994)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:814)
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:940)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1102)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:541)
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                                          at android.os.Looper.loop(Looper.java:255)
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:67)
2024-04-24 16:25:15.614 22062-22776 MediaCodecVideoRenderer ch.srgssr.pillarbox.demo.debug       E  Video codec error
                                                                                                      androidx.media3.exoplayer.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.MTK.VIDEO.DECODER.AVC.secure, Format(1_V_video_6013035268404598892, null, null, video/avc, avc1.4D4029, 1999600, null, [960, 544, -1.0, ColorInfo(BT709, Limited range, SDR SMPTE 170M, false, 8bit Luma, 8bit Chroma)], [-1, -1])
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1114)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:551)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1560)
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:1152)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:994)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:814)
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:940)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1102)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:541)
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                                          at android.os.Looper.loop(Looper.java:255)
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:67)
                                                                                                      Caused by: android.media.MediaCodec$CodecException: Failed to initialize OMX.MTK.VIDEO.DECODER.AVC.secure, error 0xfffffff4
                                                                                                          at android.media.MediaCodec.native_setup(Native Method)
                                                                                                          at android.media.MediaCodec.<init>(MediaCodec.java:1912)
                                                                                                          at android.media.MediaCodec.createByCodecName(MediaCodec.java:1890)
                                                                                                          at androidx.media3.exoplayer.mediacodec.SynchronousMediaCodecAdapter$Factory.createCodec(SynchronousMediaCodecAdapter.java:76)
                                                                                                          at androidx.media3.exoplayer.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:51)
                                                                                                          at androidx.media3.exoplayer.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:119)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1195)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1103)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:551) 
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1560) 
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:1152) 
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:994) 
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:814) 
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:940) 
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1102) 
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:541) 
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                                          at android.os.Looper.loop(Looper.java:255) 
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:67) 
2024-04-24 16:25:15.615 22062-22776 ExoPlayerImplInternal   ch.srgssr.pillarbox.demo.debug       E  Playback error
                                                                                                      androidx.media3.exoplayer.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1_V_video_6013035268404598892, null, null, video/avc, avc1.4D4029, 1999600, null, [960, 544, -1.0, ColorInfo(BT709, Limited range, SDR SMPTE 170M, false, 8bit Luma, 8bit Chroma)], [-1, -1]), format_supported=YES
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:620)
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                                          at android.os.Looper.loop(Looper.java:255)
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:67)
                                                                                                      Caused by: androidx.media3.exoplayer.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.MTK.VIDEO.DECODER.AVC.secure, Format(1_V_video_6013035268404598892, null, null, video/avc, avc1.4D4029, 1999600, null, [960, 544, -1.0, ColorInfo(BT709, Limited range, SDR SMPTE 170M, false, 8bit Luma, 8bit Chroma)], [-1, -1])
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1114)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:551)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1560)
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:1152)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:994)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:814)
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:940)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1102)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:541)
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                                          at android.os.Looper.loop(Looper.java:255) 
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:67) 
                                                                                                      Caused by: android.media.MediaCodec$CodecException: Failed to initialize OMX.MTK.VIDEO.DECODER.AVC.secure, error 0xfffffff4
                                                                                                          at android.media.MediaCodec.native_setup(Native Method)
                                                                                                          at android.media.MediaCodec.<init>(MediaCodec.java:1912)
                                                                                                          at android.media.MediaCodec.createByCodecName(MediaCodec.java:1890)
                                                                                                          at androidx.media3.exoplayer.mediacodec.SynchronousMediaCodecAdapter$Factory.createCodec(SynchronousMediaCodecAdapter.java:76)
                                                                                                          at androidx.media3.exoplayer.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:51)
                                                                                                          at androidx.media3.exoplayer.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:119)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1195)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1103)
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:551) 
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1560) 
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:1152) 
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:994) 
                                                                                                          at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:814) 
                                                                                                          at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:940) 
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1102) 
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:541) 
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                                          at android.os.Looper.loop(Looper.java:255) 
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:67) 

Reproducibility

Always

Steps to reproduce

Build the pillarbox-demo and navigate to Showcases -> Misc -> Multi player

Library version

1.0.0

Operating system

Android 11

Code sample

No response

Is there an existing issue for this?

StaehliJ commented 6 months ago

It may happen with low end devices that doesn't support well multiple player playing DRM content. If you change both content with a non DRM content it should work better.

It this demo case retry doesn't work because of that.

pixlhero commented 6 months ago

Ah, you're totally right. It worked on the phone even when changing just one of the videos to a non-DRM one. Do you have some info about what kind of devices this affects?

MGaetan89 commented 6 months ago

In the Media3 documentation, you can find its supported format and supported devices. You can also find the platform's supported media formats. But I don't see anything in there to explain your issue.

However, this comment https://github.com/google/ExoPlayer/issues/10285#issuecomment-1164529932 suggests that it may be a platform/device specific issue.