I noticed some additional weird behavior.
Tog Gear S30 EP01, played half way and I got interrupted, I continued the next day, and same old problem.
Tog Gear S30 EP02, never played, same problem.
As before, something changed that broke playback, maybe the error is dependent on some Plex state?
I tested on a Samsung TV with a new 2019 Shield Pro, and two LG TV’s with 2017 Shield’s.
Web playback works.
Plex Server Logs: Plex Server 50fps - Pastebin.com
Plex Server Media Info: Media Info - Pastebin.com
Plex Shield Client Logs: https://pastebin.com/4n5LT3De
Client Crash:
03-24 17:49:05.222 e: [ExoPlayer][EventLogger] playerFailed [eventTime=9.68, mediaPos=1499.00, window=0, period=0
com.google.android.exoplayer2.ExoPlaybackException: Source error
at com.google.android.exoplayer2.l0.handleMessage(SourceFile:37)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected IndexOutOfBoundsException: Index: 0, Size: 0
at com.google.android.exoplayer2.upstream.Loader$d.run(SourceFile:26)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:437)
at com.plexapp.plex.ff.data.BaseStream.toString(SourceFile:6)
at com.plexapp.plex.ff.data.VideoStream.toString(SourceFile:5)
at com.plexapp.plex.ff.FFDemuxer.demux(SourceFile:13)
at com.plexapp.plex.ff.source.FFLoadable.load(SourceFile:13)
at com.google.android.exoplayer2.upstream.Loader$d.run(SourceFile:6)
... 3 more
]
03-24 17:49:05.222 e: [Player][ExoPlayer] Playback error detected
03-24 17:49:05.223 i: [Player][Timeline] Handling player error
03-24 17:49:05.223 i: [Player][Timeline] Playback stopped (error: true)
03-24 17:49:05.224 i: [Player][Timeline] Player error not known by server, reporting original player error (or a playback interrupted one)
03-24 17:49:05.224 i: [Player] Error reported: UnknownError (null)
03-24 17:49:05.224 i: [Player][Timeline] Playback stopped (error: false)
03-24 17:49:05.225 e: An exception occurred: com.google.android.exoplayer2.ExoPlaybackException: Source error
03-24 17:49:05.225 e: Stacktrace: com.google.android.exoplayer2.ExoPlaybackException: Source error
at com.google.android.exoplayer2.l0.handleMessage(SourceFile:37)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected IndexOutOfBoundsException: Index: 0, Size: 0
at com.google.android.exoplayer2.upstream.Loader$d.run(SourceFile:26)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:437)
at com.plexapp.plex.ff.data.BaseStream.toString(SourceFile:6)
at com.plexapp.plex.ff.data.VideoStream.toString(SourceFile:5)
at com.plexapp.plex.ff.FFDemuxer.demux(SourceFile:13)
at com.plexapp.plex.ff.source.FFLoadable.load(SourceFile:13)
at com.google.android.exoplayer2.upstream.Loader$d.run(SourceFile:6)
... 3 more
03-24 17:49:05.227 i: [TranscodeSession] Stopping...
FfMpeg Warning in client logs:
03-24 17:48:58.076 i: [FFmpeg] [WARN] [AVBSFContext @ 0x24039abec0] Warning: SPS NALU missing or invalid. The resulting stream may not play.
03-24 17:48:58.076 i: [FFmpeg] [WARN] [AVBSFContext @ 0x24039abec0] Warning: PPS NALU missing or invalid. The resulting stream may not play.
But, testing the MKV file using FfMpeg produces no warnings and no errors:
./ffmpeg.exe -i "Top Gear - S30E01 - Episode 1.mkv" -f null -
ffmpeg version 4.3.2-2021-02-27-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 10.2.0 (Rev6, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, matroska,webm, from 'Top Gear - S30E01 - Episode 1.mkv':
Metadata:
encoder : Lavf58.42.100
Duration: 01:01:32.04, start: 0.000000, bitrate: 10552 kb/s
Chapter #0:0: start 3665.000000, end 3692.040000
Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 1k tbn, 100 tbc (default)
Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf58.45.100
Chapter #0:0: start 3665.000000, end 3692.040000
Stream #0:0(eng): Video: wrapped_avframe, yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 50 fps, 50 tbn, 50 tbc (default)
Metadata:
encoder : Lavc58.91.100 wrapped_avframe
Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s (default)
Metadata:
encoder : Lavc58.91.100 pcm_s16le
frame=184602 fps=888 q=-0.0 Lsize=N/A time=01:01:32.04 bitrate=N/A speed=17.8x
video:96628kB audio:692256kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Please fix this, and please include 50fps / UK HD content in your test corpus to prevent regressions.