xref: /aosp_15_r20/external/libgav1/src/gav1/decoder_buffer.h (revision 095378508e87ed692bf8dfeb34008b65b3735891)
1*09537850SAkhilesh Sanikop /*
2*09537850SAkhilesh Sanikop  * Copyright 2019 The libgav1 Authors
3*09537850SAkhilesh Sanikop  *
4*09537850SAkhilesh Sanikop  * Licensed under the Apache License, Version 2.0 (the "License");
5*09537850SAkhilesh Sanikop  * you may not use this file except in compliance with the License.
6*09537850SAkhilesh Sanikop  * You may obtain a copy of the License at
7*09537850SAkhilesh Sanikop  *
8*09537850SAkhilesh Sanikop  *      http://www.apache.org/licenses/LICENSE-2.0
9*09537850SAkhilesh Sanikop  *
10*09537850SAkhilesh Sanikop  * Unless required by applicable law or agreed to in writing, software
11*09537850SAkhilesh Sanikop  * distributed under the License is distributed on an "AS IS" BASIS,
12*09537850SAkhilesh Sanikop  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*09537850SAkhilesh Sanikop  * See the License for the specific language governing permissions and
14*09537850SAkhilesh Sanikop  * limitations under the License.
15*09537850SAkhilesh Sanikop  */
16*09537850SAkhilesh Sanikop 
17*09537850SAkhilesh Sanikop #ifndef LIBGAV1_SRC_GAV1_DECODER_BUFFER_H_
18*09537850SAkhilesh Sanikop #define LIBGAV1_SRC_GAV1_DECODER_BUFFER_H_
19*09537850SAkhilesh Sanikop 
20*09537850SAkhilesh Sanikop #if defined(__cplusplus)
21*09537850SAkhilesh Sanikop #include <cstdint>
22*09537850SAkhilesh Sanikop #else
23*09537850SAkhilesh Sanikop #include <stdint.h>
24*09537850SAkhilesh Sanikop #endif  // defined(__cplusplus)
25*09537850SAkhilesh Sanikop 
26*09537850SAkhilesh Sanikop #include "gav1/symbol_visibility.h"
27*09537850SAkhilesh Sanikop 
28*09537850SAkhilesh Sanikop // All the declarations in this file are part of the public ABI.
29*09537850SAkhilesh Sanikop 
30*09537850SAkhilesh Sanikop // The documentation for the enum values in this file can be found in Section
31*09537850SAkhilesh Sanikop // 6.4.2 of the AV1 spec.
32*09537850SAkhilesh Sanikop 
33*09537850SAkhilesh Sanikop typedef enum Libgav1ChromaSamplePosition {
34*09537850SAkhilesh Sanikop   kLibgav1ChromaSamplePositionUnknown,
35*09537850SAkhilesh Sanikop   kLibgav1ChromaSamplePositionVertical,
36*09537850SAkhilesh Sanikop   kLibgav1ChromaSamplePositionColocated,
37*09537850SAkhilesh Sanikop   kLibgav1ChromaSamplePositionReserved
38*09537850SAkhilesh Sanikop } Libgav1ChromaSamplePosition;
39*09537850SAkhilesh Sanikop 
40*09537850SAkhilesh Sanikop typedef enum Libgav1ImageFormat {
41*09537850SAkhilesh Sanikop   kLibgav1ImageFormatYuv420,
42*09537850SAkhilesh Sanikop   kLibgav1ImageFormatYuv422,
43*09537850SAkhilesh Sanikop   kLibgav1ImageFormatYuv444,
44*09537850SAkhilesh Sanikop   kLibgav1ImageFormatMonochrome400
45*09537850SAkhilesh Sanikop } Libgav1ImageFormat;
46*09537850SAkhilesh Sanikop 
47*09537850SAkhilesh Sanikop typedef enum Libgav1ColorPrimary {
48*09537850SAkhilesh Sanikop   // 0 is reserved.
49*09537850SAkhilesh Sanikop   kLibgav1ColorPrimaryBt709 = 1,
50*09537850SAkhilesh Sanikop   kLibgav1ColorPrimaryUnspecified,
51*09537850SAkhilesh Sanikop   // 3 is reserved.
52*09537850SAkhilesh Sanikop   kLibgav1ColorPrimaryBt470M = 4,
53*09537850SAkhilesh Sanikop   kLibgav1ColorPrimaryBt470Bg,
54*09537850SAkhilesh Sanikop   kLibgav1ColorPrimaryBt601,
55*09537850SAkhilesh Sanikop   kLibgav1ColorPrimarySmpte240,
56*09537850SAkhilesh Sanikop   kLibgav1ColorPrimaryGenericFilm,
57*09537850SAkhilesh Sanikop   kLibgav1ColorPrimaryBt2020,
58*09537850SAkhilesh Sanikop   kLibgav1ColorPrimaryXyz,
59*09537850SAkhilesh Sanikop   kLibgav1ColorPrimarySmpte431,
60*09537850SAkhilesh Sanikop   kLibgav1ColorPrimarySmpte432,
61*09537850SAkhilesh Sanikop   // 13-21 are reserved.
62*09537850SAkhilesh Sanikop   kLibgav1ColorPrimaryEbu3213 = 22,
63*09537850SAkhilesh Sanikop   // 23-254 are reserved.
64*09537850SAkhilesh Sanikop   kLibgav1MaxColorPrimaries = 255
65*09537850SAkhilesh Sanikop } Libgav1ColorPrimary;
66*09537850SAkhilesh Sanikop 
67*09537850SAkhilesh Sanikop typedef enum Libgav1TransferCharacteristics {
68*09537850SAkhilesh Sanikop   // 0 is reserved.
69*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsBt709 = 1,
70*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsUnspecified,
71*09537850SAkhilesh Sanikop   // 3 is reserved.
72*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsBt470M = 4,
73*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsBt470Bg,
74*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsBt601,
75*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsSmpte240,
76*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsLinear,
77*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsLog100,
78*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsLog100Sqrt10,
79*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsIec61966,
80*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsBt1361,
81*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsSrgb,
82*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsBt2020TenBit,
83*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsBt2020TwelveBit,
84*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsSmpte2084,
85*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsSmpte428,
86*09537850SAkhilesh Sanikop   kLibgav1TransferCharacteristicsHlg,
87*09537850SAkhilesh Sanikop   // 19-254 are reserved.
88*09537850SAkhilesh Sanikop   kLibgav1MaxTransferCharacteristics = 255
89*09537850SAkhilesh Sanikop } Libgav1TransferCharacteristics;
90*09537850SAkhilesh Sanikop 
91*09537850SAkhilesh Sanikop typedef enum Libgav1MatrixCoefficients {
92*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsIdentity,
93*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsBt709,
94*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsUnspecified,
95*09537850SAkhilesh Sanikop   // 3 is reserved.
96*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsFcc = 4,
97*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsBt470BG,
98*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsBt601,
99*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsSmpte240,
100*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsSmpteYcgco,
101*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsBt2020Ncl,
102*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsBt2020Cl,
103*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsSmpte2085,
104*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsChromatNcl,
105*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsChromatCl,
106*09537850SAkhilesh Sanikop   kLibgav1MatrixCoefficientsIctcp,
107*09537850SAkhilesh Sanikop   // 15-254 are reserved.
108*09537850SAkhilesh Sanikop   kLibgav1MaxMatrixCoefficients = 255
109*09537850SAkhilesh Sanikop } Libgav1MatrixCoefficients;
110*09537850SAkhilesh Sanikop 
111*09537850SAkhilesh Sanikop typedef enum Libgav1ColorRange {
112*09537850SAkhilesh Sanikop   // The color ranges are scaled by value << (bitdepth - 8) for 10 and 12bit
113*09537850SAkhilesh Sanikop   // streams.
114*09537850SAkhilesh Sanikop   kLibgav1ColorRangeStudio,  // Y [16..235], UV [16..240]
115*09537850SAkhilesh Sanikop   kLibgav1ColorRangeFull     // YUV/RGB [0..255]
116*09537850SAkhilesh Sanikop } Libgav1ColorRange;
117*09537850SAkhilesh Sanikop 
118*09537850SAkhilesh Sanikop // Section 6.7.3.
119*09537850SAkhilesh Sanikop typedef struct Libgav1ObuMetadataHdrCll {  // NOLINT
120*09537850SAkhilesh Sanikop   uint16_t max_cll;                        // Maximum content light level.
121*09537850SAkhilesh Sanikop   uint16_t max_fall;                       // Maximum frame-average light level.
122*09537850SAkhilesh Sanikop } Libgav1ObuMetadataHdrCll;
123*09537850SAkhilesh Sanikop 
124*09537850SAkhilesh Sanikop // Section 6.7.4.
125*09537850SAkhilesh Sanikop typedef struct Libgav1ObuMetadataHdrMdcv {  // NOLINT
126*09537850SAkhilesh Sanikop   // 0.16 fixed-point X/Y chromaticity coordinate as defined by CIE 1931 in
127*09537850SAkhilesh Sanikop   // R/G/B order.
128*09537850SAkhilesh Sanikop   uint16_t primary_chromaticity_x[3];
129*09537850SAkhilesh Sanikop   uint16_t primary_chromaticity_y[3];
130*09537850SAkhilesh Sanikop   // 0.16 fixed-point X/Y chromaticity coordinate as defined by CIE 1931.
131*09537850SAkhilesh Sanikop   uint16_t white_point_chromaticity_x;
132*09537850SAkhilesh Sanikop   uint16_t white_point_chromaticity_y;
133*09537850SAkhilesh Sanikop   // 24.8 fixed-point maximum luminance, represented in candelas per square
134*09537850SAkhilesh Sanikop   // meter.
135*09537850SAkhilesh Sanikop   uint32_t luminance_max;
136*09537850SAkhilesh Sanikop   // 18.14 fixed-point minimum luminance, represented in candelas per square
137*09537850SAkhilesh Sanikop   // meter.
138*09537850SAkhilesh Sanikop   uint32_t luminance_min;
139*09537850SAkhilesh Sanikop } Libgav1ObuMetadataHdrMdcv;
140*09537850SAkhilesh Sanikop 
141*09537850SAkhilesh Sanikop // Section 6.7.2.
142*09537850SAkhilesh Sanikop typedef struct Libgav1ObuMetadataItutT35 {  // NOLINT
143*09537850SAkhilesh Sanikop   uint8_t country_code;
144*09537850SAkhilesh Sanikop   uint8_t country_code_extension_byte;  // Valid if country_code is 0xFF.
145*09537850SAkhilesh Sanikop   uint8_t* payload_bytes;
146*09537850SAkhilesh Sanikop   int payload_size;
147*09537850SAkhilesh Sanikop } Libgav1ObuMetadataItutT35;
148*09537850SAkhilesh Sanikop 
149*09537850SAkhilesh Sanikop typedef struct Libgav1DecoderBuffer {
150*09537850SAkhilesh Sanikop #if defined(__cplusplus)
NumPlanesLibgav1DecoderBuffer151*09537850SAkhilesh Sanikop   LIBGAV1_PUBLIC int NumPlanes() const {
152*09537850SAkhilesh Sanikop     return (image_format == kLibgav1ImageFormatMonochrome400) ? 1 : 3;
153*09537850SAkhilesh Sanikop   }
154*09537850SAkhilesh Sanikop #endif  // defined(__cplusplus)
155*09537850SAkhilesh Sanikop 
156*09537850SAkhilesh Sanikop   Libgav1ChromaSamplePosition chroma_sample_position;
157*09537850SAkhilesh Sanikop   Libgav1ImageFormat image_format;
158*09537850SAkhilesh Sanikop   Libgav1ColorRange color_range;
159*09537850SAkhilesh Sanikop   Libgav1ColorPrimary color_primary;
160*09537850SAkhilesh Sanikop   Libgav1TransferCharacteristics transfer_characteristics;
161*09537850SAkhilesh Sanikop   Libgav1MatrixCoefficients matrix_coefficients;
162*09537850SAkhilesh Sanikop 
163*09537850SAkhilesh Sanikop   int bitdepth;  // Stored image bitdepth.
164*09537850SAkhilesh Sanikop 
165*09537850SAkhilesh Sanikop   // Image display dimensions in Y/U/V order.
166*09537850SAkhilesh Sanikop   int displayed_width[3];   // Displayed image width.
167*09537850SAkhilesh Sanikop   int displayed_height[3];  // Displayed image height.
168*09537850SAkhilesh Sanikop 
169*09537850SAkhilesh Sanikop   // Values are given in Y/U/V order.
170*09537850SAkhilesh Sanikop   int stride[3];      // The width in bytes of one row of the |plane| buffer.
171*09537850SAkhilesh Sanikop                       // This may include padding bytes for alignment or
172*09537850SAkhilesh Sanikop                       // internal use by the decoder.
173*09537850SAkhilesh Sanikop   uint8_t* plane[3];  // The reconstructed image plane(s).
174*09537850SAkhilesh Sanikop 
175*09537850SAkhilesh Sanikop   // Spatial id of this frame.
176*09537850SAkhilesh Sanikop   int spatial_id;
177*09537850SAkhilesh Sanikop   // Temporal id of this frame.
178*09537850SAkhilesh Sanikop   int temporal_id;
179*09537850SAkhilesh Sanikop 
180*09537850SAkhilesh Sanikop   Libgav1ObuMetadataHdrCll hdr_cll;
181*09537850SAkhilesh Sanikop   int has_hdr_cll;  // 1 if the values in hdr_cll are valid for this frame. 0
182*09537850SAkhilesh Sanikop                     // otherwise.
183*09537850SAkhilesh Sanikop 
184*09537850SAkhilesh Sanikop   Libgav1ObuMetadataHdrMdcv hdr_mdcv;
185*09537850SAkhilesh Sanikop   int has_hdr_mdcv;  // 1 if the values in hdr_mdcv are valid for this frame. 0
186*09537850SAkhilesh Sanikop                      // otherwise.
187*09537850SAkhilesh Sanikop 
188*09537850SAkhilesh Sanikop   Libgav1ObuMetadataItutT35 itut_t35;
189*09537850SAkhilesh Sanikop   int has_itut_t35;  // 1 if the values in itut_t35 are valid for this frame. 0
190*09537850SAkhilesh Sanikop                      // otherwise.
191*09537850SAkhilesh Sanikop 
192*09537850SAkhilesh Sanikop   // The |user_private_data| argument passed to Decoder::EnqueueFrame().
193*09537850SAkhilesh Sanikop   int64_t user_private_data;
194*09537850SAkhilesh Sanikop   // The |private_data| field of FrameBuffer. Set by the get frame buffer
195*09537850SAkhilesh Sanikop   // callback when it allocates a frame buffer.
196*09537850SAkhilesh Sanikop   void* buffer_private_data;
197*09537850SAkhilesh Sanikop } Libgav1DecoderBuffer;
198*09537850SAkhilesh Sanikop 
199*09537850SAkhilesh Sanikop #if defined(__cplusplus)
200*09537850SAkhilesh Sanikop namespace libgav1 {
201*09537850SAkhilesh Sanikop 
202*09537850SAkhilesh Sanikop using ChromaSamplePosition = Libgav1ChromaSamplePosition;
203*09537850SAkhilesh Sanikop constexpr ChromaSamplePosition kChromaSamplePositionUnknown =
204*09537850SAkhilesh Sanikop     kLibgav1ChromaSamplePositionUnknown;
205*09537850SAkhilesh Sanikop constexpr ChromaSamplePosition kChromaSamplePositionVertical =
206*09537850SAkhilesh Sanikop     kLibgav1ChromaSamplePositionVertical;
207*09537850SAkhilesh Sanikop constexpr ChromaSamplePosition kChromaSamplePositionColocated =
208*09537850SAkhilesh Sanikop     kLibgav1ChromaSamplePositionColocated;
209*09537850SAkhilesh Sanikop constexpr ChromaSamplePosition kChromaSamplePositionReserved =
210*09537850SAkhilesh Sanikop     kLibgav1ChromaSamplePositionReserved;
211*09537850SAkhilesh Sanikop 
212*09537850SAkhilesh Sanikop using ImageFormat = Libgav1ImageFormat;
213*09537850SAkhilesh Sanikop constexpr ImageFormat kImageFormatYuv420 = kLibgav1ImageFormatYuv420;
214*09537850SAkhilesh Sanikop constexpr ImageFormat kImageFormatYuv422 = kLibgav1ImageFormatYuv422;
215*09537850SAkhilesh Sanikop constexpr ImageFormat kImageFormatYuv444 = kLibgav1ImageFormatYuv444;
216*09537850SAkhilesh Sanikop constexpr ImageFormat kImageFormatMonochrome400 =
217*09537850SAkhilesh Sanikop     kLibgav1ImageFormatMonochrome400;
218*09537850SAkhilesh Sanikop 
219*09537850SAkhilesh Sanikop using ColorPrimary = Libgav1ColorPrimary;
220*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimaryBt709 = kLibgav1ColorPrimaryBt709;
221*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimaryUnspecified =
222*09537850SAkhilesh Sanikop     kLibgav1ColorPrimaryUnspecified;
223*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimaryBt470M = kLibgav1ColorPrimaryBt470M;
224*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimaryBt470Bg = kLibgav1ColorPrimaryBt470Bg;
225*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimaryBt601 = kLibgav1ColorPrimaryBt601;
226*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimarySmpte240 = kLibgav1ColorPrimarySmpte240;
227*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimaryGenericFilm =
228*09537850SAkhilesh Sanikop     kLibgav1ColorPrimaryGenericFilm;
229*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimaryBt2020 = kLibgav1ColorPrimaryBt2020;
230*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimaryXyz = kLibgav1ColorPrimaryXyz;
231*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimarySmpte431 = kLibgav1ColorPrimarySmpte431;
232*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimarySmpte432 = kLibgav1ColorPrimarySmpte432;
233*09537850SAkhilesh Sanikop constexpr ColorPrimary kColorPrimaryEbu3213 = kLibgav1ColorPrimaryEbu3213;
234*09537850SAkhilesh Sanikop constexpr ColorPrimary kMaxColorPrimaries = kLibgav1MaxColorPrimaries;
235*09537850SAkhilesh Sanikop 
236*09537850SAkhilesh Sanikop using TransferCharacteristics = Libgav1TransferCharacteristics;
237*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsBt709 =
238*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsBt709;
239*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsUnspecified =
240*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsUnspecified;
241*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsBt470M =
242*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsBt470M;
243*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsBt470Bg =
244*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsBt470Bg;
245*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsBt601 =
246*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsBt601;
247*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsSmpte240 =
248*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsSmpte240;
249*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsLinear =
250*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsLinear;
251*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsLog100 =
252*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsLog100;
253*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsLog100Sqrt10 =
254*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsLog100Sqrt10;
255*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsIec61966 =
256*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsIec61966;
257*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsBt1361 =
258*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsBt1361;
259*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsSrgb =
260*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsSrgb;
261*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsBt2020TenBit =
262*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsBt2020TenBit;
263*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsBt2020TwelveBit =
264*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsBt2020TwelveBit;
265*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsSmpte2084 =
266*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsSmpte2084;
267*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsSmpte428 =
268*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsSmpte428;
269*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kTransferCharacteristicsHlg =
270*09537850SAkhilesh Sanikop     kLibgav1TransferCharacteristicsHlg;
271*09537850SAkhilesh Sanikop constexpr TransferCharacteristics kMaxTransferCharacteristics =
272*09537850SAkhilesh Sanikop     kLibgav1MaxTransferCharacteristics;
273*09537850SAkhilesh Sanikop 
274*09537850SAkhilesh Sanikop using MatrixCoefficients = Libgav1MatrixCoefficients;
275*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsIdentity =
276*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsIdentity;
277*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsBt709 =
278*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsBt709;
279*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsUnspecified =
280*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsUnspecified;
281*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsFcc =
282*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsFcc;
283*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsBt470BG =
284*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsBt470BG;
285*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsBt601 =
286*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsBt601;
287*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsSmpte240 =
288*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsSmpte240;
289*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsSmpteYcgco =
290*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsSmpteYcgco;
291*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsBt2020Ncl =
292*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsBt2020Ncl;
293*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsBt2020Cl =
294*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsBt2020Cl;
295*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsSmpte2085 =
296*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsSmpte2085;
297*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsChromatNcl =
298*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsChromatNcl;
299*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsChromatCl =
300*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsChromatCl;
301*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMatrixCoefficientsIctcp =
302*09537850SAkhilesh Sanikop     kLibgav1MatrixCoefficientsIctcp;
303*09537850SAkhilesh Sanikop constexpr MatrixCoefficients kMaxMatrixCoefficients =
304*09537850SAkhilesh Sanikop     kLibgav1MaxMatrixCoefficients;
305*09537850SAkhilesh Sanikop 
306*09537850SAkhilesh Sanikop using ColorRange = Libgav1ColorRange;
307*09537850SAkhilesh Sanikop constexpr ColorRange kColorRangeStudio = kLibgav1ColorRangeStudio;
308*09537850SAkhilesh Sanikop constexpr ColorRange kColorRangeFull = kLibgav1ColorRangeFull;
309*09537850SAkhilesh Sanikop 
310*09537850SAkhilesh Sanikop using ObuMetadataHdrCll = Libgav1ObuMetadataHdrCll;
311*09537850SAkhilesh Sanikop using ObuMetadataHdrMdcv = Libgav1ObuMetadataHdrMdcv;
312*09537850SAkhilesh Sanikop using ObuMetadataItutT35 = Libgav1ObuMetadataItutT35;
313*09537850SAkhilesh Sanikop 
314*09537850SAkhilesh Sanikop using DecoderBuffer = Libgav1DecoderBuffer;
315*09537850SAkhilesh Sanikop 
316*09537850SAkhilesh Sanikop }  // namespace libgav1
317*09537850SAkhilesh Sanikop #endif  // defined(__cplusplus)
318*09537850SAkhilesh Sanikop 
319*09537850SAkhilesh Sanikop #endif  // LIBGAV1_SRC_GAV1_DECODER_BUFFER_H_
320