Server Version#: 1.32.8.7639
Player Version#: 10.8.0.5554 (86193d4)
I have a media library mainly composed of HEVC 8bit files which can be played almost anywhere without the need for transcoding. However, when trying to open one such file on my phone (Google Pixel 7), the native decoder fails and Plex player resorts to transcoding to h264. The other android player to which I have access doesn’t behave in this way and directs play any HEVC file I throw at it. When looking at the logs from the Plex app on my phone I found some kind of error (around line 1255 in the android log), but I don’t know if anything can be done about it. I have attached all logs at the end, but the interesting part should be this:
02-06 23:07:39.232 e: [ExoPlayer][MediaCodecVideoRenderer] Video codec error
android.media.MediaCodec$CodecException: Error 0xe
02-06 23:07:39.235 e: [ExoPlayer][ExoPlayerImplInternal] Playback error
androidx.media3.exoplayer.ExoPlaybackException: MediaCodecVideoRenderer error, index=1, format=Format(0, null, null, video/hevc, hevc, -1, null, [1912, 816, 24.0, null], [-1, -1]), format_supported=YES
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:370)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: androidx.media3.exoplayer.video.MediaCodecVideoDecoderException: Decoder failed: c2.exynos.hevc.decoder
at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.createDecoderException(SourceFile:5)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(SourceFile:154)
at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(SourceFile:1)
at mh.q.render(SourceFile:1)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(SourceFile:98)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:226)
... 4 more
Caused by: android.media.MediaCodec$CodecException: Error 0xe
02-06 23:07:39.236 e: [ExoPlayer][ExoPlayerImplInternal] Disable failed.
java.lang.IllegalStateException: flush() is valid only at Executing states; currently at Released state
at android.media.MediaCodec.native_flush(Native Method)
at android.media.MediaCodec.flush(MediaCodec.java:2504)
at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecAdapter.flush(SourceFile:8)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushCodec(SourceFile:3)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(SourceFile:67)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.onDisabled(SourceFile:14)
at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.onDisabled(SourceFile:13)
at androidx.media3.exoplayer.BaseRenderer.disable(SourceFile:26)
at androidx.media3.exoplayer.ExoPlayerImplInternal.disableRenderer(SourceFile:16)
at androidx.media3.exoplayer.ExoPlayerImplInternal.resetInternal(SourceFile:37)
at androidx.media3.exoplayer.ExoPlayerImplInternal.stopInternal(SourceFile:13)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:481)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.os.HandlerThread.run(HandlerThread.java:67)
02-06 23:07:39.237 i: [ExoPlayer][EventLogger] videoDisabled [eventTime=0.80, mediaPos=0.00, window=0, period=0]
02-06 23:07:39.240 i: [ExoPlayer][EventLogger] videoSize [eventTime=0.80, mediaPos=0.00, window=0, period=0, 0, 0]
02-06 23:07:39.241 i: [ASS][Renderer] Renderer thread being stopped due to renderer disabled.
02-06 23:07:39.241 i: [ASS][Renderer] Renderer stopped successfully.
02-06 23:07:39.242 w: [Player][ExoPlayer] Video size changed to something undefined: 0/0
02-06 23:07:39.242 i: [FFmpeg] [INFO] [ASS][Decoder] Releasing decoder.
02-06 23:07:39.243 i: [ASS][Renderer] Disabled renderer.
02-06 23:07:39.243 i: [FFmpeg] [INFO] [ASS][Decoder] Released decoder successfully.
02-06 23:07:39.244 i: [ExoPlayer][EventLogger] audioDisabled [eventTime=0.81, mediaPos=0.00, window=0, period=0]
02-06 23:07:39.252 i: [LoadControl] Setting buffer size to 73,19 MB / 0 seconds.
02-06 23:07:39.256 i: [ExoPlayer][EventLogger] timeline [eventTime=0.82, mediaPos=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
02-06 23:07:39.256 i: [ExoPlayer][EventLogger] period [2420.01]
02-06 23:07:39.257 i: [ExoPlayer][EventLogger] window [2420.01, seekable=true, dynamic=false]
02-06 23:07:39.257 i: [ExoPlayer][EventLogger] ]
02-06 23:07:39.257 i: [Player][ExoPlayer] onTimelineChanged (Position: 0 ms, Duration: 2420010 ms)
02-06 23:07:39.259 e: [ExoPlayer][EventLogger] playerFailed [eventTime=0.82, mediaPos=0.00, window=0, period=0, errorCode=ERROR_CODE_DECODING_FAILED
androidx.media3.exoplayer.ExoPlaybackException: MediaCodecVideoRenderer error, index=1, format=Format(0, null, null, video/hevc, hevc, -1, null, [1912, 816, 24.0, null], [-1, -1]), format_supported=YES
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:370)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: androidx.media3.exoplayer.video.MediaCodecVideoDecoderException: Decoder failed: c2.exynos.hevc.decoder
at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.createDecoderException(SourceFile:5)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(SourceFile:154)
at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(SourceFile:1)
at mh.q.render(SourceFile:1)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(SourceFile:98)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:226)
... 4 more
Caused by: android.media.MediaCodec$CodecException: Error 0xe
]
02-06 23:07:39.260 e: [Player][ExoPlayer] Playback error detected
02-06 23:07:39.261 e: An exception occurred: androidx.media3.exoplayer.ExoPlaybackException: MediaCodecVideoRenderer error, index=1, format=Format(0, null, null, video/hevc, hevc, -1, null, [1912, 816, 24.0, null], [-1, -1]), format_supported=YES
02-06 23:07:39.262 e: Stacktrace: androidx.media3.exoplayer.ExoPlaybackException: MediaCodecVideoRenderer error, index=1, format=Format(0, null, null, video/hevc, hevc, -1, null, [1912, 816, 24.0, null], [-1, -1]), format_supported=YES
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:370)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: androidx.media3.exoplayer.video.MediaCodecVideoDecoderException: Decoder failed: c2.exynos.hevc.decoder
at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.createDecoderException(SourceFile:5)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(SourceFile:154)
at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(SourceFile:1)
at mh.q.render(SourceFile:1)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(SourceFile:98)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:226)
... 4 more
Caused by: android.media.MediaCodec$CodecException: Error 0xe
02-06 23:07:39.262 i: [Player][Timeline] Handling player error
02-06 23:07:39.263 i: [Player][Timeline] Playback stopped (error: true)
02-06 23:07:39.263 i: [Player][Timeline] Player error not known by server, reporting original player error (or a playback interrupted one)
02-06 23:07:39.263 i: [Player] Error reported: UnknownError (null)
02-06 23:07:39.263 i: [Player][Timeline] Playback stopped (error: false)
02-06 23:07:39.265 i: [TranscodeSession] Direct Play
02-06 23:07:39.280 i: [TranscodeFallbackBehaviour] Detected direct play failed, falling back to transcode (starting: true)
It looks like the native decoder fails for some error (0xe?) so the player resorts to transcoding to h264. Does anyone know what the reason could be or how to fix it?
plex_log.zip (264.3 KB)