Video codec error when there is 2 or more player instances
Open
@marcbaechinger is already working on this.
Since Oct 23, 2024.
bug: device specific
- Dominant language
- Java
- Stars
- 3k
- Forks
- 955
- Avg merge
- 12d 14h
- Merged PRs (30d)
- 2
Description
Version
Media3 main branch
More version details
exoplayer demo app from main , cloned from https://github.com/androidx/media.git
Devices that reproduce the issue
Our OEM device running on Android 13 (LineageOS20)
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
- Play the demo-shortform app
- Set players to 2 or more
- Drag mouse to switch to different players
Expected result
The media should play successfully
Actual result
Playback stops and the crashes with the following logs
10-23 09:23:15.925 5283 6688 D MediaCodec: flushMediametrics
10-23 09:23:15.925 5283 6682 I gralloc : ddebug, free share_fd=325, user_hnd=0x1f, ion client=90
10-23 09:23:15.925 5283 5283 D player-1: timeline [eventTime=254.08, mediaPos=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
10-23 09:23:15.925 5283 6688 D MediaCodec: flushMediametrics
10-23 09:23:15.926 5283 5283 D player-1: period [17.24]
10-23 09:23:15.926 5283 6682 I gralloc : ddebug, free share_fd=327, user_hnd=0x20, ion client=90
10-23 09:23:15.927 5283 6682 I gralloc : ddebug, free share_fd=329, user_hnd=0x21, ion client=90
10-23 09:23:15.927 5283 5283 D player-1: window [17.24, seekable=true, dynamic=false]
10-23 09:23:15.928 5283 5283 D player-1: ]
10-23 09:23:15.930 5283 5283 E player-1: playerFailed [eventTime=254.09, mediaPos=0.00, window=0, period=0, errorCode=ERROR_CODE_DECODING_RESOURCES_RECLAIMED
10-23 09:23:15.930 5283 5283 E player-1: androidx.media3.exoplayer.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(3, null, null, video/hevc, hvc1.1.6.L153, -1, null, [1920, 1080, 29.98927, ColorInfo(BT709, Full range, SDR SMPTE 170M, false, 8bit Luma, 8bit Chroma)], [-1, -1]), format_supported=YES
10-23 09:23:15.930 5283 5283 E player-1: at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:640)
10-23 09:23:15.930 5283 5283 E player-1: at android.os.Handler.dispatchMessage(Handler.java:102)
10-23 09:23:15.930 5283 5283 E player-1: at android.os.Looper.loopOnce(Looper.java:201)
10-23 09:23:15.930 5283 5283 E player-1: at android.os.Looper.loop(Looper.java:288)
10-23 09:23:15.930 5283 5283 E player-1: at android.os.HandlerThread.run(HandlerThread.java:67)
10-23 09:23:15.930 5283 5283 E player-1: Caused by: androidx.media3.exoplayer.video.MediaCodecVideoDecoderException: Decoder failed: OMX.amlogic.hevc.decoder.awesome
10-23 09:23:15.930 5283 5283 E player-1: at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.createDecoderException(MediaCodecVideoRenderer.java:1982)
10-23 09:23:15.930 5283 5283 E player-1: at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:893)
10-23 09:23:15.930 5283 5283 E player-1: at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:1018)
10-23 09:23:15.930 5283 5283 E player-1: at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1136)
10-23 09:23:15.930 5283 5283 E player-1: at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:561)
10-23 09:23:15.930 5283 5283 E player-1: ... 4 more
10-23 09:23:15.930 5283 5283 E player-1: Caused by: android.media.MediaCodec$CodecException: Error 0xffffffe0
10-23 09:23:15.930 5283 5283 E player-1: ]
10-23 09:23:15.931 5283 5283 D player-1: state [eventTime=254.09, mediaPos=0.00, window=0, period=0, IDLE]
10-23 09:23:15.932 3761 5150 D MediaMetricsManagerService: failed to get player_metrics_app_blocklist from DeviceConfig
10-23 09:23:15.932 3761 5150 V MediaMetricsManagerService: Logging level blocked: Failed to get PLAYER_METRICS_APP_BLOCKLIST.
10-23 09:23:15.932 3761 5150 D MediaMetricsManagerService: failed to get player_metrics_app_blocklist from DeviceConfig
10-23 09:23:15.932 3761 5150 V MediaMetricsManagerService: Logging level blocked: Failed to get PLAYER_METRICS_APP_BLOCKLIST.
10-23 09:23:15.933 5283 5283 D player-1: audioTrackReleased [eventTime=254.09, mediaPos=0.00, window=0, period=0, 2,12,48000,false,false,48000]
10-23 09:23:16.067 5283 6541 E MediaCodecVideoRenderer: Video codec error
10-23 09:23:16.067 5283 6541 E MediaCodecVideoRenderer: android.media.MediaCodec$CodecException: Error 0xffffffe0
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: Playback error
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: androidx.media3.exoplayer.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(3, null, null, video/hevc, hvc1.1.6.L153, -1, null, [1920, 1080, 29.989359, ColorInfo(BT709, Full range, SDR SMPTE 170M, false, 8bit Luma, 8bit Chroma)], [-1, -1]), format_supported=YES
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:640)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at android.os.Handler.dispatchMessage(Handler.java:102)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at android.os.Looper.loopOnce(Looper.java:201)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at android.os.Looper.loop(Looper.java:288)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at android.os.HandlerThread.run(HandlerThread.java:67)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: Caused by: androidx.media3.exoplayer.video.MediaCodecVideoDecoderException: Decoder failed: OMX.amlogic.hevc.decoder.awesome
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.createDecoderException(MediaCodecVideoRenderer.java:1982)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:893)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:1018)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1136)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:561)
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: ... 4 more
10-23 09:23:16.070 5283 6541 E ExoPlayerImplInternal: Caused by: android.media.MediaCodec$CodecException: Error 0xffffffe0
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: Disable failed.
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: java.lang.IllegalStateException
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at android.media.MediaCodec.native_flush(Native Method)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at android.media.MediaCodec.flush(MediaCodec.java:2387)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecAdapter.flush(AsynchronousMediaCodecAdapter.java:247)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushCodec(MediaCodecRenderer.java:960)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:953)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:780)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:794)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.BaseRenderer.disable(BaseRenderer.java:220)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.ExoPlayerImplInternal.disableRenderer(ExoPlayerImplInternal.java:1846)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:1566)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:1523)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:686)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at android.os.Handler.dispatchMessage(Handler.java:102)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at android.os.Looper.loopOnce(Looper.java:201)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at android.os.Looper.loop(Looper.java:288)
10-23 09:23:16.073 5283 6541 E ExoPlayerImplInternal: at android.os.HandlerThread.run(HandlerThread.java:67)
10-23 09:23:16.073 5283 5283 D player-3: videoDisabled [eventTime=242.27, mediaPos=1.51, window=0, period=0]
10-23 09:23:16.073 5283 5283 D player-3: videoSize [eventTime=242.27, mediaPos=1.51, window=0, period=0, 0, 0]
10-23 09:23:16.076 5283 6626 D CCodecBuffers: [c2.android.aac.decoder#555:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 0
10-23 09:23:16.076 5283 6626 D CCodecBuffers: [c2.android.aac.decoder#555:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 1
Media
Device is reproducible with the default media from the demo-shortform app
Bug Report
- You will email the zip file produced by
adb bugreportto android-media-github@google.com after filing this issue.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.