| 1 | #ifndef VULKAN_VIDEO_CODEC_AV1STD_H_ |
| 2 | #define VULKAN_VIDEO_CODEC_AV1STD_H_ 1 |
| 3 | |
| 4 | /* |
| 5 | ** Copyright 2015-2024 The Khronos Group Inc. |
| 6 | ** |
| 7 | ** SPDX-License-Identifier: Apache-2.0 |
| 8 | */ |
| 9 | |
| 10 | /* |
| 11 | ** This header is generated from the Khronos Vulkan XML API Registry. |
| 12 | ** |
| 13 | */ |
| 14 | |
| 15 | |
| 16 | #ifdef __cplusplus |
| 17 | extern "C" { |
| 18 | #endif |
| 19 | |
| 20 | |
| 21 | |
| 22 | // vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls. |
| 23 | #define vulkan_video_codec_av1std 1 |
| 24 | #include "vulkan_video_codecs_common.h" |
| 25 | #define STD_VIDEO_AV1_NUM_REF_FRAMES 8 |
| 26 | #define STD_VIDEO_AV1_REFS_PER_FRAME 7 |
| 27 | #define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8 |
| 28 | #define STD_VIDEO_AV1_MAX_TILE_COLS 64 |
| 29 | #define STD_VIDEO_AV1_MAX_TILE_ROWS 64 |
| 30 | #define STD_VIDEO_AV1_MAX_SEGMENTS 8 |
| 31 | #define STD_VIDEO_AV1_SEG_LVL_MAX 8 |
| 32 | #define STD_VIDEO_AV1_PRIMARY_REF_NONE 7 |
| 33 | #define STD_VIDEO_AV1_SELECT_INTEGER_MV 2 |
| 34 | #define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2 |
| 35 | #define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2 |
| 36 | #define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4 |
| 37 | #define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2 |
| 38 | #define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8 |
| 39 | #define STD_VIDEO_AV1_MAX_NUM_PLANES 3 |
| 40 | #define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6 |
| 41 | #define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14 |
| 42 | #define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10 |
| 43 | #define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10 |
| 44 | #define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24 |
| 45 | #define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25 |
| 46 | |
| 47 | typedef enum StdVideoAV1Profile { |
| 48 | STD_VIDEO_AV1_PROFILE_MAIN = 0, |
| 49 | STD_VIDEO_AV1_PROFILE_HIGH = 1, |
| 50 | STD_VIDEO_AV1_PROFILE_PROFESSIONAL = 2, |
| 51 | STD_VIDEO_AV1_PROFILE_INVALID = 0x7FFFFFFF, |
| 52 | STD_VIDEO_AV1_PROFILE_MAX_ENUM = 0x7FFFFFFF |
| 53 | } StdVideoAV1Profile; |
| 54 | |
| 55 | typedef enum StdVideoAV1Level { |
| 56 | STD_VIDEO_AV1_LEVEL_2_0 = 0, |
| 57 | STD_VIDEO_AV1_LEVEL_2_1 = 1, |
| 58 | STD_VIDEO_AV1_LEVEL_2_2 = 2, |
| 59 | STD_VIDEO_AV1_LEVEL_2_3 = 3, |
| 60 | STD_VIDEO_AV1_LEVEL_3_0 = 4, |
| 61 | STD_VIDEO_AV1_LEVEL_3_1 = 5, |
| 62 | STD_VIDEO_AV1_LEVEL_3_2 = 6, |
| 63 | STD_VIDEO_AV1_LEVEL_3_3 = 7, |
| 64 | STD_VIDEO_AV1_LEVEL_4_0 = 8, |
| 65 | STD_VIDEO_AV1_LEVEL_4_1 = 9, |
| 66 | STD_VIDEO_AV1_LEVEL_4_2 = 10, |
| 67 | STD_VIDEO_AV1_LEVEL_4_3 = 11, |
| 68 | STD_VIDEO_AV1_LEVEL_5_0 = 12, |
| 69 | STD_VIDEO_AV1_LEVEL_5_1 = 13, |
| 70 | STD_VIDEO_AV1_LEVEL_5_2 = 14, |
| 71 | STD_VIDEO_AV1_LEVEL_5_3 = 15, |
| 72 | STD_VIDEO_AV1_LEVEL_6_0 = 16, |
| 73 | STD_VIDEO_AV1_LEVEL_6_1 = 17, |
| 74 | STD_VIDEO_AV1_LEVEL_6_2 = 18, |
| 75 | STD_VIDEO_AV1_LEVEL_6_3 = 19, |
| 76 | STD_VIDEO_AV1_LEVEL_7_0 = 20, |
| 77 | STD_VIDEO_AV1_LEVEL_7_1 = 21, |
| 78 | STD_VIDEO_AV1_LEVEL_7_2 = 22, |
| 79 | STD_VIDEO_AV1_LEVEL_7_3 = 23, |
| 80 | STD_VIDEO_AV1_LEVEL_INVALID = 0x7FFFFFFF, |
| 81 | STD_VIDEO_AV1_LEVEL_MAX_ENUM = 0x7FFFFFFF |
| 82 | } StdVideoAV1Level; |
| 83 | |
| 84 | typedef enum StdVideoAV1FrameType { |
| 85 | STD_VIDEO_AV1_FRAME_TYPE_KEY = 0, |
| 86 | STD_VIDEO_AV1_FRAME_TYPE_INTER = 1, |
| 87 | STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY = 2, |
| 88 | STD_VIDEO_AV1_FRAME_TYPE_SWITCH = 3, |
| 89 | STD_VIDEO_AV1_FRAME_TYPE_INVALID = 0x7FFFFFFF, |
| 90 | STD_VIDEO_AV1_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF |
| 91 | } StdVideoAV1FrameType; |
| 92 | |
| 93 | typedef enum StdVideoAV1ReferenceName { |
| 94 | STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME = 0, |
| 95 | STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME = 1, |
| 96 | STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME = 2, |
| 97 | STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME = 3, |
| 98 | STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME = 4, |
| 99 | STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME = 5, |
| 100 | STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME = 6, |
| 101 | STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME = 7, |
| 102 | STD_VIDEO_AV1_REFERENCE_NAME_INVALID = 0x7FFFFFFF, |
| 103 | STD_VIDEO_AV1_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF |
| 104 | } StdVideoAV1ReferenceName; |
| 105 | |
| 106 | typedef enum StdVideoAV1InterpolationFilter { |
| 107 | STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0, |
| 108 | STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1, |
| 109 | STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2, |
| 110 | STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR = 3, |
| 111 | STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4, |
| 112 | STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF, |
| 113 | STD_VIDEO_AV1_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF |
| 114 | } StdVideoAV1InterpolationFilter; |
| 115 | |
| 116 | typedef enum StdVideoAV1TxMode { |
| 117 | STD_VIDEO_AV1_TX_MODE_ONLY_4X4 = 0, |
| 118 | STD_VIDEO_AV1_TX_MODE_LARGEST = 1, |
| 119 | STD_VIDEO_AV1_TX_MODE_SELECT = 2, |
| 120 | STD_VIDEO_AV1_TX_MODE_INVALID = 0x7FFFFFFF, |
| 121 | STD_VIDEO_AV1_TX_MODE_MAX_ENUM = 0x7FFFFFFF |
| 122 | } StdVideoAV1TxMode; |
| 123 | |
| 124 | typedef enum StdVideoAV1FrameRestorationType { |
| 125 | STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE = 0, |
| 126 | STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER = 1, |
| 127 | STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ = 2, |
| 128 | STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE = 3, |
| 129 | STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID = 0x7FFFFFFF, |
| 130 | STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_MAX_ENUM = 0x7FFFFFFF |
| 131 | } StdVideoAV1FrameRestorationType; |
| 132 | |
| 133 | typedef enum StdVideoAV1ColorPrimaries { |
| 134 | STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1, |
| 135 | STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = 2, |
| 136 | STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4, |
| 137 | STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5, |
| 138 | STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6, |
| 139 | STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240 = 7, |
| 140 | STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM = 8, |
| 141 | STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020 = 9, |
| 142 | STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ = 10, |
| 143 | STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11, |
| 144 | STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12, |
| 145 | STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22, |
| 146 | STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF, |
| 147 | STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF |
| 148 | } StdVideoAV1ColorPrimaries; |
| 149 | |
| 150 | typedef enum StdVideoAV1TransferCharacteristics { |
| 151 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0, |
| 152 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1, |
| 153 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2, |
| 154 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3, |
| 155 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4, |
| 156 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5, |
| 157 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6, |
| 158 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7, |
| 159 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8, |
| 160 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9, |
| 161 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10, |
| 162 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11, |
| 163 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12, |
| 164 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13, |
| 165 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14, |
| 166 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15, |
| 167 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16, |
| 168 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17, |
| 169 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18, |
| 170 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF, |
| 171 | STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM = 0x7FFFFFFF |
| 172 | } StdVideoAV1TransferCharacteristics; |
| 173 | |
| 174 | typedef enum StdVideoAV1MatrixCoefficients { |
| 175 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0, |
| 176 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1, |
| 177 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2, |
| 178 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3, |
| 179 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4, |
| 180 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5, |
| 181 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6, |
| 182 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7, |
| 183 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8, |
| 184 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9, |
| 185 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10, |
| 186 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11, |
| 187 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12, |
| 188 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13, |
| 189 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14, |
| 190 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF, |
| 191 | STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM = 0x7FFFFFFF |
| 192 | } StdVideoAV1MatrixCoefficients; |
| 193 | |
| 194 | typedef enum StdVideoAV1ChromaSamplePosition { |
| 195 | STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0, |
| 196 | STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1, |
| 197 | STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2, |
| 198 | STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3, |
| 199 | STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF, |
| 200 | STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM = 0x7FFFFFFF |
| 201 | } StdVideoAV1ChromaSamplePosition; |
| 202 | typedef struct StdVideoAV1ColorConfigFlags { |
| 203 | uint32_t mono_chrome : 1; |
| 204 | uint32_t color_range : 1; |
| 205 | uint32_t separate_uv_delta_q : 1; |
| 206 | uint32_t color_description_present_flag : 1; |
| 207 | uint32_t reserved : 28; |
| 208 | } StdVideoAV1ColorConfigFlags; |
| 209 | |
| 210 | typedef struct StdVideoAV1ColorConfig { |
| 211 | StdVideoAV1ColorConfigFlags flags; |
| 212 | uint8_t BitDepth; |
| 213 | uint8_t subsampling_x; |
| 214 | uint8_t subsampling_y; |
| 215 | uint8_t reserved1; |
| 216 | StdVideoAV1ColorPrimaries color_primaries; |
| 217 | StdVideoAV1TransferCharacteristics transfer_characteristics; |
| 218 | StdVideoAV1MatrixCoefficients matrix_coefficients; |
| 219 | StdVideoAV1ChromaSamplePosition chroma_sample_position; |
| 220 | } StdVideoAV1ColorConfig; |
| 221 | |
| 222 | typedef struct StdVideoAV1TimingInfoFlags { |
| 223 | uint32_t equal_picture_interval : 1; |
| 224 | uint32_t reserved : 31; |
| 225 | } StdVideoAV1TimingInfoFlags; |
| 226 | |
| 227 | typedef struct StdVideoAV1TimingInfo { |
| 228 | StdVideoAV1TimingInfoFlags flags; |
| 229 | uint32_t num_units_in_display_tick; |
| 230 | uint32_t time_scale; |
| 231 | uint32_t num_ticks_per_picture_minus_1; |
| 232 | } StdVideoAV1TimingInfo; |
| 233 | |
| 234 | typedef struct StdVideoAV1LoopFilterFlags { |
| 235 | uint32_t loop_filter_delta_enabled : 1; |
| 236 | uint32_t loop_filter_delta_update : 1; |
| 237 | uint32_t reserved : 30; |
| 238 | } StdVideoAV1LoopFilterFlags; |
| 239 | |
| 240 | typedef struct StdVideoAV1LoopFilter { |
| 241 | StdVideoAV1LoopFilterFlags flags; |
| 242 | uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS]; |
| 243 | uint8_t loop_filter_sharpness; |
| 244 | uint8_t update_ref_delta; |
| 245 | int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME]; |
| 246 | uint8_t update_mode_delta; |
| 247 | int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS]; |
| 248 | } StdVideoAV1LoopFilter; |
| 249 | |
| 250 | typedef struct StdVideoAV1QuantizationFlags { |
| 251 | uint32_t using_qmatrix : 1; |
| 252 | uint32_t diff_uv_delta : 1; |
| 253 | uint32_t reserved : 30; |
| 254 | } StdVideoAV1QuantizationFlags; |
| 255 | |
| 256 | typedef struct StdVideoAV1Quantization { |
| 257 | StdVideoAV1QuantizationFlags flags; |
| 258 | uint8_t base_q_idx; |
| 259 | int8_t DeltaQYDc; |
| 260 | int8_t DeltaQUDc; |
| 261 | int8_t DeltaQUAc; |
| 262 | int8_t DeltaQVDc; |
| 263 | int8_t DeltaQVAc; |
| 264 | uint8_t qm_y; |
| 265 | uint8_t qm_u; |
| 266 | uint8_t qm_v; |
| 267 | } StdVideoAV1Quantization; |
| 268 | |
| 269 | typedef struct StdVideoAV1Segmentation { |
| 270 | uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS]; |
| 271 | int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX]; |
| 272 | } StdVideoAV1Segmentation; |
| 273 | |
| 274 | typedef struct StdVideoAV1TileInfoFlags { |
| 275 | uint32_t uniform_tile_spacing_flag : 1; |
| 276 | uint32_t reserved : 31; |
| 277 | } StdVideoAV1TileInfoFlags; |
| 278 | |
| 279 | typedef struct StdVideoAV1TileInfo { |
| 280 | StdVideoAV1TileInfoFlags flags; |
| 281 | uint8_t TileCols; |
| 282 | uint8_t TileRows; |
| 283 | uint16_t context_update_tile_id; |
| 284 | uint8_t tile_size_bytes_minus_1; |
| 285 | uint8_t reserved1[7]; |
| 286 | const uint16_t* pMiColStarts; |
| 287 | const uint16_t* pMiRowStarts; |
| 288 | const uint16_t* pWidthInSbsMinus1; |
| 289 | const uint16_t* pHeightInSbsMinus1; |
| 290 | } StdVideoAV1TileInfo; |
| 291 | |
| 292 | typedef struct StdVideoAV1CDEF { |
| 293 | uint8_t cdef_damping_minus_3; |
| 294 | uint8_t cdef_bits; |
| 295 | uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; |
| 296 | uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; |
| 297 | uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; |
| 298 | uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; |
| 299 | } StdVideoAV1CDEF; |
| 300 | |
| 301 | typedef struct StdVideoAV1LoopRestoration { |
| 302 | StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES]; |
| 303 | uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES]; |
| 304 | } StdVideoAV1LoopRestoration; |
| 305 | |
| 306 | typedef struct StdVideoAV1GlobalMotion { |
| 307 | uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES]; |
| 308 | int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS]; |
| 309 | } StdVideoAV1GlobalMotion; |
| 310 | |
| 311 | typedef struct StdVideoAV1FilmGrainFlags { |
| 312 | uint32_t chroma_scaling_from_luma : 1; |
| 313 | uint32_t overlap_flag : 1; |
| 314 | uint32_t clip_to_restricted_range : 1; |
| 315 | uint32_t update_grain : 1; |
| 316 | uint32_t reserved : 28; |
| 317 | } StdVideoAV1FilmGrainFlags; |
| 318 | |
| 319 | typedef struct StdVideoAV1FilmGrain { |
| 320 | StdVideoAV1FilmGrainFlags flags; |
| 321 | uint8_t grain_scaling_minus_8; |
| 322 | uint8_t ar_coeff_lag; |
| 323 | uint8_t ar_coeff_shift_minus_6; |
| 324 | uint8_t grain_scale_shift; |
| 325 | uint16_t grain_seed; |
| 326 | uint8_t film_grain_params_ref_idx; |
| 327 | uint8_t num_y_points; |
| 328 | uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; |
| 329 | uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; |
| 330 | uint8_t num_cb_points; |
| 331 | uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; |
| 332 | uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; |
| 333 | uint8_t num_cr_points; |
| 334 | uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; |
| 335 | uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; |
| 336 | int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA]; |
| 337 | int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; |
| 338 | int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; |
| 339 | uint8_t cb_mult; |
| 340 | uint8_t cb_luma_mult; |
| 341 | uint16_t cb_offset; |
| 342 | uint8_t cr_mult; |
| 343 | uint8_t cr_luma_mult; |
| 344 | uint16_t cr_offset; |
| 345 | } StdVideoAV1FilmGrain; |
| 346 | |
| 347 | typedef struct { |
| 348 | uint32_t : 1; |
| 349 | uint32_t : 1; |
| 350 | uint32_t : 1; |
| 351 | uint32_t : 1; |
| 352 | uint32_t : 1; |
| 353 | uint32_t : 1; |
| 354 | uint32_t : 1; |
| 355 | uint32_t : 1; |
| 356 | uint32_t : 1; |
| 357 | uint32_t : 1; |
| 358 | uint32_t : 1; |
| 359 | uint32_t : 1; |
| 360 | uint32_t : 1; |
| 361 | uint32_t : 1; |
| 362 | uint32_t : 1; |
| 363 | uint32_t : 1; |
| 364 | uint32_t : 1; |
| 365 | uint32_t : 1; |
| 366 | uint32_t : 1; |
| 367 | uint32_t : 13; |
| 368 | } ; |
| 369 | |
| 370 | typedef struct { |
| 371 | StdVideoAV1SequenceHeaderFlags ; |
| 372 | StdVideoAV1Profile ; |
| 373 | uint8_t ; |
| 374 | uint8_t ; |
| 375 | uint16_t ; |
| 376 | uint16_t ; |
| 377 | uint8_t ; |
| 378 | uint8_t ; |
| 379 | uint8_t ; |
| 380 | uint8_t ; |
| 381 | uint8_t ; |
| 382 | uint8_t [5]; |
| 383 | const StdVideoAV1ColorConfig* ; |
| 384 | const StdVideoAV1TimingInfo* ; |
| 385 | } ; |
| 386 | |
| 387 | |
| 388 | #ifdef __cplusplus |
| 389 | } |
| 390 | #endif |
| 391 | |
| 392 | #endif |
| 393 | |