PMS 1.32.6+ HW transcoding issues and corrections

Hi Chuck. I’m happy to report that this seems to have corrected the issue on my system:

  • Jasper Lake (Celeron N5105)
  • Pop OS 22.04
  • Kernel 6.4.6
  • (All unsupported, I know :slight_smile: )

I’ve not tested extensively yet, but both the Colors of Journey and Life Untouched 4K HDR demos work well.

Thank you for the hard work!

1 Like

DS1019+ with 5.7516 appears to be working again

1 Like

Ubuntu 22.04 - Intel i5-10210U - QSV working as before on 4k transcoding/tone mapping!

1 Like

Not sure if there was a problem before, but looks good on Windows x64 with latest Nvidia Shield client.

1 Like

Works for me, Debian 12 x64 w/ Nvidia.

1 Like

Thanks for all your work on this! I want to test it but I’m getting an error from DSM - is there a trick to getting the new release to install?
Plex Cannot Roll Back

Uninstall, reinstall maybe?

On DSM

6 - Uninstall + Reinstall

7 - Uninstall Only (KEEP) + Reinstall
(DSM 7 has the extra buttons / menu in it which DSM 6 does not)

Fingers crossed that this fixes the 12900K Tone mapping Transcode issue on the latest Unraid :slight_smile: Ill have to wait for the Beta to be pushed to Docker though before i can test. Not sure how to load it manually.

@V3nom

Whenever i use docker, if you have dpkg in the image. you can use dpkg -i filename.deb to install it.

(we added that capability when writing the packaging)

Oh excellent! cool ill look into this then, thanks :slight_smile:

I am having a problem with the latest beta (1.32.5.7516) transcoding HDR with an Nvidia P2000. Ubuntu 20.04 via docker (AMD 5600). I can make a separate issue if needed.

Video file info:

Media
Duration 47:05
Bitrate 2204 kbps
Width 1920
Height 1080
Aspect Ratio 1.78
Video Resolution 1080p
Container MKV
Video Frame Rate 24p
Video Profile main 10
Part
Duration 47:05
File Dear Child . S01E02 . Grandfather (WEBDL-1080p - h265 EAC3 Atmos) - LLL.mkv
Size 743.79 MB
Container MKV
Video Profile main 10
Codec HEVC
Bitrate 1459 kbps
D O V I B L Present true
D O V I Level 3
D O V I Present true
D O V I Profile 5
D O V I R P U Present true
D O V I Version 1.0
Bit Depth 10
Chroma Location left
Chroma Subsampling 4:2:0
Coded Height 1080
Coded Width 1920
Color Range pc
Frame Rate 24 fps
Height 1080
Level 4.0
Profile main 10
Ref Frames 1
Width 1920
Display Title 1080p DoVi (HEVC Main 10)
Extended Display Title 1080p DoVi (HEVC Main 10)
Codec EAC3
Channels 6
Bitrate 744 kbps
Language German
Language Tag de
Audio Channel Layout 5.1(side)
Sampling Rate 48000 Hz
Display Title German (EAC3 5.1)
Extended Display Title German (EAC3 5.1)

When trying to play in browser I get an error:
File is unplayable. Color space is not supported.

When playing via windows app:
Cannot convert this item. No conversion audio and video encoders could be found in app profile.

When playing on an Nvidia Shield on an HDR TV (which should direct play):
Unable to play media
nvidia shield client logs:

