• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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