1Name 2 3 EXT_surface_CTA861_3_metadata 4 5Name Strings 6 7 EGL_EXT_surface_CTA861_3_metadata 8 9Contact 10 11 Courtney Goeltzenleuchter (courtneygo 'at' google.com) 12 13Contributors 14 15 James Jones 16 Weiwan Liu 17 18IP Status 19 20 No known IP claims. 21 22Status 23 24 Complete 25 26Version 27 28 Version 5 - Nov 29, 2016 29 30Number 31 32 EGL Extension #117 33 34Dependencies 35 36 This extension requires EGL 1.5 and EGL_EXT_surface_SMPTE2086_metadata. 37 38 This extension is written against the wording of the EGL 1.5 specification 39 (August 27, 2014). 40 41Overview 42 43 This extension adds additional EGL surface attributes for the metadata 44 defined by the CTA (Consumer Technology Association) 861.3 standard. 45 This metadata, in addition to the SMPTE 2086 metadata, is used to define the 46 color volume of the mastering display as well as the content (CTA-861.3), 47 The mastering display is the display where creative work is done and creative 48 intent is established. To preserve such creative intent as much as possible 49 and achieve consistent color reproduction on different viewing displays, 50 it is useful for the display pipeline to know the color volume of the 51 original mastering display where content is created or tuned. This avoids 52 performing unnecessary mapping of colors that are not displayable on the 53 original mastering display. 54 55 This extension adds the ability to pass the CTA-861.3 metadata via EGL, 56 from which the color volume can be derived. While the general purpose of the 57 metadata is to assist in the transformation between different color volumes 58 of different displays and help achieve better color reproduction, it is not 59 in the scope of this extension to define how exactly the metadata should be 60 used in such a process. It is up to the implementation to determine how to 61 make use of the metadata. 62 63New Procedures and Functions 64 65 None. 66 67New Tokens 68 69 Accepted as attribute by eglSurfaceAttrib and eglQuerySurface: 70 71 EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360 72 EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361 73 74Additions to Chapter "3.5.6 Surface Attributes" of the EGL 1.5 Specification 75 76 Add the following paragraph before the "Errors" section on page 43, 77 78 If attribute is EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT or EGL_CTA861_3_- 79 MAX_FRAME_AVERAGE_LEVEL_EXT, then value indicates the corresponding 80 maximum content light level and maximum frame average level. 81 The unit of value is 1 nit (candela per square meter). The 82 floating-point luminance values should be multiplied by 83 EGL_METADATA_SCALING, a constant scaling factor of 50000, before being 84 passed into eglSurfaceAttrib as integers. 85 86 Exactly how the color volume information is used to assist the color 87 reproduction process is implementation dependant. 88 89 The initial values of EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT and 90 EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT are EGL_DONT_CARE, which causes the 91 hints to be ignored. If value is not in the implementation's supported 92 range for attribute, a EGL_INVALID_VALUE error is generated, and some or 93 all of the metadata fields are ignored. 94 95 Change the original footnote 12 at the end of section "3.5.6 Surface 96 Attributes" on page 45 to, 97 98 [13] EGL_DISPLAY_SCALING (10000) and EGL_METADATA_SCALING_EXT (50000) 99 are used where EGL needs to take or return floating-point attribute 100 values, which would normally be smaller than 1, as integers while still 101 retaining sufficient precision to be meaningful. 102 103 Addition to Table 3.5 "Queryable surface attributes and types", 104 105 Attribute Type 106 ------------------------------------------------ 107 EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT integer 108 EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT integer 109 110 Description 111 -------------------------------------------------------------------------------------- 112 Maximum content light level in nit multiplied by EGL_METADATA_SCALING_EXT 113 Maximum frame average light level in nit multiplied by EGL_METADATA_SCALING_EXT 114 115 Add the following paragraph at the end of section "3.5.6 Surface Attributes" 116 on page 45, 117 118 Querying EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT EGL_CTA861_3_MAX_- 119 FRAME_AVERAGE_LEVEL_EXT returns respectively the maximum content light level 120 and maximum frame average level respectively. The values returned are 121 in units of 1 nit (candela per square meter), multiplied by the constant 122 value EGL_METADATA_SCALING_EXT (50000). The value of EGL_CTA861_3_MAX_- 123 CONTENT_LIGHT_LEVEL_EXT and EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT can 124 be set via eglSurfaceAttrib as described above. 125 126Errors 127 128 Described in the body text above. 129 130Issues 131 132Revision History 133 134 Version 1, 2017/02/28 135 - Initial draft 136 137