09-18 16:47:09.899  i: [PlaybackManager] Preparing for Dear Child - S1 • E2
09-18 16:47:09.900  i: [PlaybackManager] Item doesn't have streams, having to download...
09-18 16:47:09.902  i: [Download Item] Downloading item with uri server://7ba53ac44bc4be0528ac85bae0a99c1f776dc04a/com.plexapp.plugins.library/library/metadata/1851306?asyncAugmentMetadata=1&checkFiles=1&includeExtras=1&includeReviews=1
09-18 16:47:09.903  i: Fetching [method:GET] https://192.168.0.178:32400/library/metadata/1851306?asyncAugmentMetadata=1&checkFiles=1&includeExtras=1&includeReviews=1&X-Plex-Token=...RqbV&X-Plex-Language=en-us
09-18 16:47:09.942  i: [PlaybackManager] Audio codec required: eac3
09-18 16:47:09.942  i: [DefaultPlaybackManager] No codecs being downloaded.
09-18 16:47:09.943  i: [PlayQueues] Creating delayed remote PQ.
09-18 16:47:09.964  i: [PlayerService] Service has been created.
09-18 16:47:09.969  i: [PlayerService] Service is being initialised.
09-18 16:47:09.970  i: [Player] Changing to use ExoPlayer for playback.
09-18 16:47:10.023  i: [LoadControl] Setting buffer size to 73.19 MB / 0 seconds.
09-18 16:47:10.028  i: [ExoPlayer][ExoPlayerImpl] Init f0b9696 [AndroidXMedia3/1.1.0] [foster, SHIELD Android TV, NVIDIA, 30]
09-18 16:47:10.030  i: [AudioCapabilitiesHelper] Passthrough is set to auto over HDMI, supported capabilities:
09-18 16:47:10.036  i: [ExoPlayerEngine] Constructed ExoPlayer to use a background looper.
09-18 16:47:10.060  i: [MemoryOptimisationBehaviour] Reducing memory cache.
09-18 16:47:10.063  i: [PictureInPictureBehaviour] Picture-in-picture unavailable as the activity is missing.
09-18 16:47:10.064  i: [MediaSessionHelper] Starting media session with tag: video
09-18 16:47:10.064  i: [MediaSessionHelper] Creating media session with tag: video
09-18 16:47:10.088  i: [CurrentItemMetadataBehaviour] Fetching current item
09-18 16:47:10.090  i: [MediaSessionBehaviour] Current item has changed
09-18 16:47:10.090  i: [MediaSessionBehaviour] Updating metadata for video.
09-18 16:47:10.094  i: [InteractionBehaviour] Slept, reason: Startup.
09-18 16:47:10.098  i: [PictureInPictureBehaviour] Picture-in-picture unavailable as the activity is missing.
09-18 16:47:10.102  i: [ExoPlayer][EventLogger] surfaceSize [eventTime=0.06, mediaPos=0.00, window=0, 0, 0]
09-18 16:47:10.110  i: [Player][ExoPlayer] Setting given surfaceView 
09-18 16:47:10.110  i: [VideoAwakeBehaviour] Keep screen awake has been requested disabled for VideoAwakeBehaviour.
09-18 16:47:10.110  i: [DisplayBehaviour] New ExoPlayerEngine detected, enabling: false.
09-18 16:47:10.111  i: [Player][ExoPlayer] Using PlayQueueMediaSource
09-18 16:47:10.111  i: [ExoPlayerEngine] Media source has been created.
09-18 16:47:10.111  i: [MediaCodecVideoSyncRenderer] Setting allow dummy surface: false
09-18 16:47:10.111  i: [ExoPlayer][EventLogger] playWhenReady [eventTime=0.08, mediaPos=0.00, window=0, true, USER_REQUEST]
09-18 16:47:10.112  i: [ExoPlayer][EventLogger] positionDiscontinuity [eventTime=0.08, mediaPos=1329.48, window=0, reason=SEEK, PositionInfo:old [mediaItem=0, period=-1, pos=0], PositionInfo:new [mediaItem=0, period=-1, pos=1329479]]
09-18 16:47:10.112  i: [Player][ExoPlayer] onPositionDiscontinuity, Reason: 1
09-18 16:47:10.112  i: [LoadControl] Setting buffer size to 73.19 MB / 0 seconds.
09-18 16:47:10.116  i: [CurrentItemMetadataBehaviour] Fetched current item, success: true
09-18 16:47:10.122  i: [ExoPlayer][EventLogger] timeline [eventTime=0.09, mediaPos=1329.48, window=0, periodCount=1, windowCount=1, reason=PLAYLIST_CHANGED
09-18 16:47:10.122  i: [ExoPlayer][EventLogger]   period [?]
09-18 16:47:10.122  i: [PlayerService] Service has been started successfully.
09-18 16:47:10.123  i: [ExoPlayer][EventLogger]   window [?, seekable=false, dynamic=true]
09-18 16:47:10.123  i: [ExoPlayer][EventLogger] ]
09-18 16:47:10.123  i: [Player][ExoPlayer] onTimelineChanged (Position: 0 ms, Duration: 0 ms)
09-18 16:47:10.123  i: [ExoPlayer][EventLogger] mediaItem [eventTime=0.09, mediaPos=1329.48, window=0, reason=PLAYLIST_CHANGED]
09-18 16:47:10.124  i: [ExoPlayer][EventLogger] state [eventTime=0.09, mediaPos=1329.48, window=0, BUFFERING]
09-18 16:47:10.124  i: [LoadControl] Setting buffer size to 73.19 MB / 0 seconds.
09-18 16:47:10.127  i: [MediaDecisionEngine] Starting media decision for: Dear Child - S1 • E2 (part index 0)
09-18 16:47:10.128  i: [MediaDecisionEngine] Provided video item has no streams, checking files...
09-18 16:47:10.128  i: Fetching [method:GET] https://192.168.0.178:32400/library/metadata/1851306?checkFiles=1&includeChapters=1&X-Plex-Token=...RqbV&X-Plex-Language=en-us
09-18 16:47:10.148  i: [MediaDecisionEngine] Transcode server selected: PlexServer
09-18 16:47:10.149  i: [MediaDecisionEngine] Analyzing media: 1920x1080 2204kbps (Container: mkv, Video: hevc, Audio: eac3)
09-18 16:47:10.170  i: Creating PlayerActivity.
09-18 16:47:10.171  i: [Activity] Resuming the application, attempting to download item and children.
09-18 16:47:10.171  i: [Boot] PlayerActivity took 1ms to run create behaviours.
09-18 16:47:10.183  i: Resuming PlayerActivity.
09-18 16:47:10.184  i: [PlayerActivity] Creating fragment
09-18 16:47:10.187  i: [MediaDecisionEngine] Unable to direct play; E-AC-3 audio is not supported by the device
09-18 16:47:10.187  i: [Player][DimensionsLayout] Resizing: 100 x 100
09-18 16:47:10.188  i: [DisplayBehaviour] Activity has been changed, searching for available modes.
09-18 16:47:10.189  i: [DisplayBehaviour] Current Mode ID: 17 / {id=17, width=3840, height=2160, fps=59.94006}
09-18 16:47:10.189  i: [DisplayBehaviour] Current mode detected as 3840x2160 @ 59.9401Hz (17).
09-18 16:47:10.190  i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
09-18 16:47:10.190  i: [MediaDecisionEngine] Selected subtitle (srt) can be direct played (via Transcode? true)
09-18 16:47:10.191  i: [VideoAwakeBehaviour] Keep screen awake has been requested disabled for VideoAwakeBehaviour.
09-18 16:47:10.199  i: [video] User maximum h264 profile determined: 52
09-18 16:47:10.199  i: [video] Device recommended h264 profile determined: 52
09-18 16:47:10.264  i: [BufferHelper] Assumed Bitrate: 400000, Segment Count: 46875
09-18 16:47:10.264  i: [BufferHelper] Detected memory pressure, reducing segment count to fit available memory: 512
09-18 16:47:10.264  i: [BufferHelper] Segment count: 3276
09-18 16:47:10.266  i: Fetching [method:GET] https://192.168.0.178:32400/video/:/transcode/universal/decision?advancedSubtitles=text&audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F1851306&protocol=*&session=9870577506976a72-com-plexapp-android&subtitles=embedded&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=9870577506976a72-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%2Caac%2Cac3%2Calac%2Cdca%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%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%3Dsmpte2084%7Cbt709%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.31.0.3817&X-Plex-Token=...RqbV&X-Plex-Language=en-us
09-18 16:47:10.308  i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
09-18 16:47:10.310  i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
09-18 16:47:10.327  i: [PictureInPictureBehaviour] Picture-in-picture is available and can be used.
09-18 16:47:10.335  i: [ChaptersSheetHud] Found 2 chapters.
09-18 16:47:10.336  i: [ChaptersSheetHud] Found 2 chapters.
09-18 16:47:10.336  i: [ChaptersSheetHud] Found 2 chapters.
09-18 16:47:10.346  i: [MenuSheetHud] Item changed (and fetched), invalidating settings...
09-18 16:47:10.460  i: [Player][View] Layout has been measured with a size of 1920 x 1080 (1920 x 1080).
09-18 16:47:10.460  i: [Player][DimensionsLayout] Resizing: 1920 x 1080
09-18 16:47:10.467  i: [ExoPlayer][EventLogger] surfaceSize [eventTime=0.43, mediaPos=1329.48, window=0, period=0, 1920, 1080]
09-18 16:47:10.468  i: [ASS][Renderer] Surface has been created, connecting to renderer.
09-18 16:47:10.468  i: [ASS][Renderer] Attempting to start renderer from setSurface.
09-18 16:47:10.469  w: [ASS][Renderer] Missing video size, can't start renderer yet.
09-18 16:47:10.490  i: [SystemUIBehaviour] Hiding the system user-interface.
09-18 16:47:10.738  i: [MediaDecisionEngine] Server was unhappy with client's original decision: Neither direct play nor conversion is available.
09-18 16:47:10.772  i: [MediaDecisionEngine] Decision: CanPlay: false CanDirectPlay: false CanDirectStreamVideo: false CanDirectStreamAudio: false CanDirectPlaySubtitle: false CanTranscodeSubtitle: false CanDisplayVideo: false Transcode Reason: null 
09-18 16:47:10.784  e: [ExoPlayer][ExoPlayerImplInternal] Playback error
  androidx.media3.exoplayer.ExoPlaybackException: Source error
      at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(SourceFile:17)
      at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:284)
      at android.os.Handler.dispatchMessage(Handler.java:102)
      at android.os.Looper.loop(Looper.java:223)
      at android.os.HandlerThread.run(HandlerThread.java:67)
  Caused by: java.io.IOException
      at dh.y.maybeThrowSourceInfoRefreshError(SourceFile:21)
      at dh.e0.maybeThrowSourceInfoRefreshError(Unknown Source:2)
      at androidx.media3.exoplayer.source.MaskingMediaPeriod.maybeThrowPrepareError(SourceFile:13)
      at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(SourceFile:175)
      at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:226)
      ... 3 more

