Infinite loading when match frame rate is enabled - Shield TV

Update

I think I might have figured out what’s happening - perhaps it’s a very specific scenario + specific hardware, but I’m leaving an update here just in case it might help anyone (assuming this is really the issue - time will tell).

This issue (infinite loading) started occurring soon after my old AV receiver packed up - I got a new one, set it all up and thought nothing of it. But due to the issues I’ve been facing I dove deeper into the receiver’s setting and realised that as a side-effect of enabling hdmi-control (as Yamaha call CEC), HDMI Standby Through is enabled by default. This feature allows the TV to get an image when the receiver is on standby.

What seems to be happening must be a combination of this (frankly unwanted) feature, plus flaky HDMI handshake process, which on occasion means that the Shield TV doesn’t “notice” the change and get confused re. supported standards (HDMI EDID malarkey).

I then remembered I had a ‘Dr HDMI’ module from the days I ran an HTPC which was used to fool the PC into always ‘seeing’ a display is attached even when it’s on standby … dug it out and attached it between Shield and the receiver - it’s been 2 days now w/o the problem manifesting itself ???

IF this is really the solution I’m not sure if it’s Yamaha’s fault here, Nvidia’s, Plex or possibly a combination of all.

Original Post:

Server Version#: 1.26.2.5797-5bd057d2b
Player Version#: 9.3.0 (also tested with latest beta)

This is on a Shield TV 2017 16gb - anytime it’s get it out of sleep (after say a couple of hours), media will never play, gets stuck on the loading-circle-of-death. 99% of the media is 1080p EAC3 but the same happens for other resolutions and audio codecs be it DTS, Atmos etc.

A reboot and all works fine … till the next day (or perhaps later on same day)!

IF I disable match-frame-rate it all always works! So it some combination of that setting + shield BUT this used to be just fine for a long time now so not sure what’s happened.

Log below - ideas/assistance would be appreciated.

