Building a graph for HDR10 output - stumped at sink

Bill Hofmann bill.hofmann at
Sun Mar 27 00:39:55 UTC 2022


I'm working to build an HDR10 fullscreen player based on gstreamer
(currently working with 1.18.5, but will upgrade to 1.20 later, AFAIK
1.18.5 has HDR10 fixes), running on an AMD device running Ubuntu 21.10,
connected (via HDMI 2.0b port) to an HDR10-capable TV (Sony Bravia in this

tl;dr: looking for a sink that'll display fullscreen HDR10 out an HDMI port
on Linux


The source file is a UHD HEVC Main10 L5.1 encode, and plays HDR10 in a
number of other situations, so the file is valid (also checked with

Here's the latest version of the graph:

gst-launch-1.0 filesrc location=hdr10.mp4 ! qtdemux ! \
       h265parse ! vaapih265dec ! vaapipostproc ! \
       kmssink connector-id=78

I've verified that the mastering display information from the HEVC SEI
messages makes it all the way through vaapipostproc. Kmssink displays
fullscreen (can't get autovideosink or vaapisink to do this on the desktop,
and anyway, X/etc aren't HDR capable from my understanding).

However, it doesn't properly signal HDR10, so the display is, basically,

As well, looking at kmssink source (and debug messages at level 9), I see
no attempt to read the two caps for HDR content, nor are there any HDR10
HDMI messages set. (I know that this can be done in DRM, having done it
myself as a test). Similarly, it does not seem to like P010 content.

So.  What's the next step here? Is this a big gap in kmssink? Is there
another sink I should be trying?


Typed by clumsy fingers - be gentle
wdh at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list