09-18 16:47:10.786  i: [LoadControl] Setting buffer size to 73.19 MB / 0 seconds.
09-18 16:47:10.808  e: [ExoPlayer][EventLogger] playerFailed [eventTime=0.77, mediaPos=1329.48, window=0, period=0, errorCode=ERROR_CODE_IO_UNSPECIFIED
  androidx.media3.exoplayer.ExoPlaybackException: Source error
      at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(SourceFile:17)
      at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:284)
      at android.os.Handler.dispatchMessage(Handler.java:102)
      at android.os.Looper.loop(Looper.java:223)
      at android.os.HandlerThread.run(HandlerThread.java:67)
  Caused by: java.io.IOException
      at dh.y.maybeThrowSourceInfoRefreshError(SourceFile:21)
      at dh.e0.maybeThrowSourceInfoRefreshError(Unknown Source:2)
      at androidx.media3.exoplayer.source.MaskingMediaPeriod.maybeThrowPrepareError(SourceFile:13)
      at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(SourceFile:175)
      at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:226)
      ... 3 more
]
09-18 16:47:10.808  e: [Player][ExoPlayer] Playback error detected
09-18 16:47:10.810  e: An exception occurred: androidx.media3.exoplayer.ExoPlaybackException: Source error
09-18 16:47:10.810  e: Stacktrace: androidx.media3.exoplayer.ExoPlaybackException: Source error
	at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(SourceFile:17)
	at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:284)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:223)
	at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: java.io.IOException
	at dh.y.maybeThrowSourceInfoRefreshError(SourceFile:21)
	at dh.e0.maybeThrowSourceInfoRefreshError(Unknown Source:2)
	at androidx.media3.exoplayer.source.MaskingMediaPeriod.maybeThrowPrepareError(SourceFile:13)
	at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(SourceFile:175)
	at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(SourceFile:226)
	... 3 more

