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