ExoPlayer: MediaCodecVideoDecoderException
ExoPlayer Version
2.17.1
Devices that reproduce the issue
Example:
- OnePlus 7T running Android 11
Devices that do not reproduce the issue
Example:
- Samsung S20+ running Android 12
Reproducible in the demo app?
Not tested
Reproduction steps
- Play the asset
- Player stops with error code 4003
(On most of the devices we don’t have this issue. We have 3 environments, on test we have this device-specific issue very rarely. On preprod and prod it occurs always on the problematic devices)
Expected result
Media should be played.
Actual result
Errorcode 4003
Stacktrace: E/ExoPlayerImplInternal: Playback error com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(video=663977, null, null, video/avc, avc1.42C01E, 668000, null, [640, 360, 25.0], [-1, -1]), format_supported=YES at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:575) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:233) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: com.google.android.exoplayer2.video.MediaCodecVideoDecoderException: Decoder failed: OMX.qcom.video.decoder.avc.secure at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.createDecoderException(MediaCodecVideoRenderer.java:1512) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:813) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:998) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:499) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:233) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: android.media.MediaCodec$CodecException: Error 0x80000000 at android.media.MediaCodec.native_queueSecureInputBuffer(Native Method) at android.media.MediaCodec.queueSecureInputBuffer(MediaCodec.java:2830) at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.queueSecureInputBuffer(SynchronousMediaCodecAdapter.java:149) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:1345) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:794) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:998) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:499) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:233) at android.os.HandlerThread.run(HandlerThread.java:67)
Media
We’ll send one via email
Bug Report
- You will email the zip file produced by
adb bugreportto dev.exoplayer@gmail.com after filing this issue.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 36
Playback error com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001E, -1, null, [720, 398, 24.006426], [-1, -1]), format_supported=YES at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:578) at android.os.Handler.dispatchMessage(Handler.java:113) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:293) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: com.google.android.exoplayer2.video.MediaCodecVideoDecoderException: Decoder failed: OMX.hisi.video.decoder.avc at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.createDecoderException(MediaCodecVideoRenderer.java:1639) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:794) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1007) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:502) at android.os.Handler.dispatchMessage(Handler.java:113) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:293) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: android.media.MediaCodec$CodecException: Error 0xffffffed Disable failed. java.lang.IllegalStateException at android.media.MediaCodec.native_flush(Native Method) at android.media.MediaCodec.flush(MediaCodec.java:2350) at com.google.android.exoplayer2.mediacodec.AsynchronousMediaCodecAdapter.flush(AsynchronousMediaCodecAdapter.java:230) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushCodec(MediaCodecRenderer.java:858) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:851) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:691) at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:609) at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:186) at com.google.android.exoplayer2.ExoPlayerImplInternal.disableRenderer(ExoPlayerImplInternal.java:1670) at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:1411) at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:1372) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:594) at android.os.Handler.dispatchMessage(Handler.java:113) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:293) at android.os.HandlerThread.run(HandlerThread.java:67)
@rrfrias i have met the same problem in redmi note 9, am i have sent you the bugreport via dev.exoplayer@gmail.com. please check.
here is the exact stack trace :
02-09 11:37:44.460 10320 4377 5508 W System.err: java.lang.IllegalStateException 02-09 11:37:44.461 10320 4377 5508 W System.err: at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method) 02-09 11:37:44.462 10320 4377 5508 W System.err: at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2789) 02-09 11:37:44.464 10320 4377 5508 W System.err: at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.dequeueOutputBufferIndex(SynchronousMediaCodecAdapter.java:106) 02-09 11:37:44.465 10320 4377 5508 W System.err: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1819) 02-09 11:37:44.466 10320 4377 5508 W System.err: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:792) 02-09 11:37:44.468 10320 4377 5508 W System.err: at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:989) 02-09 11:37:44.470 10320 4377 5508 W System.err: at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:490) 02-09 11:37:44.471 10320 4377 5508 W System.err: at android.os.Handler.dispatchMessage(Handler.java:103) 02-09 11:37:44.472 10320 4377 5508 W System.err: at android.os.Looper.loop(Looper.java:224) 02-09 11:37:44.473 10320 4377 5508 W System.err: at android.os.HandlerThread.run(HandlerThread.java:67)
it also have other exceptions in bug report:
02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: Playback error 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: com.google.android.exoplayer2.ExoPlaybackException: Unexpected runtime error 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:616) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at android.os.Handler.dispatchMessage(Handler.java:103) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at android.os.Looper.loop(Looper.java:224) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at android.os.HandlerThread.run(HandlerThread.java:67) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: Caused by: java.lang.IllegalStateException 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at android.media.MediaCodec.native_flush(Native Method) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at android.media.MediaCodec.flush(MediaCodec.java:2194) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.flush(SynchronousMediaCodecAdapter.java:166) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushCodec(MediaCodecRenderer.java:877) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:870) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushOrReinitializeCodec(MediaCodecRenderer.java:833) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onPositionReset(MediaCodecRenderer.java:679) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onPositionReset(MediaCodecVideoRenderer.java:498) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.BaseRenderer.resetPosition(BaseRenderer.java:168) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.BaseRenderer.resetPosition(BaseRenderer.java:161) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.ExoPlayerImplInternal.resetRendererPosition(ExoPlayerImplInternal.java:1318) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.ExoPlayerImplInternal.seekToPeriodPosition(ExoPlayerImplInternal.java:1296) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.ExoPlayerImplInternal.seekToPeriodPosition(ExoPlayerImplInternal.java:1235) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.ExoPlayerImplInternal.seekToInternal(ExoPlayerImplInternal.java:1206) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:493) 02-09 11:37:24.805 10320 4377 11648 E ExoPlayerImplInternal: … 3 more