05-30 21:03:01.446  i: [OneApp] User can execute command without restrictions because they are entitled.
05-30 21:03:01.447  i: [PlaybackManager] Preparing for MY MEDIA
05-30 21:03:01.447  i: [PlaybackManager] Item doesn't have streams, having to download...
05-30 21:03:01.449  i: [Download Item] Downloading item with uri server://473649f553004ce9f3b4597f679978818d1ac3bf/com.plexapp.plugins.library/library/metadata/15945?asyncAugmentMetadata=1&checkFiles=1&includeExtras=1&includeReviews=1
05-30 21:03:01.451  i: Fetching [method:GET] https://192.168.0.9:32400/library/metadata/15945?asyncAugmentMetadata=1&checkFiles=1&includeExtras=1&includeReviews=1&X-Plex-Token=...Usjr&X-Plex-Language=en-us
05-30 21:03:01.478  i: [DefaultPlaybackManager] Passthrough is enabled.
05-30 21:03:01.480  i: [DefaultPlaybackManager] No codecs being downloaded.
05-30 21:03:01.481  i: [PlayQueues] Creating delayed remote PQ.
05-30 21:03:01.492  i: [PlayerService] onCreate
05-30 21:03:01.493  i: [Player] Changing to use ExoPlayer for playback.
05-30 21:03:01.522  i: [MemoryOptimisationBehaviour] Reducing memory cache.
05-30 21:03:01.526  i: [MediaSessionHelper] Starting media session with tag: video
05-30 21:03:01.526  i: [MediaSessionHelper] Creating media session with tag: video
05-30 21:03:01.540  i: [MediaSessionBehaviour] Current item has changed
05-30 21:03:01.545  i: [MediaSessionBehaviour] Updating metadata for video.
05-30 21:03:01.546  i: [InteractionBehaviour] Slept, reason: Startup.
05-30 21:03:01.549  i: [CurrentItemMetadataBehaviour] Fetching current item
05-30 21:03:01.550  i: [Player][ExoPlayer] Setting given surfaceView 
05-30 21:03:01.551  i: [VideoAwakeBehaviour] Keep screen awake has been requested disabled for VideoAwakeBehaviour.
05-30 21:03:01.551  i: [DisplayBehaviour] New ExoPlayerEngine detected, enabling: true.
05-30 21:03:01.551  i: [Player][ExoPlayer] Using PlayQueueMediaSource
05-30 21:03:01.552  i: [MediaCodecVideoSyncRenderer] Setting allow dummy surface: false
05-30 21:03:01.552  i: Fetching [method:GET] https://192.168.0.9:32400/library/metadata/15945?includeChapters=1&includeLoudnessRamps=1&includeMarkers=1&includeRelated=1&X-Plex-Token=...Usjr&X-Plex-Language=en-us
05-30 21:03:01.552  i: [ExoPlayer][EventLogger] playWhenReady [eventTime=0.05, mediaPos=0.00, window=0, true, USER_REQUEST]
05-30 21:03:01.553  i: [ExoPlayer][EventLogger] timeline [eventTime=0.05, mediaPos=0.00, window=0, periodCount=1, windowCount=1, reason=PLAYLIST_CHANGED
05-30 21:03:01.553  i: [ExoPlayer][EventLogger]   period [?]
05-30 21:03:01.554  i: [ExoPlayer][EventLogger]   window [?, seekable=false, dynamic=true]
05-30 21:03:01.554  i: [ExoPlayer][EventLogger] ]
05-30 21:03:01.554  i: [Player][ExoPlayer] onTimelineChanged (Position: 0 ms, Duration: 0 ms)
05-30 21:03:01.554  i: [ExoPlayer][EventLogger] mediaItem [eventTime=0.05, mediaPos=0.00, window=0, reason=PLAYLIST_CHANGED]
05-30 21:03:01.555  i: [ExoPlayer][EventLogger] state [eventTime=0.05, mediaPos=0.00, window=0, BUFFERING]
05-30 21:03:01.570  i: [MediaDecisionEngine] Starting media decision for: MY MEDIA (part index 0)
05-30 21:03:01.572  i: [MediaDecisionEngine] Provided video item has no streams, checking files...
05-30 21:03:01.584  i: Fetching [method:GET] https://192.168.0.9:32400/library/metadata/15945?checkFiles=1&includeChapters=1&X-Plex-Token=...Usjr&X-Plex-Language=en-us
05-30 21:03:01.587  i: [CurrentItemMetadataBehaviour] Fetched current item, success: true
05-30 21:03:01.596  i: Creating PlayerActivity.
05-30 21:03:01.597  i: [Activity] Resuming the application, attempting to download item and children.
05-30 21:03:01.597  i: [Boot] PlayerActivity took 1ms to run create behaviours.
05-30 21:03:01.597  i: [MediaDecisionEngine] Transcode server selected: Plex@OMV
05-30 21:03:01.598  i: [MediaDecisionEngine] Analyzing media: 1920x960 9129kbps (Container: mkv, Video: h264, Audio: eac3)
05-30 21:03:01.603  i: [MediaDecisionEngine] Selected subtitle (srt) can be direct played (via Transcode? false)
05-30 21:03:01.605  i: Resuming PlayerActivity.
05-30 21:03:01.606  i: [PlayerActivity] Creating fragment
05-30 21:03:01.607  i: [video] User maximum h264 profile determined: 52
05-30 21:03:01.607  i: [video] Device recommended h264 profile determined: 52
05-30 21:03:01.608  i: [Player][DimensionsLayout] Resizing: 100 x 100
05-30 21:03:01.609  i: [DisplayBehaviour] Activity has been changed, searching for available modes.
05-30 21:03:01.613  i: [DisplayBehaviour] Current mode detected as 1920x1080 @ 59.9401Hz (28).
05-30 21:03:01.615  i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
05-30 21:03:01.675  i: [BufferHelper] Assumed Bitrate: 18258, Segment Count: 2139
05-30 21:03:01.676  i: [BufferHelper] Segment count: 2139
05-30 21:03:01.680  i: Fetching [method:GET] https://192.168.0.9:32400/video/:/transcode/universal/decision?advancedSubtitles=text&audioBoost=100&autoAdjustQuality=0&directPlay=1&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=136896&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F15945&protocol=*&session=647cec3b66c69ed8-com-plexapp-android&skipSubtitles=1&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=647cec3b66c69ed8-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D52)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DnotMatch%26name%3Dvideo.DOVIProfile%26value%3D5)%2Badd-transcode-target(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26container%3Dmkv%26videoCodec%3Dh264%2Chevc%2Cmpeg2video%26audioCodec%3Daac_latm%2Caac%2Cac3%2Calac%2Cdca%2Cdca%2Cdca%2Cdca%2Ceac3%2Cflac%2Cmp1%2Cmp2%2Cmp3%2Copus%2Cvorbis%2Cwmav1%2Cwmav2%2Cwmalossless%2Cwmapro%2Cwmavoice%26subtitleCodec%3Dass%2Cpgs%2Csubrip%2Cdvd_subtitle%2Cmov_text%2Cvtt%2Cdvb_subtitle%26replace%3Dtrue)%2Badd-transcode-target-settings(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26CopyMatroskaAttachments%3Dtrue)%2Badd-limitation(scope%3DvideoAudioCodec%26scopeName%3Daac%26type%3DupperBound%26name%3Daudio.channels%26value%3D8%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Deac3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dopus)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)%2Badd-transcode-target(type%3DsubtitleProfile%26context%3Dstreaming%26protocol%3Dhttp%26container%3Dmkv%26subtitleCodec%3Dsrt)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain%7Cmain%2010)%2Badd-limitation(scope%3DvideoTranscodeTarget%26scopeName%3Dhevc%26scopeType%3DvideoCodec%26context%3Dstreaming%26protocol%3Dhls%26type%3Dmatch%26name%3Dvideo.colorTrc%26list%3Dbt709%7Cbt470m%7Csmpte240m%7Csmpte170m%7Cbt470bg%7Cbt2020-10%26isRequired%3Dfalse)&X-Plex-Device=SHIELD%20Android%20TV&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Version=9.3.0.32892&X-Plex-Token=...Usjr&X-Plex-Language=en-us
05-30 21:03:01.695  i: [MediaDecisionEngine] Server was happy with client's original decision
05-30 21:03:01.707  i: [MediaDecisionEngine] Decision: CanPlay: true CanDirectPlay: true CanDirectStreamVideo: true CanDirectStreamAudio: true CanDirectPlaySubtitle: true CanTranscodeSubtitle: false CanDisplayVideo: true 
05-30 21:03:01.707  i: [LoadControl] New bitrate: 9129, Maximum: 9129
05-30 21:03:01.707  i: [MediaDecisionMediaSource] Resetting mappable types.
05-30 21:03:01.708  i: [BufferHelper] Assumed Bitrate: 18258, Segment Count: 2139
05-30 21:03:01.708  i: [BufferHelper] Segment count: 2139
05-30 21:03:01.710  i: [BufferHelper] Assumed Bitrate: 18258, Segment Count: 2139
05-30 21:03:01.712  i: [BufferHelper] Segment count: 2139
05-30 21:03:01.713  i: [MediaDecisionMediaSource] Resolving 192-168-0-9.6d561c7c2ac643f7af2b5a442d4688aa.plex.direct as 192.168.0.9.
05-30 21:03:01.714  i: [MediaDecisionMediaSource] Opening https://192-168-0-9.6d561c7c2ac643f7af2b5a442d4688aa.plex.direct:32400/library/parts/35374/1652400256/file.mkv?autoAdjustQuality=0&hasMDE=1&location=lan&mediaBufferSize=136896&X-Plex-Client-Identifier=647cec3b66c69ed8-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Device=SHIELD%20Android%20TV&X-Plex-DRM=widevine%3Avideo&X-Plex-Platform=Android&X-Plex-Platform-Version=11&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Token=...Usjr&X-Plex-Version=9.3.0.32892.
05-30 21:03:01.715  i: [MediaDecisionMediaSource] Using ProgressiveMediaSource with FFmpegExtractor.
05-30 21:03:01.715  i: [MediaDecisionMediaSource] onMediaDecisionRefreshed (Sources: 1)
05-30 21:03:01.715  i: [DisplayBehaviour] Mode found: 1280x720 @ 60.0000Hz (5) (Score: 0.00 (RR: 0.00 R: 0.00)
05-30 21:03:01.716  i: [DisplayBehaviour] Mode found: 1280x720 @ 59.9401Hz (18) (Score: 0.00 (RR: 0.00 R: 0.00)
05-30 21:03:01.716  i: [DisplayBehaviour] Mode found: 1280x720 @ 50.0000Hz (22) (Score: 0.00 (RR: 0.00 R: 0.00)
05-30 21:03:01.717  i: [DisplayBehaviour] Mode found: 1920x1080 @ 50.0000Hz (26) (Score: 125.00 (RR: 0.00 R: 125.00)
05-30 21:03:01.717  i: [DisplayBehaviour] Mode found: 1920x1080 @ 60.0000Hz (27) (Score: 125.00 (RR: 0.00 R: 125.00)
05-30 21:03:01.718  i: [DisplayBehaviour] Mode found: 1920x1080 @ 59.9401Hz (28) (Score: 125.00 (RR: 0.00 R: 125.00)
05-30 21:03:01.718  i: [DisplayBehaviour] Mode found: 1920x1080 @ 29.9700Hz (34) (Score: 125.00 (RR: 0.00 R: 125.00)
05-30 21:03:01.718  i: [DisplayBehaviour] Mode found: 1920x1080 @ 23.9760Hz (35) (Score: 149.98 (RR: 24.98 R: 125.00)
05-30 21:03:01.719  i: [DisplayBehaviour] Mode found: 1920x1080 @ 30.0000Hz (36) (Score: 125.00 (RR: 0.00 R: 125.00)
05-30 21:03:01.720  i: [DisplayBehaviour] Mode found: 1920x1080 @ 25.0000Hz (37) (Score: 149.00 (RR: 24.00 R: 125.00)
05-30 21:03:01.721  i: [DisplayBehaviour] Mode found: 1920x1080 @ 24.0000Hz (38) (Score: 225.00 (RR: 100.00 R: 125.00)
05-30 21:03:01.722  i: [DisplayBehaviour] Best mode for 1920x1080 @ 24.000000Hz selected as 1920x1080 @ 24.0000Hz (38).
05-30 21:03:01.722  i: [DisplayBehaviour] Selecting 1920x1080 @ 24.0000Hz (38) as the active mode.
05-30 21:03:01.723  i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
05-30 21:03:01.724  i: [ChaptersSheetHud] Found 0 chapters.
05-30 21:03:01.742  i: [MenuSheetHud] Item changed (and fetched), invalidating settings...
05-30 21:03:01.824  i: [Player][View] Layout has been measured with a size of 1920 x 1080 (1920 x 1080).
05-30 21:03:01.827  i: [ExoPlayer][EventLogger] surfaceSize [eventTime=0.33, mediaPos=0.00, window=0, period=0, 1920, 1080]
05-30 21:03:01.843  i: [SystemUIBehaviour] Hiding the system user-interface.
05-30 21:03:16.196  i: [MemoryOptimisationBehaviour] Expanding memory cache.
05-30 21:03:16.197  i: [ExoPlayer][EventLogger] state [eventTime=14.70, mediaPos=0.00, window=0, period=0, IDLE]
05-30 21:03:16.198  i: [VideoAwakeBehaviour] Keep screen awake has been requested disabled for VideoAwakeBehaviour.
05-30 21:03:16.198  i: [AudioFocusBehaviour] Behaviour being destroyed, giving up audio focus
05-30 21:03:16.201  i: [DisplayBehaviour] Cancelling stop playback runnable to prevent unexpected stop.
05-30 21:03:16.202  i: [DisplayBehaviour] Reverting back to the original display mode.
05-30 21:03:16.203  i: [DisplayBehaviour] Mode is already set to our best mode of 1920x1080 @ 59.9401Hz (28).
05-30 21:03:16.216  i: [MediaSessionBehaviour] Releasing MediaSessionHelper
05-30 21:03:16.218  i: [MediaSessionHelper] Releasing media session with tag: video
05-30 21:03:16.238  i: [PlayerService] onDestroy
05-30 21:03:16.247  i: Resuming HomeActivity.
05-30 21:03:21.799  i: [HttpServer] /192.168.0.124:51459 - GET /logging

Any ideas re. what I can try here?

Clear your app cache? Uninstall/reinstall? Leave frame rate matching disabled permanently? Roll back to a previous working version? Just spit balling.

Not only did I clear cache - I factory reset the shield.

Leaving match-frame-rate disable is not really a solution, been using match frame rate for a decade or more (previously on kodi) and as soon as it’s disabled i can’t stand it!

Happy to roll back albeit not sure if there’s a standard process here - uninstall updates on android TV takes me back on an ancient version which i’m not sure is compatible anymore with my server version. Am i to locate the apk online and side-load it?

Any one from plex here able to help?? I’m ready to debug this and share more logs etc - but this is really annoying.

Yeah, you would have to sideload it. There’s a bunch of different ways, but I just use the program called Downloader, plenty of guides and videos on how to do it out there.

Hopefully somebody can come along and help, but if you need them, all of the previous APKs can be found in the release thread: