JIWONKIM
JIWONKIM

Reputation: 3

Media3 ExoPlayer MediaCodecVideoRenderer Error

I have implemented a program to play an RTSP client using Media3's ExoPlayer.

I used Google's example code without modification, and the program seemed to work perfectly.

However, occasionally, video playback stops and the following error logs are printed.

I have searched online but couldn't figure out why this error occurs. I would greatly appreciate any help.

Below is a portion of the error logs.

12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer: Video codec error
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:   android.media.MediaCodec$CodecException: Error 0xffffff92
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at android.media.MediaCodec.native_flush(Native Method)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at android.media.MediaCodec.flush(MediaCodec.java:2298)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.mediacodec.SynchronousMediaCodecAdapter.flush(SynchronousMediaCodecAdapter.java:168)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushCodec(MediaCodecRenderer.java:912)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:905)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushOrReinitializeCodec(MediaCodecRenderer.java:868)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.maybeDropBuffersToKeyframe(MediaCodecVideoRenderer.java:1575)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.shouldIgnoreFrame(MediaCodecVideoRenderer.java:438)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.video.VideoFrameReleaseControl.getFrameReleaseAction(VideoFrameReleaseControl.java:358)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.processOutputBuffer(MediaCodecVideoRenderer.java:1317)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:2010)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:827)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:940)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1112)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:544)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at android.os.Handler.dispatchMessage(Handler.java:102)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at android.os.Looper.loop(Looper.java:223)
12-16 13:25:16.750  2397  2427 E MediaCodecVideoRenderer:       at android.os.HandlerThread.run(HandlerThread.java:67)

12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal: Playback error
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:   androidx.media3.exoplayer.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(null, null, null, video/avc, avc1.64001F, -1, null, [640, 480, -1.0, ColorInfo(Unset color space, Unset color range, Unset color transfer, false, 8bit Luma, 8bit Chroma)], [-1, -1]), format_supported=YES
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:623)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at android.os.Handler.dispatchMessage(Handler.java:102)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at android.os.Looper.loop(Looper.java:223)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at android.os.HandlerThread.run(HandlerThread.java:67)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:   Caused by: androidx.media3.exoplayer.video.MediaCodecVideoDecoderException: Decoder failed: OMX.rk.video_decoder.avc
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.createDecoderException(MediaCodecVideoRenderer.java:1915)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:848)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:940)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1112)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:544)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       ... 3 more
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:   Caused by: android.media.MediaCodec$CodecException: Error 0xffffff92
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at android.media.MediaCodec.native_flush(Native Method)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at android.media.MediaCodec.flush(MediaCodec.java:2298)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.SynchronousMediaCodecAdapter.flush(SynchronousMediaCodecAdapter.java:168)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushCodec(MediaCodecRenderer.java:912)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:905)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushOrReinitializeCodec(MediaCodecRenderer.java:868)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.maybeDropBuffersToKeyframe(MediaCodecVideoRenderer.java:1575)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.shouldIgnoreFrame(MediaCodecVideoRenderer.java:438)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.video.VideoFrameReleaseControl.getFrameReleaseAction(VideoFrameReleaseControl.java:358)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.processOutputBuffer(MediaCodecVideoRenderer.java:1317)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:2010)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:827)
12-16 13:25:16.766  2397  2427 E ExoPlayerImplInternal:       ... 6 more
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal: Disable failed.
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:   java.lang.IllegalStateException
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at android.media.MediaCodec.native_flush(Native Method)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at android.media.MediaCodec.flush(MediaCodec.java:2298)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.SynchronousMediaCodecAdapter.flush(SynchronousMediaCodecAdapter.java:168)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushCodec(MediaCodecRenderer.java:912)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:905)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:744)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:711)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.BaseRenderer.disable(BaseRenderer.java:220)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.ExoPlayerImplInternal.disableRenderer(ExoPlayerImplInternal.java:1803)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:1525)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:1482)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:667)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at android.os.Handler.dispatchMessage(Handler.java:102)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at android.os.Looper.loop(Looper.java:223)
12-16 13:25:16.771  2397  2427 E ExoPlayerImplInternal:       at android.os.HandlerThread.run(HandlerThread.java:67)

Upvotes: 0

Views: 77

Answers (0)

Related Questions