Warning, /plasma/kwin/src/wayland/protocols/xx-color-management-v2.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <protocol name="xx_color_management_v2"> 0003 <copyright> 0004 Copyright 2019 Sebastian Wick 0005 Copyright 2019 Erwin Burema 0006 Copyright 2020 AMD 0007 Copyright 2020, 2022, 2023 Collabora, Ltd. 0008 0009 Permission is hereby granted, free of charge, to any person obtaining a 0010 copy of this software and associated documentation files (the "Software"), 0011 to deal in the Software without restriction, including without limitation 0012 the rights to use, copy, modify, merge, publish, distribute, sublicense, 0013 and/or sell copies of the Software, and to permit persons to whom the 0014 Software is furnished to do so, subject to the following conditions: 0015 0016 The above copyright notice and this permission notice (including the next 0017 paragraph) shall be included in all copies or substantial portions of the 0018 Software. 0019 0020 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 0021 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 0022 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 0023 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 0024 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 0025 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 0026 DEALINGS IN THE SOFTWARE. 0027 </copyright> 0028 0029 <description summary="color management protocol"> 0030 The aim of the color management extension is to allow clients to know 0031 the color properties of outputs, and to tell the compositor about the color 0032 properties of their content on surfaces. Doing this enables a compositor 0033 to perform automatic color management of content for different outputs 0034 according to how content is intended to look like. 0035 0036 The color properties are represented as an image description object which 0037 is immutable after it has been created. A wl_output always has an 0038 associated image description that clients can observe. A wl_surface 0039 always has an associated preferred image description as a hint chosen by 0040 the compositor that clients can also observe. Clients can set an image 0041 description on a wl_surface to denote the color characteristics of the 0042 surface contents. 0043 0044 An image description includes SDR and HDR colorimetry and encoding, HDR 0045 metadata, and viewing environment parameters. An image description does 0046 not include the properties set through color-representation extension. 0047 It is expected that the color-representation extension is used in 0048 conjunction with the color management extension when necessary, 0049 particularly with the YUV family of pixel formats. 0050 0051 Recommendation ITU-T H.273 0052 "Coding-independent code points for video signal type identification" 0053 shall be referred to as simply H.273 here. 0054 0055 The color-and-hdr repository 0056 (https://gitlab.freedesktop.org/pq/color-and-hdr) contains 0057 background information on the protocol design and legacy color management. 0058 It also contains a glossary, learning resources for digital color, tools, 0059 samples and more. 0060 0061 The terminology used in this protocol is based on common color science and 0062 color encoding terminology where possible. The glossary in the color-and-hdr 0063 repository shall be the authority on the definition of terms in this 0064 protocol. 0065 </description> 0066 0067 <interface name="xx_color_manager_v2" version="1"> 0068 <description summary="color manager singleton"> 0069 A global interface used for getting color management extensions for 0070 wl_surface and wl_output objects, and for creating client defined image 0071 description objects. The extension interfaces allow 0072 getting the image description of outputs and setting the image 0073 description of surfaces. 0074 </description> 0075 0076 <request name="destroy" type="destructor"> 0077 <description summary="destroy the color manager"> 0078 Destroy the xx_color_manager_v2 object. This does not affect any other 0079 objects in any way. 0080 </description> 0081 </request> 0082 0083 <enum name="error"> 0084 <entry name="unsupported_feature" value="0" summary="request not supported"/> 0085 </enum> 0086 0087 <enum name="render_intent"> 0088 <description summary="rendering intents"> 0089 See the ICC.1:2022 specification from the International Color Consortium 0090 for more details about rendering intents. 0091 0092 The principles of ICC defined rendering intents apply with all types 0093 of image descriptions, not only those with ICC file profiles. 0094 0095 Compositors must support the perceptual rendering intent. Other 0096 rendering intents are optional. 0097 </description> 0098 0099 <entry name="perceptual" value="0" summary="perceptual"/> 0100 <entry name="relative" value="1" summary="media-relative colorimetric"/> 0101 <entry name="saturation" value="2" summary="saturation"/> 0102 <entry name="absolute" value="3" summary="ICC-absolute colorimetric"/> 0103 <entry name="relative_bpc" value="4" 0104 summary="media-relative colorimetric + black point compensation"/> 0105 </enum> 0106 0107 <enum name="feature"> 0108 <description summary="compositor supported features"/> 0109 0110 <entry name="icc_v2_v4" value="0" summary="new_icc_creator request"/> 0111 <entry name="parametric" value="1" summary="new_parametric_creator request"/> 0112 <entry name="set_primaries" value="2" summary="parametric set_primaries request"/> 0113 <entry name="set_tf_power" value="3" summary="parametric set_tf_power request"/> 0114 <entry name="set_mastering_display_primaries" value="4"> 0115 <description summary="parametric set_mastering_display_primaries request"> 0116 The compositor supports set_mastering_display_primaries request 0117 with a target color volume fully contained inside the primary 0118 color volume. 0119 </description> 0120 </entry> 0121 <entry name="extended_target_volume" value="5"> 0122 <description summary="parametric target exceeds primary color volume"> 0123 The compositor additionally supports target color volumes that 0124 extend outside of the primary color volume. 0125 0126 This can only be advertised if feature set_mastering_display_primaries 0127 is supported as well. 0128 </description> 0129 </entry> 0130 </enum> 0131 0132 <enum name="primaries"> 0133 <description summary="named color primaries"> 0134 Named color primaries used to encode well-known sets of primaries. 0135 H.273 is the authority, when it comes to the exact values of primaries and authoritative specifications, 0136 where an equivalent code point exists. 0137 Descriptions do list the specifications for convenience. 0138 </description> 0139 <entry name="srgb" value="0"> 0140 <description summary="Color primaries for the sRGB color space as defined by the BT.709 standard"> 0141 Color primaries as defined by 0142 - Rec. ITU-R BT.709-6 0143 - Rec. ITU-R BT.1361-0 conventional colour gamut system and extended colour gamut system (historical) 0144 - IEC 61966-2-1 sRGB or sYCC 0145 - IEC 61966-2-4 0146 - Society of Motion Picture and Television Engineers (SMPTE) RP 177 (1993) Annex B 0147 Equivalent to H.273 ColourPrimaries code point 1. 0148 </description> 0149 </entry> 0150 <entry name="pal_m" value="1"> 0151 <description summary="Color primaries for PAL-M as defined by the BT.470 standard"> 0152 Color primaries as defined by 0153 - Rec. ITU-R BT.470-6 System M (historical) 0154 - United States National Television System Committee 1953 Recommendation for transmission standards for color television 0155 - United States Federal Communications Commission (2003) Title 47 Code of Federal Regulations 73.682 (a)(20) 0156 Equivalent to H.273 ColourPrimaries code point 4. 0157 </description> 0158 </entry> 0159 <entry name="pal" value="2"> 0160 <description summary="Color primaries for PAL as defined by the BT.601 standard"> 0161 Color primaries as defined by 0162 - Rec. ITU-R BT.470-6 System B, G (historical) 0163 - Rec. ITU-R BT.601-7 625 0164 - Rec. ITU-R BT.1358-0 625 (historical) 0165 - Rec. ITU-R BT.1700-0 625 PAL and 625 SECAM 0166 Equivalent to H.273 ColourPrimaries code point 5. 0167 </description> 0168 </entry> 0169 <entry name="ntsc" value="3"> 0170 <description summary="Color primaries for NTSC as defined by the BT.601 standard"> 0171 Color primaries as defined by 0172 - Rec. ITU-R BT.601-7 525 0173 - Rec. ITU-R BT.1358-1 525 or 625 (historical) 0174 - Rec. ITU-R BT.1700-0 NTSC 0175 - SMPTE 170M (2004) 0176 - SMPTE 240M (1999) (historical) 0177 Equivalent to H.273 ColourPrimaries code point 6 and 7. 0178 </description> 0179 </entry> 0180 <entry name="generic_film" value="4"> 0181 <description summary="Generic film with colour filters using Illuminant C"> 0182 Color primaries as defined by H.273 for generic film. 0183 Equivalent to H.273 ColourPrimaries code point 8. 0184 </description> 0185 </entry> 0186 <entry name="bt2020" value="5"> 0187 <description summary="Color primaries as defined by the BT.2020 and BT.2100 standard"> 0188 Color primaries as defined by 0189 - Rec. ITU-R BT.2020-2 0190 - Rec. ITU-R BT.2100-0 0191 Equivalent to H.273 ColourPrimaries code point 9. 0192 </description> 0193 </entry> 0194 <entry name="cie1931_xyz" value="6"> 0195 <description summary="Color primaries of the full CIE 1931 XYZ color space"> 0196 Color primaries as defined as the maximum of the CIE 1931 XYZ color space by 0197 - SMPTE ST 428-1 0198 - (CIE 1931 XYZ as in ISO 11664-1) 0199 Equivalent to H.273 ColourPrimaries code point 10. 0200 </description> 0201 </entry> 0202 <entry name="dci_p3" value="7"> 0203 <description summary="Color primaries of the DCI P3 color space as defined by the SMPTE RP 431 standard"> 0204 Color primaries as defined by Digital Cinema System and published in SMPTE RP 431-2 (2011). 0205 Equivalent to H.273 ColourPrimaries code point 11. 0206 </description> 0207 </entry> 0208 <entry name="display_p3" value="8"> 0209 <description summary="Color primaries of Display P3 variant of the DCI-P3 color space as defined by the SMPTE EG 432 standard"> 0210 Color primaries as defined by Digital Cinema System and published in SMPTE EG 432-1 (2010). 0211 Equivalent to H.273 ColourPrimaries code point 12. 0212 </description> 0213 </entry> 0214 <entry name="adobe_rgb" value="9"> 0215 <description summary="Color primaries of the Adobe RGB color space as defined by the ISO 12640 standard"> 0216 Color primaries as defined by Adobe as "Adobe RGB" and later published by ISO 12640-4 (2011). 0217 </description> 0218 </entry> 0219 </enum> 0220 0221 <enum name="transfer_function"> 0222 <description summary="named transfer functions"> 0223 Named Transfer Functions. 0224 </description> 0225 <entry name="bt709" value="0"> 0226 <description summary="BT.709 transfer function"> 0227 Transfer characteristics as defined by 0228 - Rec. ITU-R BT.709-6 0229 - Rec. ITU-R BT.1361-0 conventional colour gamut system (historical) 0230 Equivalent to H.273 TransferCharacteristics code point 1, 6, 14, 15. 0231 </description> 0232 </entry> 0233 <entry name="gamma22" value="1"> 0234 <description summary="Assumed display gamma 2.2 transfer function"> 0235 Transfer characteristics as defined by 0236 - Rec. ITU-R BT.470-6 System M (historical) 0237 - United States National Television System Committee 1953 Recommendation for transmission standards for color television 0238 - United States Federal Communications Commission (2003) Title 47 Code of Federal Regulations 73.682 (a) (20) 0239 - Rec. ITU-R BT.1700-0 625 PAL and 625 SECAM 0240 Equivalent to H.273 TransferCharacteristics code point 4. 0241 </description> 0242 </entry> 0243 <entry name="gamma28" value="2"> 0244 <description summary="Assumed display gamma 2.8 transfer function"> 0245 Transfer characteristics as defined by 0246 - Rec. ITU-R BT.470-6 System B, G (historical) 0247 Equivalent to H.273 TransferCharacteristics code point 5. 0248 </description> 0249 </entry> 0250 <entry name="st240" value="3"> 0251 <description summary="SMPTE ST 240 transfer function"> 0252 Transfer characteristics as defined by 0253 - SMPTE ST 240 (1999) 0254 Equivalent to H.273 TransferCharacteristics code point 7. 0255 </description> 0256 </entry> 0257 <entry name="linear" value="4"> 0258 <description summary="linear transfer function"> 0259 Linear transfer characteristics. 0260 Equivalent to H.273 TransferCharacteristics code point 8. 0261 </description> 0262 </entry> 0263 <entry name="log_100" value="5"> 0264 <description summary="logarithmic 100:1 transfer function"> 0265 Logarithmic transfer characteristic (100:1 range). 0266 Equivalent to H.273 TransferCharacteristics code point 9. 0267 </description> 0268 </entry> 0269 <entry name="log_316" value="6"> 0270 <description summary="logarithmic (100*Sqrt(10) : 1) transfer function"> 0271 Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range). 0272 Equivalent to H.273 TransferCharacteristics code point 10. 0273 </description> 0274 </entry> 0275 <entry name="xvycc" value="7"> 0276 <description summary="IEC 61966-2-4 transfer function"> 0277 Transfer characteristics as defined by 0278 - IEC 61966-2-4 0279 Equivalent to H.273 TransferCharacteristics code point 11. 0280 </description> 0281 </entry> 0282 <entry name="bt1361" value="8"> 0283 <description summary="BT.1361 extended transfer function"> 0284 Transfer characteristics as defined by 0285 - Rec. ITU-R BT.1361-0 extended colour gamut system (historical) 0286 Equivalent to H.273 TransferCharacteristics code point 12. 0287 </description> 0288 </entry> 0289 <entry name="srgb" value="9"> 0290 <description summary="sRGB piece-wise transfer function"> 0291 Transfer characteristics as defined by 0292 - IEC 61966-2-1 sRGB 0293 Equivalent to H.273 TransferCharacteristics code point 13 with MatrixCoefficients set to 0. 0294 </description> 0295 </entry> 0296 <entry name="ext_srgb" value="10"> 0297 <description summary="Extended sRGB piece-wise transfer function"> 0298 Transfer characteristics as defined by 0299 - IEC 61966-2-1 sYCC 0300 Equivalent to H.273 TransferCharacteristics code point 13 with MatrixCoefficients set to anything but 0. 0301 </description> 0302 </entry> 0303 <entry name="st2084_pq" value="11"> 0304 <description summary="perceptual quantizer transfer function"> 0305 Transfer characteristics as defined by 0306 - SMPTE ST 2084 (2014) for 10-, 12-, 14- and 16-bit systems 0307 - Rec. ITU-R BT.2100-2 perceptual quantization (PQ) system 0308 Equivalent to H.273 TransferCharacteristics code point 16. 0309 </description> 0310 </entry> 0311 <entry name="st428" value="12"> 0312 <description summary="SMPTE ST 428 transfer function"> 0313 Transfer characteristics as defined by 0314 - SMPTE ST 428-1 (2019) 0315 Equivalent to H.273 TransferCharacteristics code point 17. 0316 </description> 0317 </entry> 0318 <entry name="hlg" value="13"> 0319 <description summary="hybrid log-gamma transfer function"> 0320 Transfer characteristics as defined by 0321 - ARIB STD-B67 (2015) 0322 - Rec. ITU-R BT.2100-2 hybrid log-gamma (HLG) system 0323 Equivalent to H.273 TransferCharacteristics code point 18. 0324 </description> 0325 </entry> 0326 </enum> 0327 0328 <request name="get_output"> 0329 <description summary="create a color management interface for a wl_output"> 0330 This creates a new xx_color_management_output_v2 object for the 0331 given wl_output. 0332 0333 See the xx_color_management_output_v2 interface for more details. 0334 </description> 0335 0336 <arg name="id" type="new_id" interface="xx_color_management_output_v2"/> 0337 <arg name="output" type="object" interface="wl_output"/> 0338 </request> 0339 0340 <request name="get_surface"> 0341 <description summary="create a color management interface for a wl_surface"> 0342 This creates a new color xx_color_management_surface_v2 object for the 0343 given wl_surface. 0344 0345 See the xx_color_management_surface_v2 interface for more details. 0346 </description> 0347 0348 <arg name="id" type="new_id" interface="xx_color_management_surface_v2"/> 0349 <arg name="surface" type="object" interface="wl_surface"/> 0350 </request> 0351 0352 <request name="new_icc_creator"> 0353 <description summary="make a new ICC-based image description creator object"> 0354 Makes a new ICC-based image description creator object with all 0355 properties initially unset. The client can then use the object's 0356 interface to define all the required properties for an image description 0357 and finally create a xx_image_description_v2 object. 0358 0359 This request can be used when the compositor advertises 0360 xx_color_manager_v2.feature.icc_v2_v4. 0361 Otherwise this request raises the protocol error unsupported_feature. 0362 </description> 0363 0364 <arg name="obj" type="new_id" 0365 interface="xx_image_description_creator_icc_v2" 0366 summary="the new creator object"/> 0367 </request> 0368 0369 <request name="new_parametric_creator"> 0370 <description summary="make a new parametric image description creator object"> 0371 Makes a new parametric image description creator object with all 0372 properties initially unset. The client can then use the object's 0373 interface to define all the required properties for an image description 0374 and finally create a xx_image_description_v2 object. 0375 0376 This request can be used when the compositor advertises 0377 xx_color_manager_v2.feature.parametric. 0378 Otherwise this request raises the protocol error unsupported_feature. 0379 </description> 0380 0381 <arg name="obj" type="new_id" 0382 interface="xx_image_description_creator_params_v2" 0383 summary="the new creator object"/> 0384 </request> 0385 0386 <event name="supported_intent"> 0387 <description summary="supported rendering intent"> 0388 When this object is created, it shall immediately send this event 0389 once for each rendering intent the compositor supports. 0390 </description> 0391 0392 <arg name="render_intent" type="uint" enum="render_intent" 0393 summary="rendering intent"/> 0394 </event> 0395 0396 <event name="supported_feature"> 0397 <description summary="supported features"> 0398 When this object is created, it shall immediately send this event 0399 once for each compositor supported feature listed in the enumeration. 0400 </description> 0401 0402 <arg name="feature" type="uint" enum="feature" summary="supported feature"/> 0403 </event> 0404 0405 <event name="supported_tf_named"> 0406 <description summary="supported named transfer characteristic"> 0407 When this object is created, it shall immediately send this event 0408 once for each named transfer function the compositor 0409 supports with the parametric image description creator. 0410 </description> 0411 0412 <arg name="tf" type="uint" enum="transfer_function" summary="Named transfer function"/> 0413 </event> 0414 0415 <event name="supported_primaries_named"> 0416 <description summary="supported named primaries"> 0417 When this object is created, it shall immediately send this event 0418 once for each named set of primaries the compositor 0419 supports with the parametric image description creator. 0420 </description> 0421 0422 <arg name="primaries" type="uint" enum="primaries" summary="Named color primaries"/> 0423 </event> 0424 </interface> 0425 0426 <interface name="xx_color_management_output_v2" version="1"> 0427 <description summary="output color properties"> 0428 A xx_color_management_output_v2 describes the color properties of an 0429 output. 0430 0431 The xx_color_management_output_v2 is associated with the wl_output global 0432 underlying the wl_output object. Therefore the client destroying the 0433 wl_output object has no impact, but the compositor removing the output 0434 global makes the xx_color_management_output_v2 object inert. 0435 </description> 0436 0437 <request name="destroy" type="destructor"> 0438 <description summary="destroy the color management output"> 0439 Destroy the color xx_color_management_output_v2 object. This does not 0440 affect any remaining protocol objects. 0441 </description> 0442 </request> 0443 0444 <event name="image_description_changed"> 0445 <description summary="image description changed"> 0446 This event is sent whenever the image description of the 0447 output changed, followed by one wl_output.done event common to 0448 output events across all extensions. 0449 0450 If the client wants to use the updated image description, it needs 0451 to do get_image_description again, because image description objects 0452 are immutable. 0453 </description> 0454 </event> 0455 0456 <request name="get_image_description"> 0457 <description summary="get the image description of the output"> 0458 This creates a new xx_image_description_v2 object for the current image description 0459 of the output. There always is exactly one image description active for an 0460 output so the client should destroy the image description created by earlier 0461 invocations of this request. This request is usually sent as a reaction 0462 to the image_description_changed event or when creating a 0463 xx_color_management_output_v2 object. 0464 0465 The created xx_image_description_v2 object preserves the image description 0466 of the output from the time the object was created. 0467 0468 The resulting image description object allows get_information request. 0469 0470 If this protocol object is inert, the resulting image 0471 description object shall immediately deliver the 0472 xx_image_description_v2.failed event with the no_output cause. 0473 0474 If the interface version is inadequate for the output's image 0475 description, meaning that the client does not support all the 0476 events needed to deliver the crucial information, the resulting image 0477 description object shall immediately deliver the 0478 xx_image_description_v2.failed event with the low_version cause. 0479 0480 Otherwise the object shall immediately deliver the ready event. 0481 </description> 0482 0483 <arg name="image_description" type="new_id" interface="xx_image_description_v2"/> 0484 </request> 0485 </interface> 0486 0487 <interface name="xx_color_management_surface_v2" version="1"> 0488 <description summary="color management extension to a surface"> 0489 A xx_color_management_surface_v2 allows the client to set the color 0490 space and HDR properties of a surface. 0491 0492 If the wl_surface associated with the xx_color_management_surface_v2 is 0493 destroyed, the xx_color_management_surface_v2 object becomes inert. 0494 </description> 0495 0496 <request name="destroy" type="destructor"> 0497 <description summary="destroy the color management interface for a surface"> 0498 Destroy the xx_color_management_surface_v2 object. 0499 0500 When the last xx_color_management_surface_v2 object for a wl_surface 0501 is destroyed, it does the same as unset_image_description. 0502 </description> 0503 </request> 0504 0505 <enum name="error"> 0506 <description summary="protocol errors"/> 0507 0508 <entry name="inert" value="0" summary="forbidden request on inert object"/> 0509 <entry name="render_intent" value="1" summary="unsupported rendering intent"/> 0510 </enum> 0511 0512 <request name="set_image_description"> 0513 <description summary="set the surface image description"> 0514 Set the image description of the underlying surface. The image 0515 description and rendering intent are double-buffered state, see 0516 wl_surface.commit. 0517 0518 It is the client's responsibility to understand the image description 0519 it sets on a surface, and to provide content that matches that image 0520 description. 0521 0522 A rendering intent provides the client's preference on how content 0523 colors should be mapped to each output. The render_intent value must 0524 be one advertised by the compositor with 0525 xx_color_manager_v2.render_intent event, otherwise the protocol error 0526 render_intent is raised. 0527 0528 By default, a surface does not have an associated image description 0529 nor a rendering intent. The handling of color on such surfaces is 0530 compositor implementation defined. Compositors should handle such 0531 surfaces as sRGB but may handle them differently if they have specific 0532 requirements. 0533 </description> 0534 0535 <arg name="image_description" type="object" interface="xx_image_description_v2"/> 0536 <arg name="render_intent" type="uint" enum="xx_color_manager_v2.render_intent" 0537 summary="rendering intent"/> 0538 </request> 0539 0540 <request name="unset_image_description"> 0541 <description summary="remove the surface image description"> 0542 This request removes any image description from the surface. See 0543 set_image_description for how a compositor handles a surface without 0544 an image description. This is double-buffered state, see 0545 wl_surface.commit. 0546 </description> 0547 </request> 0548 0549 <event name="preferred_changed"> 0550 <description summary="compositor's preferred image description for the surface"> 0551 The preferred image description is the one which likely has the most 0552 performance and/or quality benefits for the compositor if used by the 0553 client for its wl_surface contents. This event is sent whenever the 0554 compositor changes the wl_surface's preferred image description. 0555 0556 This is not an initial event. 0557 0558 This event is merely a notification. When the client wants to know 0559 what the preferred image description is, it shall use the get_preferred 0560 request. 0561 0562 The preferred image description is not automatically used for anything. 0563 It is only a hint, and clients may set any valid image description with 0564 set_image_description but there might be performance and color accuracy 0565 improvements by providing the wl_surface contents in the preferred 0566 image description. Therefore clients that can, should render according 0567 to the preferred image description 0568 </description> 0569 </event> 0570 0571 <request name="get_preferred"> 0572 <description summary="get the preferred image description"> 0573 If this protocol object is inert, the protocol error inert is raised. 0574 0575 This creates a new xx_image_description_v2 object for the currently 0576 preferred image description for the wl_surface. The client should 0577 stop using and destroy the image descriptions created by earlier 0578 invocations of this request for the associated wl_surface. 0579 This request is usually sent as a reaction to the preferred_changed 0580 event or when creating a xx_color_management_surface_v2 object if 0581 the client is capable of adapting to image descriptions. 0582 0583 The created xx_image_description_v2 object preserves the preferred image 0584 description of the wl_surface from the time the object was created. 0585 0586 The resulting image description object allows get_information request. 0587 0588 If the interface version is inadequate for the preferred image 0589 description, meaning that the client does not support all the 0590 events needed to deliver the crucial information, the resulting image 0591 description object shall immediately deliver the 0592 xx_image_description_v2.failed event with the low_version cause, 0593 otherwise the object shall immediately deliver the ready event. 0594 </description> 0595 0596 <arg name="image_description" type="new_id" interface="xx_image_description_v2"/> 0597 </request> 0598 </interface> 0599 0600 <interface name="xx_image_description_creator_icc_v2" version="1"> 0601 <description summary="holder of image description ICC information"> 0602 This type of object is used for collecting all the information required 0603 to create a xx_image_description_v2 object from an ICC file. A complete 0604 set of required parameters consists of these properties: 0605 - ICC file 0606 0607 Each required property must be set exactly once if the client is to create 0608 an image description. The set requests verify that a property was not 0609 already set. The create request verifies that all required properties are 0610 set. There may be several alternative requests for setting each property, 0611 and in that case the client must choose one of them. 0612 0613 Once all properties have been set, the create request must be used to 0614 create the image description object, destroying the creator in the 0615 process. 0616 </description> 0617 0618 <enum name="error"> 0619 <description summary="protocol errors"/> 0620 0621 <entry name="incomplete_set" value="0" summary="incomplete parameter set"/> 0622 <entry name="already_set" value="1" summary="property already set"/> 0623 <entry name="bad_fd" value="2" summary="fd not seekable and readable"/> 0624 <entry name="bad_size" value="3" summary="no or too much data"/> 0625 <entry name="out_of_file" value="4" summary="offset + length exceeds file size"/> 0626 </enum> 0627 0628 <request name="create" type="destructor"> 0629 <description summary="Create the image description object from ICC data"> 0630 Create an image description object based on the ICC information 0631 previously set on this object. A compositor must parse the ICC data in 0632 some undefined but finite amount of time. 0633 0634 The completeness of the parameter set is verified. If the set is not 0635 complete, the protocol error incomplete_set is raised. For the 0636 definition of a complete set, see the description of this interface. 0637 0638 If the particular combination of the information is not supported 0639 by the compositor, the resulting image description object shall 0640 immediately deliver the xx_image_description_v2.failed event with the 0641 'unsupported' cause. If a valid image description was created from the 0642 information, the xx_image_description_v2.ready event will eventually 0643 be sent instead. 0644 0645 This request destroys the xx_image_description_creator_icc_v2 object. 0646 0647 The resulting image description object does not allow get_information 0648 request. 0649 </description> 0650 0651 <arg name="image_description" type="new_id" interface="xx_image_description_v2"/> 0652 </request> 0653 0654 <request name="set_icc_file"> 0655 <description summary="set the ICC profile file"> 0656 Sets the ICC profile file to be used as the basis of the image 0657 description. 0658 0659 The data shall be found through the given fd at the given offset, 0660 having the given length. The fd must seekable and readable. Violating 0661 these requirements raises the bad_fd protocol error. 0662 0663 If reading the data fails due to an error independent of the client, the 0664 compositor shall send the xx_image_description_v2.failed event on the 0665 created xx_image_description_v2 with the 'operating_system' cause. 0666 0667 The maximum size of the ICC profile is 4 MB. If length is greater 0668 than that or zero, the protocol error bad_size is raised. 0669 If offset + length exceeds the file size, the protocol error 0670 out_of_file is raised. 0671 0672 A compositor may read the file at any time starting from this request 0673 and only until whichever happens first: 0674 - If create request was issued, the xx_image_description_v2 object 0675 delivers either failed or ready event; or 0676 - if create request was not issued, this 0677 xx_image_description_creator_icc_v2 object is destroyed. 0678 0679 A compositor shall not modify the contents of the file, and the fd may 0680 be sealed for writes and size changes. The client must ensure to its 0681 best ability that the data does not change while the compositor is 0682 reading it. 0683 0684 The data must represent a valid ICC profile. 0685 The ICC profile version must be 2 or 4, it must be a 3 channel profile 0686 and the class must be 'display'. 0687 Violating these requirements will not result in a protocol error but 0688 will eventually send the xx_image_description_v2.failed event on the 0689 created xx_image_description_v2 with the 'unsupported' cause. 0690 0691 See the International Color Consortium specification ICC.1:2022 for more 0692 details about ICC profiles. 0693 0694 If ICC file has already been set on this object, the protocol error 0695 already_set is raised. 0696 </description> 0697 0698 <arg name="icc_profile" type="fd" summary="ICC profile"/> 0699 <arg name="offset" type="uint" summary="byte offset in fd to start of ICC data"/> 0700 <arg name="length" type="uint" summary="length of ICC data in bytes"/> 0701 </request> 0702 </interface> 0703 0704 <interface name="xx_image_description_creator_params_v2" version="1"> 0705 <description summary="holder of image description parameters"> 0706 This type of object is used for collecting all the parameters required 0707 to create a xx_image_description_v2 object. A complete set of required 0708 parameters consists of these properties: 0709 - transfer characteristic function (tf) 0710 - chromaticities of primaries and white point (primary color volume) 0711 0712 The following properties are optional and have a well-defined default 0713 if not explicitly set: 0714 - mastering display primaries and white point (target color volume) 0715 - mastering luminance range 0716 - maximum content light level 0717 - maximum frame-average light level 0718 0719 Each required property must be set exactly once if the client is to create 0720 an image description. The set requests verify that a property was not 0721 already set. The create request verifies that all required properties are 0722 set. There may be several alternative requests for setting each property, 0723 and in that case the client must choose one of them. 0724 0725 Once all properties have been set, the create request must be used to 0726 create the image description object, destroying the creator in the 0727 process. 0728 </description> 0729 0730 <enum name="error"> 0731 <description summary="protocol errors"/> 0732 0733 <entry name="incomplete_set" value="0" summary="incomplete parameter set"/> 0734 <entry name="inconsistent_set" value="1" summary="invalid combination of parameters"/> 0735 <entry name="already_set" value="2" summary="property already set"/> 0736 <entry name="invalid_tf" value="3" summary="invalid transfer characteristic"/> 0737 <entry name="invalid_primaries" value="4" summary="invalid primaries or white point"/> 0738 <entry name="invalid_luminance" value="5" summary="invalid luminance value or range"/> 0739 <entry name="invalid_mastering" value="6" summary="invalid mastering information"/> 0740 </enum> 0741 0742 <request name="create" type="destructor"> 0743 <description summary="Create the image description object using params"> 0744 Create an image description object based on the parameters previously 0745 set on this object. 0746 0747 The completeness of the parameter set is verified. If the set is not 0748 complete, the protocol error incomplete_set is raised. For the 0749 definition of a complete set, see the description of this interface. 0750 0751 If the particular combination of the parameter set is not supported 0752 by the compositor, the resulting image description object shall 0753 immediately deliver the xx_image_description_v2.failed event with the 0754 'unsupported' cause. If a valid image description was created from the 0755 parameter set, the xx_image_description_v2.ready event will eventually 0756 be sent instead. 0757 0758 This request destroys the xx_image_description_creator_params_v2 0759 object. 0760 0761 The resulting image description object does not allow get_information 0762 request. 0763 </description> 0764 0765 <arg name="image_description" type="new_id" interface="xx_image_description_v2"/> 0766 </request> 0767 0768 <request name="set_tf_named"> 0769 <description summary="named transfer characteristic"> 0770 Sets the transfer characteristic using explicitly enumerated named functions. 0771 0772 Only names advertised with xx_color_manager_v2 0773 event supported_tf_named are allowed. Other values shall raise the 0774 protocol error invalid_tf. 0775 0776 If transfer characteristic has already been set on this object, the 0777 protocol error already_set is raised. 0778 </description> 0779 0780 <arg name="tf" type="uint" enum="transfer_function" summary="named transfer function"/> 0781 </request> 0782 0783 <request name="set_tf_power"> 0784 <description summary="transfer characteristic as a power curve"> 0785 Sets the color component transfer characteristic to a power curve 0786 with the given exponent. This curve represents the conversion from 0787 electrical to optical pixel or color values. 0788 0789 The curve exponent shall be multiplied by 10000 to get the argument 0790 eexp value to carry the precision of 4 decimals. 0791 0792 The curve exponent must be at least 1.0 and at most 10.0. Otherwise 0793 the protocol error invalid_tf is raised. 0794 0795 If transfer characteristic has already been set on this object, the 0796 protocol error already_set is raised. 0797 0798 This request can be used when the compositor advertises 0799 xx_color_manager_v2.feature.set_tf_power. Otherwise this request raises 0800 the protocol error invalid_tf. 0801 </description> 0802 0803 <arg name="eexp" type="uint" summary="the exponent * 10000"/> 0804 </request> 0805 0806 <request name="set_primaries_named"> 0807 <description summary="named primaries"> 0808 Sets the color primaries and white point using explicitly named sets. 0809 This describes the primary color volume which is the basis 0810 for color value encoding. 0811 0812 Only names advertised with xx_color_manager_v2 0813 event supported_primaries_named are allowed. Other values shall raise the 0814 protocol error invalid_primaries. 0815 0816 If primaries have already been set on this object, the protocol error 0817 already_set is raised. 0818 </description> 0819 0820 <arg name="primaries" type="uint" enum="primaries" summary="named primaries"/> 0821 </request> 0822 0823 <request name="set_primaries"> 0824 <description summary="primaries as chromaticity coordinates"> 0825 Sets the color primaries and white point using CIE 1931 xy 0826 chromaticity coordinates. This describes the primary color volume 0827 which is the basis for color value encoding. 0828 0829 Each coordinate value is multiplied by 10000 to get the argument 0830 value to carry precision of 4 decimals. 0831 0832 If primaries have already been set on this object, the protocol error 0833 already_set is raised. 0834 0835 This request can be used if the compositor advertises 0836 xx_color_manager_v2.feature.set_primaries. Otherwise this request 0837 raises the protocol error invalid_primaries. 0838 </description> 0839 0840 <arg name="r_x" type="uint" summary="Red x * 10000"/> 0841 <arg name="r_y" type="uint" summary="Red y * 10000"/> 0842 <arg name="g_x" type="uint" summary="Green x * 10000"/> 0843 <arg name="g_y" type="uint" summary="Green y * 10000"/> 0844 <arg name="b_x" type="uint" summary="Blue x * 10000"/> 0845 <arg name="b_y" type="uint" summary="Blue y * 10000"/> 0846 <arg name="w_x" type="uint" summary="White x * 10000"/> 0847 <arg name="w_y" type="uint" summary="White y * 10000"/> 0848 </request> 0849 0850 <request name="set_mastering_display_primaries"> 0851 <description summary="mastering display primaries as chromaticity coordinates"> 0852 Provides the color primaries and white point of the mastering display 0853 using CIE 1931 xy chromaticity coordinates. This is compatible with the 0854 SMPTE ST 2086 definition of HDR static metadata. 0855 0856 The mastering display primaries define the target color volume. 0857 0858 If mastering display primaries are not explicitly set, the target 0859 color volume is assumed to be equal to the primary color volume. 0860 0861 The target color volume is defined by all tristimulus values between 0.0 0862 and 1.0 (inclusive) of the color space defined by the given mastering 0863 display primaries and white point. The colorimetry is identical between 0864 the container color space and the mastering display color space, 0865 including that no chromatic adaptation is applied even if the white 0866 points differ. 0867 0868 The target color volume can exceed the primary color volume to allow for 0869 a greater color volume with an existing color space definition (for 0870 example scRGB). It can be smaller than the primary color volume to 0871 minimize gamut and tone mapping distances for big color spaces (HDR 0872 metadata). 0873 0874 To make use of the entire target color volume a suitable pixel format 0875 has to be chosen (e.g. floating point to exceed the primary color 0876 volume, or abusing limited quantization range as with xvYCC). 0877 0878 Each coordinate value is multiplied by 10000 to get the argument 0879 value to carry precision of 4 decimals. 0880 0881 If mastering display primaries have already been set on this object, 0882 the protocol error already_set is raised. 0883 0884 This request can be used if the compositor advertises 0885 xx_color_manager_v2.feature.set_mastering_display_primaries. 0886 Otherwise this request raises the protocol error invalid_mastering. 0887 The advertisement implies support only for target color 0888 volumes fully contained within the primary color volume. 0889 0890 If a compositor additionally supports target color volume exceeding 0891 the primary color volume, it must advertise 0892 xx_color_manager_v2.feature.extended_target_volume. 0893 If a client uses target color volume exceeding the primary color volume 0894 and the compositor does not support it, the result is implementation 0895 defined. Compositors are recommended to detect this case and fail the 0896 image description gracefully, but it may as well result in color 0897 artifacts. 0898 </description> 0899 0900 <arg name="r_x" type="uint" summary="Red x * 10000"/> 0901 <arg name="r_y" type="uint" summary="Red y * 10000"/> 0902 <arg name="g_x" type="uint" summary="Green x * 10000"/> 0903 <arg name="g_y" type="uint" summary="Green y * 10000"/> 0904 <arg name="b_x" type="uint" summary="Blue x * 10000"/> 0905 <arg name="b_y" type="uint" summary="Blue y * 10000"/> 0906 <arg name="w_x" type="uint" summary="White x * 10000"/> 0907 <arg name="w_y" type="uint" summary="White y * 10000"/> 0908 </request> 0909 0910 <request name="set_mastering_luminance"> 0911 <description summary="display mastering luminance range"> 0912 Sets the luminance range that was used during the content mastering 0913 process as the minimum and maximum absolute luminance L. This is 0914 compatible with the SMPTE ST 2086 definition of HDR static metadata. 0915 0916 This can only be set when set_tf_cicp is used to set the transfer 0917 characteristic to Rec. ITU-R BT.2100-2 perceptual quantization system. 0918 Otherwise, 'create' request shall raise inconsistent_set protocol 0919 error. 0920 0921 The mastering luminance range is undefined by default. 0922 0923 If max L is less than or equal to min L, the protocol error 0924 invalid_luminance is raised. 0925 0926 Min L value is multiplied by 10000 to get the argument min_lum value 0927 and carry precision of 4 decimals. Max L value is unscaled for max_lum. 0928 </description> 0929 0930 <arg name="min_lum" type="uint" summary="min L (cd/m²) * 10000"/> 0931 <arg name="max_lum" type="uint" summary="max L (cd/m²)"/> 0932 </request> 0933 0934 <request name="set_max_cll"> 0935 <description summary="maximum content light level"> 0936 Sets the maximum content light level (max_cll) as defined by CTA-861-H. 0937 0938 This can only be set when set_tf_cicp is used to set the transfer 0939 characteristic to Rec. ITU-R BT.2100-2 perceptual quantization system. 0940 Otherwise, 'create' request shall raise inconsistent_set protocol 0941 error. 0942 0943 max_cll is undefined by default. 0944 </description> 0945 0946 <arg name="max_cll" type="uint" summary="Maximum content light level (cd/m²)"/> 0947 </request> 0948 0949 <request name="set_max_fall"> 0950 <description summary="maximum frame-average light level"> 0951 Sets the maximum frame-average light level (max_fall) as defined by 0952 CTA-861-H. 0953 0954 This can only be set when set_tf_cicp is used to set the transfer 0955 characteristic to Rec. ITU-R BT.2100-2 perceptual quantization system. 0956 Otherwise, 'create' request shall raise inconsistent_set protocol 0957 error. 0958 0959 max_fall is undefined by default. 0960 </description> 0961 0962 <arg name="max_fall" type="uint" summary="Maximum frame-average light level (cd/m²)"/> 0963 </request> 0964 </interface> 0965 0966 <interface name="xx_image_description_v2" version="1"> 0967 <description summary="Colorimetric image description"> 0968 An image description carries information about the color encoding used 0969 on a surface when attached to a wl_surface via 0970 xx_color_management_surface_v2.set_image_description. A compositor can 0971 use this information to decode pixel values into colorimetrically 0972 meaningful quantities. 0973 0974 Note, that the xx_image_description_v2 object is not ready to be used 0975 immediately after creation. The object eventually delivers either the 0976 'ready' or the 'failed' event, specified in all requests creating it. The 0977 object is deemed "ready" after receiving the 'ready' event. 0978 0979 An object which is not ready is illegal to use, it can only be destroyed. 0980 Any other request in this interface shall result in the 'not_ready' 0981 protocol error. Attempts to use an object which is not ready through other 0982 interfaces shall raise protocol errors defined there. 0983 0984 Once created and regardless of how it was created, a xx_image_description_v2 0985 object always refers to one fixed image description. It cannot change 0986 after creation. 0987 </description> 0988 0989 <request name="destroy" type="destructor"> 0990 <description summary="destroy the image description"> 0991 Destroy this object. It is safe to destroy an object which is not ready. 0992 0993 Destroying a xx_image_description_v2 object has no side-effects, not 0994 even if a xx_color_management_surface_v2.set_image_description has 0995 not yet been followed by a wl_surface.commit. 0996 </description> 0997 </request> 0998 0999 <enum name="error"> 1000 <description summary="protocol errors"/> 1001 1002 <entry name="not_ready" value="0" summary="attempted to use an object which is not ready"/> 1003 <entry name="no_information" value="1" summary="get_information not allowed"/> 1004 </enum> 1005 1006 <enum name="cause"> 1007 <description summary="generic reason for failure"/> 1008 1009 <entry name="low_version" value="0" summary="interface version too low"/> 1010 <entry name="unsupported" value="1" summary="unsupported image description data"/> 1011 <entry name="operating_system" value="2" summary="error independent of the client"/> 1012 <entry name="no_output" value="3" summary="the relevant output no longer exists"/> 1013 </enum> 1014 1015 <event name="failed"> 1016 <description summary="graceful error on creating the image description"> 1017 If creating a xx_image_description_v2 object fails for a reason that 1018 is not defined as a protocol error, this event is sent. 1019 The requests that create image description objects define whether 1020 and when this can occur. Only such creation requests can trigger this 1021 event. This event cannot be triggered after the image description was 1022 successfully formed. 1023 1024 Once this event has been sent, the xx_image_description_v2 object will 1025 never become ready and it can only be destroyed. 1026 </description> 1027 1028 <arg name="cause" type="uint" enum="cause" summary="generic reason"/> 1029 <arg name="msg" type="string" summary="ad hoc human-readable explanation"/> 1030 </event> 1031 1032 <event name="ready"> 1033 <description summary="indication that the object is ready to be used"> 1034 Once this event has been sent, the xx_image_description_v2 object is 1035 deemed "ready". Ready objects can be used to send requests and can be 1036 used through other interfaces. 1037 1038 Every ready xx_image_description_v2 protocol object refers to an 1039 underlying image description record in the compositor. Multiple protocol 1040 objects may end up referring to the same record. Clients may identify 1041 these "copies" by comparing their id numbers: if the numbers from two 1042 protocol objects are identical, the protocol objects refer to the same 1043 image description record. Two different image description records 1044 cannot have the same id number simultaneously. The id number does not 1045 change during the lifetime of the image description record. 1046 1047 The id number is valid only as long as the protocol object is alive. 1048 If all protocol objects referring to the same image description record 1049 are destroyed, the id number may be recycled for a different image 1050 description record. 1051 1052 Image description id number is not a protocol object id. Zero is 1053 reserved as an invalid id number. It shall not be possible for a 1054 client to refer to an image description by its id number in protocol. 1055 The id numbers might not be portable between Wayland connections. 1056 1057 This identity allows clients to de-duplicate image description records 1058 and avoid get_information request if they already have the image 1059 description information. 1060 </description> 1061 1062 <arg name="identity" type="uint" summary="image description id number"/> 1063 </event> 1064 1065 <request name="get_information"> 1066 <description summary="get information about the image description"> 1067 Creates a xx_image_description_info_v2 object which delivers the 1068 information that makes up the image description. 1069 1070 Not all image description protocol objects allow get_information 1071 request. Whether it is allowed or not is defined by the request that 1072 created the object. If get_information is not allowed, the protocol 1073 error no_information is raised. 1074 </description> 1075 1076 <arg name="information" type="new_id" interface="xx_image_description_info_v2"/> 1077 </request> 1078 </interface> 1079 1080 <interface name="xx_image_description_info_v2" version="1"> 1081 <description summary="Colorimetric image description information"> 1082 Sends all matching events describing an image description object exactly 1083 once and finally sends the 'done' event. 1084 1085 Once a xx_image_description_info_v2 object has delivered a 'done' event 1086 it is automatically destroyed. 1087 1088 Every xx_image_description_info_v2 created from the same 1089 xx_image_description_v2 shall always return the exact same data. 1090 </description> 1091 1092 <event name="done" type="destructor"> 1093 <description summary="end of information"> 1094 Signals the end of information events and destroys the object. 1095 </description> 1096 </event> 1097 1098 <event name="icc_file"> 1099 <description summary="ICC profile matching the image description"> 1100 The icc argument provides a file descriptor to the client which may be 1101 memory-mapped to provide the ICC profile matching the image description. 1102 The fd is read-only, and if mapped then it must be mapped with 1103 MAP_PRIVATE by the client. 1104 1105 The ICC profile version and other details are determined by the 1106 compositor. There is no provision for a client to ask for a specific 1107 kind of a profile. 1108 </description> 1109 1110 <arg name="icc" type="fd" summary="ICC profile file descriptor"/> 1111 <arg name="icc_size" type="uint" summary="ICC profile size, in bytes"/> 1112 <!-- Offset always 0, compositor must not expose unnecessary data. --> 1113 </event> 1114 1115 <event name="primaries"> 1116 <description summary="primaries as chromaticity coordinates"> 1117 Delivers the primary color volume primaries and white point 1118 using CIE 1931 xy chromaticity coordinates. 1119 1120 Each coordinate value is multiplied by 10000 to get the argument 1121 value to carry precision of 4 decimals. 1122 </description> 1123 1124 <arg name="r_x" type="uint" summary="Red x * 10000"/> 1125 <arg name="r_y" type="uint" summary="Red y * 10000"/> 1126 <arg name="g_x" type="uint" summary="Green x * 10000"/> 1127 <arg name="g_y" type="uint" summary="Green y * 10000"/> 1128 <arg name="b_x" type="uint" summary="Blue x * 10000"/> 1129 <arg name="b_y" type="uint" summary="Blue y * 10000"/> 1130 <arg name="w_x" type="uint" summary="White x * 10000"/> 1131 <arg name="w_y" type="uint" summary="White y * 10000"/> 1132 </event> 1133 1134 <event name="primaries_named"> 1135 <description summary="named primaries"> 1136 Delivers the primary color volume primaries and white point using a 1137 explicitly enumerated named set. 1138 </description> 1139 1140 <arg name="primaries" type="uint" enum="xx_color_manager_v2.primaries" summary="named primaries"/> 1141 </event> 1142 1143 <event name="tf_power"> 1144 <description summary="transfer characteristic as a power curve"> 1145 The color component transfer characteristic of this image description 1146 is a pure power curve. This event provides the exponent of the power 1147 function. This curve represents the conversion from electrical to 1148 optical pixel or color values. 1149 1150 The curve exponent has been multiplied by 10000 to get the argument 1151 eexp value to carry the precision of 4 decimals. 1152 </description> 1153 1154 <arg name="eexp" type="uint" summary="the exponent * 10000"/> 1155 </event> 1156 1157 <event name="tf_named"> 1158 <description summary="named transfer characteristic"> 1159 Delivers the transfer characteristic using an explicitly enumerated 1160 named function. 1161 </description> 1162 1163 <arg name="tf" type="uint" enum="xx_color_manager_v2.transfer_function" summary="named transfer function"/> 1164 </event> 1165 1166 <event name="target_primaries"> 1167 <description summary="target primaries as chromaticity coordinates"> 1168 Provides the color primaries and white point of the target 1169 color volume using CIE 1931 xy chromaticity coordinates. This is 1170 compatible with the SMPTE ST 2086 definition of HDR static metadata 1171 for mastering displays. 1172 1173 While primary color volume is about how color is encoded, the 1174 target color volume is the actually displayable color volume. 1175 If target color volume is equal to the primary color volume, 1176 then this event is not sent. 1177 1178 Each coordinate value is multiplied by 10000 to get the argument 1179 value to carry precision of 4 decimals. 1180 </description> 1181 1182 <arg name="r_x" type="uint" summary="Red x * 10000"/> 1183 <arg name="r_y" type="uint" summary="Red y * 10000"/> 1184 <arg name="g_x" type="uint" summary="Green x * 10000"/> 1185 <arg name="g_y" type="uint" summary="Green y * 10000"/> 1186 <arg name="b_x" type="uint" summary="Blue x * 10000"/> 1187 <arg name="b_y" type="uint" summary="Blue y * 10000"/> 1188 <arg name="w_x" type="uint" summary="White x * 10000"/> 1189 <arg name="w_y" type="uint" summary="White y * 10000"/> 1190 </event> 1191 1192 <event name="target_luminance"> 1193 <description summary="target luminance range"> 1194 Provides the luminance range that the image description is targeting 1195 as the minimum and maximum absolute luminance L. This is compatible 1196 with the SMPTE ST 2086 definition of HDR static metadata. 1197 1198 This luminance range is only theoretical and may not correspond to the 1199 luminance of light emitted on an actual display. 1200 1201 Min L value is multiplied by 10000 to get the argument min_lum value 1202 and carry precision of 4 decimals. Max L value is unscaled for max_lum. 1203 </description> 1204 1205 <arg name="min_lum" type="uint" summary="min L (cd/m²) * 10000"/> 1206 <arg name="max_lum" type="uint" summary="max L (cd/m²)"/> 1207 </event> 1208 1209 <event name="target_max_cll"> 1210 <description summary="target maximum content light level"> 1211 Provides the targeted max_cll of the image description. max_cll is 1212 defined by CTA-861-H. 1213 1214 This luminance is only theoretical and may not correspond to the 1215 luminance of light emitted on an actual display. 1216 </description> 1217 1218 <arg name="max_cll" type="uint" summary="Maximum content light-level (cd/m²)"/> 1219 </event> 1220 1221 <event name="target_max_fall"> 1222 <description summary="target maximum frame-average light level"> 1223 Provides the targeted max_fall of the image description. max_fall is 1224 defined by CTA-861-H. 1225 1226 This luminance is only theoretical and may not correspond to the 1227 luminance of light emitted on an actual display. 1228 </description> 1229 1230 <arg name="max_fall" type="uint" summary="Maximum frame-average light level (cd/m²)"/> 1231 </event> 1232 </interface> 1233 </protocol>