09-18 16:47:10.814  i: [Player][Timeline] Handling player error
09-18 16:47:10.815  i: [Player][Timeline] Playback stopped (error: true)
09-18 16:47:10.816  i: [Player][Timeline] Player error not known by server, reporting original player error (or a playback interrupted one)
09-18 16:47:10.818  i: [Player] Error reported: ServerDecisionError (null)
09-18 16:47:10.820  i: [Player][Timeline] Playback stopped (error: false)
09-18 16:47:10.828  i: [TranscodeSession] Stopping...
09-18 16:47:10.829  i: [TranscodeSession] Session already stopped.
09-18 16:47:10.846  i: [Player][Error] Displaying player error...
09-18 16:47:10.856  i: [DialogBehaviour] Showing dialog.

It does play via Chromecast with Google TV on an HDR TV.

I do have tone mapping enabled

I’ll try to capture a server debug log and edit this post in a bit.

This is likely to be Dolby Profile 5 – which cannot be supported.

Dolby Vision Profile 5 is designed “Consume Only” . It’s not intended to be captured & then transcoded.

D O V I B L Present true
D O V I Level 3
D O V I Present true
D O V I Profile 5
D O V I R P U Present true
D O V I Version 1.0

Profile 5 indicated

Gotcha. I’ll try a known working HDR 10 that isn’t Dolby and see if I run into any issues (as well as figure out why my shield won’t direct play it).

Check Shield Quality settings.

Nvidia Shield 2019 with a HDCP 2.0a HDMI cable to a DoVi-capable TV will work.
( Looks great on my OLED )

I am using a 2017 Pro with a HDMI 2.1 cable to a Vizio P85QX-H1. I am guessing the underlying issue might be my splitter (for hyperion). It does work with HDR, but maybe not Dolby Profile 5. This is the splitter, which does say it supports Dolby Vision

I don’t know the Shield Pro 2017 specs.

As a test , bypass the splitter. Let the shield recognize and configure the display settings That’s the easiest test.

ALL: We have a possible solution.

We would greatly appreciate testing this.

  1. Functionality should be restored for all machines

Woooo!

(EXCEPT GeminiLake).

Awwww, back to waiting.

@Arsenal

We aren’t going to press our luck with this work.
We need to recover to known stable ground so we can move forward with the new team.

1 Like

I removed the splitter and still had the same issue. I guess it’s entirely possible that the Shield 2017 doesn’t support DV profile 5. Maybe those are the only DV files I have noticed. With a quick search, it seems the 2017 doesn’t support DV. The P85QX-H1 should, and I tried playing the file directly there but was met with a similar error about the colorspace not being supported.

I tested out a different HDR10 movie and that transcoded without any problems, so I’ll stop wasting everyone’s time here.

Bit Depth 10
Chroma Location topleft
Chroma Subsampling 4:2:0
Coded Height 808
Coded Width 1920
Color Primaries bt2020
Color Range tv
Color Space bt2020nc
Color Trc smpte2084
1 Like