Android/ FireFox Web Player Fail To Play - Error Code s3015 (Media) and s3016 (Media)

Server Version#: Ubuntu 18.04 v1.19.5.3112-b23ab3896
Player Version#: Android v8.3.1.19108 (d686ac64)

Plex app fails to play video files on Shield TV, Android tablet, and web players - however the iOS app plays the same file from the same server on the same network without an issue. Here are the logs pulled from my Android tablet application:

07-30 08:35:37.365 i: [FF] Container[hls] No Title - 0 kbps, 19 mins [CT: 0us, ST: 10000000us, SRT: -9223372036854775808us].
07-30 08:35:37.365 i: [FFmpeg] [INFO] Input #0, hls, from ‘’:

07-30 08:35:37.366 i: [FFmpeg] [INFO] Duration:
07-30 08:35:37.366 i: [FFmpeg] [INFO] 00:19:58.00
07-30 08:35:37.366 i: [FFmpeg] [INFO] , start:
07-30 08:35:37.366 i: [FFmpeg] [INFO] 10.000000
07-30 08:35:37.367 i: [FF] VideoStream[0-h264] 720x480 [SAR 1:1, DAR 720:480]. H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 - Unknown Profile (video/avc), 2.1 Mbps 19 mins 0.00fps, No Title / English (eng), 2 / 26 bytes, .
07-30 08:35:37.367 i: [FFmpeg] [INFO] , bitrate:
07-30 08:35:37.367 i: [FFmpeg] [INFO] 0 kb/s
07-30 08:35:37.367 i: [FFmpeg] [INFO]

07-30 08:35:37.368 i: [FFmpeg] [INFO] Program 0

07-30 08:35:37.368 i: [FFmpeg] [INFO] Metadata:

07-30 08:35:37.368 i: [FFmpeg] [INFO] variant_bitrate :
07-30 08:35:37.368 i: [FFmpeg] [INFO] 2085000
07-30 08:35:37.368 i: [FF] AudioStream[1-aac] 2 channels over 0 (2 channels), 44100 Hz, 0,0 padding. AAC (Advanced Audio Coding) - Unknown Profile (audio/mp4a-latm), 2.1 Mbps -54 secs 0.00fps, No Title / English (eng), 1 / 2 bytes, .
07-30 08:35:37.369 i: [FFmpeg] [INFO]

07-30 08:35:37.369 i: [FFmpeg] [INFO] Stream #0:0
07-30 08:35:37.369 i: [FFmpeg] [INFO] (eng)
07-30 08:35:37.369 i: [FFmpeg] [INFO] : Video: h264, none(progressive), 720x480
07-30 08:35:37.370 i: [FFmpeg] [INFO] ,
07-30 08:35:37.370 i: [FFmpeg] [INFO] 1k tbr,
07-30 08:35:37.370 i: [FF] Video decoder doesn’t support aac (audio/mp4a-latm).
07-30 08:35:37.371 i: [FF] Audio decoder doesn’t support aac (audio/mp4a-latm).
07-30 08:35:37.371 i: [FF] Video decoder doesn’t support h264 (video/avc).
07-30 08:35:37.372 i: [FF][MediaPeriod] Selecting tracks.
07-30 08:35:37.373 i: [LoadControl] Assumed Bitrate: 400000, Segment Count: 46875
07-30 08:35:37.374 i: [LoadControl] Detected memory pressure, reducing segment count to fit available memory: 512 MB
07-30 08:35:37.374 i: [FFmpeg] [INFO] 1k tbn,
07-30 08:35:37.374 i: [FFmpeg] [INFO] 1k tbc
07-30 08:35:37.375 i: [LoadControl] Final Segment count: 1638 (102 MB / 4 Seconds)
07-30 08:35:37.375 i: [FFmpeg] [INFO]

07-30 08:35:37.375 i: [FFmpeg] [INFO] Metadata:

07-30 08:35:37.375 i: [FFmpeg] [INFO] variant_bitrate :
07-30 08:35:37.376 i: [FFmpeg] [INFO] 2085000
07-30 08:35:37.376 i: [FFmpeg] [INFO]

07-30 08:35:37.376 i: [ExoPlayer][EventLogger] decoderEnabled [2.14, 0.00, window=0, video]
07-30 08:35:37.377 i: [FFmpeg] [INFO] ENCODER :
07-30 08:35:37.377 i: [FFmpeg] [INFO] Lavf58.27.104
07-30 08:35:37.377 i: [FFmpeg] [INFO]

07-30 08:35:37.377 i: [FFmpeg] [INFO] Stream #0:1
07-30 08:35:37.378 i: [ExoPlayer][EventLogger] decoderEnabled [2.14, 0.00, window=0, audio]
07-30 08:35:37.378 i: [FFmpeg] [INFO] (eng)
07-30 08:35:37.378 i: [ExoPlayer][EventLogger] tracksChanged [2.14, 0.00, window=0,
07-30 08:35:37.378 i: [FFmpeg] [INFO] : Audio: aac (Main), 44100 Hz, 2 channels
07-30 08:35:37.379 i: [ExoPlayer][EventLogger] Renderer:1 [
07-30 08:35:37.380 i: [FFmpeg] [INFO]

07-30 08:35:37.385 i: [FFmpeg] [INFO] Metadata:

07-30 08:35:37.385 i: [ExoPlayer][EventLogger] Group:0, adaptive_supported=N/A [
07-30 08:35:37.385 i: [FFmpeg] [INFO] variant_bitrate :
07-30 08:35:37.386 i: [FFmpeg] [INFO] 2085000
07-30 08:35:37.386 i: [ExoPlayer][EventLogger] Track:0, id=0, mimeType=video/avc, bitrate=2085000, codecs=h264, res=720x480, fps=0.0, supported=YES
07-30 08:35:37.386 i: [FFmpeg] [INFO]

07-30 08:35:37.386 i: [FFmpeg] [INFO] Container metadata entries found: 0.
07-30 08:35:37.386 i: [ExoPlayer][EventLogger] ]
07-30 08:35:37.386 i: [FFmpeg] [INFO] Stream metadata entries found: 3.
07-30 08:35:37.387 i: [ExoPlayer][EventLogger] Metadata [
07-30 08:35:37.387 i: [FFmpeg] [INFO] Stream metadata entries found: 2.
07-30 08:35:37.387 i: [ExoPlayer][EventLogger] original_init_data: (Value: 0 Buffer: 38 bytes)
07-30 08:35:37.387 i: [ExoPlayer][EventLogger] scantype_progressive: (Value: 1 Buffer: 0 bytes)
07-30 08:35:37.387 i: [ExoPlayer][EventLogger] ]
07-30 08:35:37.387 i: [ExoPlayer][EventLogger] ]
07-30 08:35:37.388 i: [ExoPlayer][EventLogger] Renderer:3 [
07-30 08:35:37.388 i: [ExoPlayer][EventLogger] Group:0, adaptive_supported=N/A [
07-30 08:35:37.389 i: [ExoPlayer][EventLogger] Track:0, id=1, mimeType=audio/mp4a-latm, bitrate=2085000, codecs=aac, channels=2, sample_rate=44100, language=eng, supported=YES
07-30 08:35:37.391 i: [ExoPlayer][EventLogger] ]
07-30 08:35:37.393 i: [ExoPlayer][EventLogger] Metadata [
07-30 08:35:37.395 i: [ExoPlayer][EventLogger] block_align: (Value: 0 Buffer: 0 bytes)
07-30 08:35:37.396 i: [ExoPlayer][EventLogger] channel_layout: (Value: 0 Buffer: 0 bytes)
07-30 08:35:37.397 i: [ExoPlayer][EventLogger] original_init_data: (Value: 0 Buffer: 2 bytes)
07-30 08:35:37.397 i: [ExoPlayer][EventLogger] ]
07-30 08:35:37.398 i: [ExoPlayer][EventLogger] ]
07-30 08:35:37.398 i: [ExoPlayer][EventLogger] ]
07-30 08:35:37.399 i: [Player][ExoPlayer] Setting initial track selection…
07-30 08:35:37.399 i: [Player][ExoPlayer] Switching video surface to use MediaCodec surface.
07-30 08:35:37.400 i: [Player] onSurfaceChangeRequested
07-30 08:35:37.493 i: [FF][MediaPeriod] Releasing.
07-30 08:35:37.493 i: [FFmpeg] [INFO] Demuxer has been successfully interupted.
07-30 08:35:37.494 i: [FF] Loading canceled (released: true)
07-30 08:35:37.494 i: [FF] Releasing demuxer.
07-30 08:35:37.495 i: [ExoPlayer][EventLogger] surfaceSizeChanged [2.26, 0.00, window=0, 0, 0]
07-30 08:35:37.495 i: [FFmpeg] [INFO] Demuxer closing.
07-30 08:35:37.495 i: [FFmpeg] [INFO] Demuxer has been interupted…
07-30 08:35:37.496 i: [FFmpeg] [INFO] Demuxer has been closed, interrupting FFmpeg…
07-30 08:35:37.497 i: [ExoPlayer][EventLogger] timelineChanged [2.26, 0.00, window=0, periodCount=1, windowCount=1, reason=DYNAMIC
07-30 08:35:37.498 i: [ExoPlayer][EventLogger] period [1198.00]
07-30 08:35:37.498 i: [ExoPlayer][EventLogger] window [1198.00, true, false]
07-30 08:35:37.499 i: [ExoPlayer][EventLogger] ]
07-30 08:35:37.499 i: [Player][ExoPlayer] onTimelineChanged (Position: 0 ms)
07-30 08:35:37.502 i: [FFmpeg] [INFO] Demuxer has been interupted…
07-30 08:35:37.502 i: [FFmpeg] [INFO] Demuxer has been closed, interrupting FFmpeg…
07-30 08:35:37.509 i: [FFmpeg] [INFO] Demuxer has been interupted…
07-30 08:35:37.510 i: [FFmpeg] [INFO] Demuxer has been closed, interrupting FFmpeg…
07-30 08:35:37.513 i: [FFmpeg] [INFO] [Cache] Close requested, terminating.
07-30 08:35:37.514 i: [ExoPlayer][EventLogger] surfaceSizeChanged [2.28, 0.00, window=0, 1920, 1200]
07-30 08:35:37.515 i: [FFmpeg] [INFO] [Cache] Cache has been closed, interrupting AVIO …
07-30 08:35:37.518 i: [ExoPlayer][EventLogger] decoderInitialized [2.28, 0.00, window=0, video, OMX.Exynos.avc.dec]
07-30 08:35:37.519 i: [FFmpeg] [INFO] [Cache] Close requested, terminating.
07-30 08:35:37.519 i: [FFmpeg] [INFO] Demuxer pipeline terminated.
07-30 08:35:37.520 i: [ExoPlayer][EventLogger] decoderInputFormatChanged [2.28, 0.00, window=0, video, id=0, mimeType=video/avc, bitrate=2085000, codecs=h264, res=720x480, fps=0.0]
07-30 08:35:37.520 i: [FFmpeg] [INFO] Demuxer has been successfully closed.
07-30 08:35:37.521 i: [ExoPlayer][EventLogger] decoderInitialized [2.28, 0.00, window=0, audio, OMX.google.aac.decoder]
07-30 08:35:37.522 i: [ExoPlayer][EventLogger] decoderInputFormatChanged [2.28, 0.00, window=0, audio, id=1, mimeType=audio/mp4a-latm, bitrate=2085000, codecs=aac, channels=2, sample_rate=44100, language=eng]
07-30 08:35:37.523 i: [TranscodeSession] Updating session status
07-30 08:35:37.524 e: [ExoPlayer][EventLogger] playerFailed [2.29, 0.00, window=0]
07-30 08:35:37.524 e: An exception occurred: com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
07-30 08:35:37.525 e: Stacktrace: com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
at com.google.android.exoplayer2.u.handleMessage(SourceFile:24)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: java.lang.IllegalStateException
at android.media.MediaCodec.native_queueInputBuffer(Native Method)
at android.media.MediaCodec.queueInputBuffer(MediaCodec.java:2359)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(SourceFile:67)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(SourceFile:9)
at com.google.android.exoplayer2.u.e(SourceFile:14)
at com.google.android.exoplayer2.u.handleMessage(SourceFile:17)
… 3 more

07-30 08:35:37.525 e: [Player][ExoPlayer] Playback error detected
07-30 08:35:37.525 e: An exception occurred: com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
07-30 08:35:37.526 e: Stacktrace: com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
at com.google.android.exoplayer2.u.handleMessage(SourceFile:24)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: java.lang.IllegalStateException
at android.media.MediaCodec.native_queueInputBuffer(Native Method)
at android.media.MediaCodec.queueInputBuffer(MediaCodec.java:2359)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(SourceFile:67)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(SourceFile:9)
at com.google.android.exoplayer2.u.e(SourceFile:14)
at com.google.android.exoplayer2.u.handleMessage(SourceFile:17)
… 3 more

07-30 08:35:37.526 i: [Player][Timeline] Handling player error
07-30 08:35:37.527 i: [Player][Timeline] Playback stopped (error: true)
07-30 08:35:37.527 i: [Player][Timeline] Player error not known by server, reporting original player error (or a playback interrupted one)
07-30 08:35:37.527 i: [Player] Error reported: UnknownError (null)
07-30 08:35:37.528 i: [Player][Timeline] Playback stopped (error: false)
07-30 08:35:37.535 i: [TranscodeSession] Stopping…
07-30 08:35:37.535 i: [TranscodeSession] Session already stopped.
07-30 08:35:37.537 i: [Player][Error] Displaying player error…
07-30 08:35:37.541 i: [ExoPlayer][EventLogger] decoderDisabled [2.30, 0.00, window=0, video]
07-30 08:35:37.546 i: [ExoPlayer][EventLogger] decoderDisabled [2.30, 0.00, window=0, audio]
07-30 08:35:37.546 i: [ExoPlayer][EventLogger] loading [2.31, 0.00, window=0, false]
07-30 08:35:37.547 i: [ExoPlayer][EventLogger] state [2.31, 0.00, window=0, true, IDLE]
07-30 08:35:37.548 i: [TranscodeSession] Direct Play
07-30 08:35:37.750 i: [ThemeMusic] Fade out complete. Stopping media player.
07-30 08:35:40.506 i: [pms] /192.168.1.200:51851 - GET /logging

Adding more information: web playback of the files in question fails in FireFox v79.0 (64 bit) but works fine in Chrome v 84.0.4147.105 (64 bit official).

My main concern is the failure to playback on any Android app version as I use a Shield TV for my main living room TV streaming and an Android tablet for streaming elsewhere. Both the Shield TV and Android tablet Plex apps are running the latest version available from the Play store.

I’m trying to isolate what I believe the issue to be. See below:

07-30 08:35:37.370 i: [FF] Video decoder doesn’t support aac (audio/mp4a-latm).
07-30 08:35:37.371 i: [FF] Audio decoder doesn’t support aac (audio/mp4a-latm).
07-30 08:35:37.371 i: [FF] Video decoder doesn’t support h264 (video/avc).

This seems to be the same issue that popped up in a forum post from early 2019:

Seems the Android app update broke functionality. Maybe this is the case?

not sure if I am related but android app for mobile and android tv both can’t play h264 2.1 its looks to be related to the latest release

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.