What sets the X-Plex-Client-Profile-Extra header?

Server Version#: 1.16.3.1402
Player Version#: Hisense (Opera)

Despite all my attempts to set <UpperBound name=“video.level” value=“41”/> in my profile, Plex seems to ignore it and return the following in the server logs:

video.level limitation applies: 41 > 40

I noticed that this header is created:

X-Plex-Client-Profile-Extra => add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=40&replace=true)+add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=40&replace=true)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=aac&replace=true)

Does anyone know how this header is generated? It looks like the client is overriding the upperbound video.level value and setting it to 40, ignoring whatever is configured in the profile.

What’s the point of user-configurable profiles if the client can override them? For example, this TV can decode h265, etc. so I’m pretty confident it can decode h264@4.1 but the client prevents me testing this.

(I’ve had reasonable success hacking away at a profile for my Hisense AE6100 and would be happy to share it once it’s optimised. The lack of documentation on the Profiles XML is very frustrating.)

A quick update, in case anyone finds it useful…

I discovered (via this forum post) that the headers/restrictions can be changed within the Settings section of the Plex app on the TV.

I’ve also managed to get all h264 content playing up to 1080p using the following custom profile:

Not got subtitles working yet, but I’ll give it a try. h265/4K may also work using this profile - I still need to test it.

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