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

  1. Play the asset
  2. 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 bugreport to dev.exoplayer@gmail.com after filing this issue.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 36

Most upvoted comments

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