Hi Ankit, Nautiyal, Ankit K <[email protected]> writes:
> From: Ankit Nautiyal <[email protected]> > > This patch adds HDR-metadata support in the color-management-protocol. > It enables a client to: > - know if an output is HDR capable. > - set HDR-metadata values, received from an HDR content, for a surface. > > The HDR-metadata values : MAX_CLL, MAX_FALL, MAX_LUMINANCE, > MIN LUMINANCE can be sent from the client to compositor, which can > inturn send these to kernel. Kernel can finally send these values in typo: in turn :) > AVI-INFOFRAMES to the HDR display to provide an idea of the brightness > of the content. The display can use this information to adapt itself > for a better viewing experience. You can also add that this information could be used for tone mapping when composing along with other buffers. > > Signed-off-by: Ankit Nautiyal <[email protected]> > --- > .../color-management-unstable-v1.xml | 48 > +++++++++++++++++++++- > 1 file changed, 46 insertions(+), 2 deletions(-) > > diff --git a/unstable/color-management/color-management-unstable-v1.xml > b/unstable/color-management/color-management-unstable-v1.xml > index 7b4d08e..58a41a1 100644 > --- a/unstable/color-management/color-management-unstable-v1.xml > +++ b/unstable/color-management/color-management-unstable-v1.xml > @@ -119,7 +119,15 @@ > <arg name="id" type="new_id" interface="zwp_color_space_v1"/> > </request> > > - <!-- TODO: HDR capabilities event --> > + <event name="hdr_capability"> > + <description summary="HDR Capability"> > + This event is sent after creating a zwp_color_management_output > + (see zwp_color_manager.get_color_management_output) and tells about the > + HDR capability of an output. A value of '1' indicates that the output > + is HDR capable, and '0' indicates a non-HDR output. Can the client span across outputs? If so what will the client receive? 1 or 0? > + </description> > + <arg name="hdr_support" type="uint"/> > + </event> > > <request name="destroy" type="destructor"> > <description summary="destroy the color management output"> > @@ -171,7 +179,43 @@ > <arg name="render_intent" type="uint" enum="render_intent"/> > </request> > > - <!-- TODO: HDR metadata request --> > + <request name="set_hdr_metadata"> > + <description summary="set the hdr metadata for the surface"> > + Set the HDR-metadata for the underlying surface. The HDR-metadata is > + double buffered, and will be applied at the time wl_surface.commit of > + the corresponding wl_surface is called. > + The HDR-metadata constitutes of MAX-CLL, MAX-FALL, Max Luminance and > + Min Luminance as defined by SMPTE ST.2086. The clients get these values > + for an HDR video via ffmpeg for a video stream/file. > + > + MAX-CLL (Maximum Content Light Level) tells the brightest pixel in the > + entire stream/file in nits. MAX-FALL (Maximum Frame Average Light Level) > + tells the highest frame average brightness in nits for a single frame. > + Max and Min Luminance tells the max/min Luminance for the mastering > + display. All except for Minimum Luminace, can be represented by integer, > + as they take values of the order of hundreds of nits. > + For Minimum Luminance, fixed type is used so that it can take smaller > + decimal values, which can be converted to and from double. > + > + For setting color-primaries as part of HDR-metadata, the client should > + manufacture the icc profile and then use the zwp_color_manager interface > + to get the color-space, (see zwp_color_manager.create_color_space). > + The request set_color_space can then be used to set the color-space. > + > + A client may request for setting the HDR-metadata for a surface, even if > + there is no HDR-capable output, compositor should handle such cases. > + "Should" sounds a bit assertive. Maybe drop the sentence? > + The HDR-metadata should be initialized with '-1' for a surface, > + signifying that the values are invalid. So, If a client does not set > + hdr-metadata values for a surface, i.e. does not request > + set_hdr_metadata default value of '-1' will be there, telling the > + compositor that there is no HDR-metadata for that surface. > + </description> > + <arg name="max_cll" type="uint"/> > + <arg name="max_fall" type="uint"/> > + <arg name="max_luminance" type="uint"/> max_cll and max_fall are uints but max_luminance is of fixed type. Also, what happens when the clients wants to reset the hdr metadata? Would it set -1 to all the values to notify of this change? I think all of them should be of fixed types to be able to send -1. > + <arg name="min_luminance" type="fixed"/> > + </request> > > <event name="preferred_color_space"> > <description summary="preferred color space"> Thank you Regards Harish Krupo _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
