You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
VMAP Midrolls raise a decoder exception on some devices (more details below) when main content is Widevine protected. Simulators and other devices seems to work fine.
Steps to reproduce
Clone ExoPlayer repo
git checkout r2.16.0 (detected on this version)
Add this node to demos/main/src/main/assets/media.exolist.json "IMA sample ad tags"
{
"name": "Widevine DASH + VMAP pre-roll single ad, mid-roll standard pods with 5 ads every 10 seconds for 1:40, post-roll single ad",
"uri": "https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears_sd.mpd",
"drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test",
"ad_tag_uri": "https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=vmap&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ar%3Dpremidpostlongpod&cmsid=496&vid=short_tencue&correlator="
},
Run the "demo" app into an affected device in Android Studio
Start the playback of the new added node
Seek into or wait for a midroll during playback
Result: Unable to instantiate decoder OMX.qcom.video.decoder.avc
2022-01-12 12:21:18.917 30548-31798/com.google.android.exoplayer2.demo D/SurfaceUtils: connecting to surface 0x7bc4be7110, reason connectToSurface
2022-01-12 12:21:18.917 30548-31798/com.google.android.exoplayer2.demo I/MediaCodec: [OMX.qcom.video.decoder.avc.secure] setting surface generation to 31281180
2022-01-12 12:21:18.917 30548-31798/com.google.android.exoplayer2.demo D/SurfaceUtils: disconnecting from surface 0x7bc4be7110, reason connectToSurface(reconnect)
2022-01-12 12:21:18.917 30548-31798/com.google.android.exoplayer2.demo D/SurfaceUtils: connecting to surface 0x7bc4be7110, reason connectToSurface(reconnect)
2022-01-12 12:21:18.919 30548-31799/com.google.android.exoplayer2.demo E/SurfaceUtils: native window cannot handle protected buffers: the consumer should either be a hardware composer or support hardware protection
2022-01-12 12:21:18.919 30548-31798/com.google.android.exoplayer2.demo W/MediaCodec: error setting release surface: err = -1
2022-01-12 12:21:18.922 30548-30548/com.google.android.exoplayer2.demo D/EventLogger: videoDecoderReleased [eventTime=21.25, mediaPos=0.00, window=0, period=0, adGroup=1, ad=0, OMX.qcom.video.decoder.avc.secure]
2022-01-12 12:21:18.927 30548-31823/com.google.android.exoplayer2.demo I/OMXClient: IOmx service obtained
2022-01-12 12:21:18.944 30548-31822/com.google.android.exoplayer2.demo D/SurfaceUtils: connecting to surface 0x7bc4c02be0, reason connectToSurface
2022-01-12 12:21:18.945 30548-31822/com.google.android.exoplayer2.demo E/SurfaceUtils: Failed to connect to surface 0x7bc4c02be0, err -22
2022-01-12 12:21:18.945 30548-31822/com.google.android.exoplayer2.demo E/MediaCodec: nativeWindowConnect returned an error: Invalid argument (-22)
2022-01-12 12:21:18.946 30548-31723/com.google.android.exoplayer2.demo E/MediaCodec: configure failed with err 0xffffffea, resetting...
2022-01-12 12:21:18.952 30548-31823/com.google.android.exoplayer2.demo I/OMXClient: IOmx service obtained
2022-01-12 12:21:18.969 30548-31723/com.google.android.exoplayer2.demo W/MediaCodecRenderer: Failed to initialize decoder: OMX.qcom.video.decoder.avc
java.lang.IllegalArgumentException
at android.media.MediaCodec.native_configure(Native Method)
at android.media.MediaCodec.configure(MediaCodec.java:2127)
at android.media.MediaCodec.configure(MediaCodec.java:2043)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:52)
at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:103)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1063)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:982)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:540)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.reinitializeCodec(MediaCodecRenderer.java:2062)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.processEndOfStream(MediaCodecRenderer.java:1957)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1788)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:778)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:982)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:486)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
2022-01-12 12:21:18.973 30548-31723/com.google.android.exoplayer2.demo E/MediaCodecVideoRenderer: Video codec error
com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.qcom.video.decoder.avc, Format(2, null, null, video/avc, avc1.42801F, -1, null, [1280, 720, 30.0], [-1, -1])
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:989)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:540)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.reinitializeCodec(MediaCodecRenderer.java:2062)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.processEndOfStream(MediaCodecRenderer.java:1957)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1788)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:778)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:982)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:486)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: java.lang.IllegalArgumentException
at android.media.MediaCodec.native_configure(Native Method)
at android.media.MediaCodec.configure(MediaCodec.java:2127)
at android.media.MediaCodec.configure(MediaCodec.java:2043)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:52)
at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:103)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1063)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:982)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:540)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.reinitializeCodec(MediaCodecRenderer.java:2062)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.processEndOfStream(MediaCodecRenderer.java:1957)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1788)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:778)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:982)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:486)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
2022-01-12 12:21:18.978 30548-31723/com.google.android.exoplayer2.demo E/ExoPlayerImplInternal: Playback error
com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(2, null, null, video/avc, avc1.42801F, -1, null, [1280, 720, 30.0], [-1, -1]), format_supported=YES
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:562)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.qcom.video.decoder.avc, Format(2, null, null, video/avc, avc1.42801F, -1, null, [1280, 720, 30.0], [-1, -1])
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:989)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:540)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.reinitializeCodec(MediaCodecRenderer.java:2062)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.processEndOfStream(MediaCodecRenderer.java:1957)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1788)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:778)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:982)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:486)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: java.lang.IllegalArgumentException
at android.media.MediaCodec.native_configure(Native Method)
at android.media.MediaCodec.configure(MediaCodec.java:2127)
at android.media.MediaCodec.configure(MediaCodec.java:2043)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:52)
at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:103)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1063)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:982)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:540)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.reinitializeCodec(MediaCodecRenderer.java:2062)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.processEndOfStream(MediaCodecRenderer.java:1957)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1788)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:778)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:982)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:486)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
2022-01-12 12:21:18.983 30548-31820/com.google.android.exoplayer2.demo D/CCodecBuffers: [c2.android.aac.decoder#323:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 0
2022-01-12 12:21:18.983 30548-31820/com.google.android.exoplayer2.demo D/CCodecBuffers: [c2.android.aac.decoder#323:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 1
2022-01-12 12:21:18.983 30548-31820/com.google.android.exoplayer2.demo D/CCodecBuffers: [c2.android.aac.decoder#323:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 2
2022-01-12 12:21:18.983 30548-31820/com.google.android.exoplayer2.demo D/CCodecBuffers: [c2.android.aac.decoder#323:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 3
2022-01-12 12:21:18.983 30548-31820/com.google.android.exoplayer2.demo D/CCodecBuffers: [c2.android.aac.decoder#323:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 4
2022-01-12 12:21:18.984 30548-31820/com.google.android.exoplayer2.demo I/CCodecConfig: query failed after returning 19 values (BAD_INDEX)
2022-01-12 12:21:18.984 30548-31820/com.google.android.exoplayer2.demo D/CCodecConfig: c2 config diff is c2::i32 coding.drc.compression-mode.value = 3
2022-01-12 12:21:18.985 30548-31820/com.google.android.exoplayer2.demo W/Codec2Client: query -- param skipped: index = 1342179345.
2022-01-12 12:21:18.985 30548-31820/com.google.android.exoplayer2.demo W/Codec2Client: query -- param skipped: index = 2415921170.
2022-01-12 12:21:18.985 30548-31820/com.google.android.exoplayer2.demo W/Codec2Client: query -- param skipped: index = 1610614798.
2022-01-12 12:21:18.987 30548-31820/com.google.android.exoplayer2.demo D/CCodecBufferChannel: [c2.android.aac.decoder#323] MediaCodec discarded an unknown buffer
2022-01-12 12:21:18.987 30548-31820/com.google.android.exoplayer2.demo I/chatty: uid=10337(com.google.android.exoplayer2.demo) MediaCodec_loop identical 2 lines
2022-01-12 12:21:18.987 30548-31820/com.google.android.exoplayer2.demo D/CCodecBufferChannel: [c2.android.aac.decoder#323] MediaCodec discarded an unknown buffer
2022-01-12 12:21:18.987 30548-31820/com.google.android.exoplayer2.demo I/hw-BpHwBinder: onLastStrongRef automatically unlinking death recipients
2022-01-12 12:21:18.991 30548-31799/com.google.android.exoplayer2.demo D/SurfaceUtils: disconnecting from surface 0x7bc4bf1b60, reason pushBlankBuffersToNativeWindow
2022-01-12 12:21:18.992 30548-31799/com.google.android.exoplayer2.demo D/SurfaceUtils: set up nativeWindow 0x7bc4bf1b60 for 1x1, color 0x2, rotation 0, usage 0x930
2022-01-12 12:21:18.995 30548-31799/com.google.android.exoplayer2.demo D/SurfaceUtils: connecting to surface 0x7bc4bf1b60, reason pushBlankBuffersToNativeWindow(err2)
2022-01-12 12:21:18.996 30548-30548/com.google.android.exoplayer2.demo D/EventLogger: videoDisabled [eventTime=21.32, mediaPos=9.85, window=0, period=0]
2022-01-12 12:21:18.996 30548-30548/com.google.android.exoplayer2.demo D/EventLogger: audioDisabled [eventTime=21.32, mediaPos=9.85, window=0, period=0]
2022-01-12 12:21:18.996 30548-30548/com.google.android.exoplayer2.demo D/EventLogger: audioDecoderReleased [eventTime=21.32, mediaPos=0.00, window=0, period=0, adGroup=1, ad=0, c2.android.aac.decoder]
2022-01-12 12:21:18.998 30548-30548/com.google.android.exoplayer2.demo E/EventLogger: playerFailed [eventTime=21.32, mediaPos=0.00, window=0, period=0, adGroup=1, ad=0, errorCode=ERROR_CODE_DECODER_INIT_FAILED
com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(2, null, null, video/avc, avc1.42801F, -1, null, [1280, 720, 30.0], [-1, -1]), format_supported=YES
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:562)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.qcom.video.decoder.avc, Format(2, null, null, video/avc, avc1.42801F, -1, null, [1280, 720, 30.0], [-1, -1])
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:989)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:540)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.reinitializeCodec(MediaCodecRenderer.java:2062)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.processEndOfStream(MediaCodecRenderer.java:1957)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1788)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:778)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:982)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:486)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: java.lang.IllegalArgumentException
at android.media.MediaCodec.native_configure(Native Method)
at android.media.MediaCodec.configure(MediaCodec.java:2127)
at android.media.MediaCodec.configure(MediaCodec.java:2043)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:52)
at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:103)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1063)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:982)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:540)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.reinitializeCodec(MediaCodecRenderer.java:2062)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.processEndOfStream(MediaCodecRenderer.java:1957)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1788)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:778)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:982)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:486)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
]
2022-01-12 12:21:18.999 30548-30548/com.google.android.exoplayer2.demo D/EventLogger: loading [eventTime=21.32, mediaPos=9.85, window=0, period=0, false]
2022-01-12 12:21:18.999 30548-30548/com.google.android.exoplayer2.demo D/EventLogger: state [eventTime=21.32, mediaPos=9.85, window=0, period=0, IDLE]
ExoPlayer version number
2.16.0
Android version
Android 11
Android device
Google Pixel 2 XL, Android 11
Xiaomi Redmi Note 10S, Android 11, MIUI 12.5.14
The text was updated successfully, but these errors were encountered:
This is a duplicate of #8696 (see snippet from bug report below). The root cause is device-specific (and it only started occurring on Android 11), but we've submitted a workaround to the library (linked at the bottom of that issue) that mitigates the issue. The workaround is available on the dev-v2 branch but not yet part of a maven-distributed release.
01-12 11:21:18.945 10337 30548 31822 E SurfaceUtils: Failed to connect to surface 0x7bc4c02be0, err -22
01-12 11:21:18.945 10337 30548 31822 E MediaCodec: nativeWindowConnect returned an error: Invalid argument (-22)
https://github.com/google/ExoPlayer/issues?q=is%3Aissue
http://exoplayer.dev/demo-application.html
Description
VMAP Midrolls raise a decoder exception on some devices (more details below) when main content is Widevine protected. Simulators and other devices seems to work fine.
Steps to reproduce
git checkout r2.16.0
(detected on this version)demos/main/src/main/assets/media.exolist.json
"IMA sample ad tags"Result:
Unable to instantiate decoder OMX.qcom.video.decoder.avc
Output of running "adb bugreport"
Output logs
Logcat output
ExoPlayer version number
Android version
Android device
The text was updated successfully, but these errors were encountered: