1 #ifndef VULKAN_VIDEO_CODEC_AV1STD_H_ 2 #define VULKAN_VIDEO_CODEC_AV1STD_H_ 1 3 4 /* 5 ** Copyright 2015-2025 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_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_BT_UNSPECIFIED is a deprecated alias 148 STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED, 149 STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF 150 } StdVideoAV1ColorPrimaries; 151 152 typedef enum StdVideoAV1TransferCharacteristics { 153 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0, 154 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1, 155 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2, 156 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3, 157 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4, 158 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5, 159 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6, 160 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7, 161 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8, 162 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9, 163 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10, 164 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11, 165 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12, 166 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13, 167 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14, 168 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15, 169 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16, 170 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17, 171 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18, 172 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF, 173 STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM = 0x7FFFFFFF 174 } StdVideoAV1TransferCharacteristics; 175 176 typedef enum StdVideoAV1MatrixCoefficients { 177 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0, 178 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1, 179 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2, 180 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3, 181 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4, 182 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5, 183 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6, 184 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7, 185 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8, 186 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9, 187 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10, 188 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11, 189 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12, 190 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13, 191 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14, 192 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF, 193 STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM = 0x7FFFFFFF 194 } StdVideoAV1MatrixCoefficients; 195 196 typedef enum StdVideoAV1ChromaSamplePosition { 197 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0, 198 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1, 199 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2, 200 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3, 201 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF, 202 STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM = 0x7FFFFFFF 203 } StdVideoAV1ChromaSamplePosition; 204 typedef struct StdVideoAV1ColorConfigFlags { 205 uint32_t mono_chrome : 1; 206 uint32_t color_range : 1; 207 uint32_t separate_uv_delta_q : 1; 208 uint32_t color_description_present_flag : 1; 209 uint32_t reserved : 28; 210 } StdVideoAV1ColorConfigFlags; 211 212 typedef struct StdVideoAV1ColorConfig { 213 StdVideoAV1ColorConfigFlags flags; 214 uint8_t BitDepth; 215 uint8_t subsampling_x; 216 uint8_t subsampling_y; 217 uint8_t reserved1; 218 StdVideoAV1ColorPrimaries color_primaries; 219 StdVideoAV1TransferCharacteristics transfer_characteristics; 220 StdVideoAV1MatrixCoefficients matrix_coefficients; 221 StdVideoAV1ChromaSamplePosition chroma_sample_position; 222 } StdVideoAV1ColorConfig; 223 224 typedef struct StdVideoAV1TimingInfoFlags { 225 uint32_t equal_picture_interval : 1; 226 uint32_t reserved : 31; 227 } StdVideoAV1TimingInfoFlags; 228 229 typedef struct StdVideoAV1TimingInfo { 230 StdVideoAV1TimingInfoFlags flags; 231 uint32_t num_units_in_display_tick; 232 uint32_t time_scale; 233 uint32_t num_ticks_per_picture_minus_1; 234 } StdVideoAV1TimingInfo; 235 236 typedef struct StdVideoAV1LoopFilterFlags { 237 uint32_t loop_filter_delta_enabled : 1; 238 uint32_t loop_filter_delta_update : 1; 239 uint32_t reserved : 30; 240 } StdVideoAV1LoopFilterFlags; 241 242 typedef struct StdVideoAV1LoopFilter { 243 StdVideoAV1LoopFilterFlags flags; 244 uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS]; 245 uint8_t loop_filter_sharpness; 246 uint8_t update_ref_delta; 247 int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME]; 248 uint8_t update_mode_delta; 249 int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS]; 250 } StdVideoAV1LoopFilter; 251 252 typedef struct StdVideoAV1QuantizationFlags { 253 uint32_t using_qmatrix : 1; 254 uint32_t diff_uv_delta : 1; 255 uint32_t reserved : 30; 256 } StdVideoAV1QuantizationFlags; 257 258 typedef struct StdVideoAV1Quantization { 259 StdVideoAV1QuantizationFlags flags; 260 uint8_t base_q_idx; 261 int8_t DeltaQYDc; 262 int8_t DeltaQUDc; 263 int8_t DeltaQUAc; 264 int8_t DeltaQVDc; 265 int8_t DeltaQVAc; 266 uint8_t qm_y; 267 uint8_t qm_u; 268 uint8_t qm_v; 269 } StdVideoAV1Quantization; 270 271 typedef struct StdVideoAV1Segmentation { 272 uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS]; 273 int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX]; 274 } StdVideoAV1Segmentation; 275 276 typedef struct StdVideoAV1TileInfoFlags { 277 uint32_t uniform_tile_spacing_flag : 1; 278 uint32_t reserved : 31; 279 } StdVideoAV1TileInfoFlags; 280 281 typedef struct StdVideoAV1TileInfo { 282 StdVideoAV1TileInfoFlags flags; 283 uint8_t TileCols; 284 uint8_t TileRows; 285 uint16_t context_update_tile_id; 286 uint8_t tile_size_bytes_minus_1; 287 uint8_t reserved1[7]; 288 const uint16_t* pMiColStarts; 289 const uint16_t* pMiRowStarts; 290 const uint16_t* pWidthInSbsMinus1; 291 const uint16_t* pHeightInSbsMinus1; 292 } StdVideoAV1TileInfo; 293 294 typedef struct StdVideoAV1CDEF { 295 uint8_t cdef_damping_minus_3; 296 uint8_t cdef_bits; 297 uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; 298 uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; 299 uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; 300 uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; 301 } StdVideoAV1CDEF; 302 303 typedef struct StdVideoAV1LoopRestoration { 304 StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES]; 305 uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES]; 306 } StdVideoAV1LoopRestoration; 307 308 typedef struct StdVideoAV1GlobalMotion { 309 uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES]; 310 int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS]; 311 } StdVideoAV1GlobalMotion; 312 313 typedef struct StdVideoAV1FilmGrainFlags { 314 uint32_t chroma_scaling_from_luma : 1; 315 uint32_t overlap_flag : 1; 316 uint32_t clip_to_restricted_range : 1; 317 uint32_t update_grain : 1; 318 uint32_t reserved : 28; 319 } StdVideoAV1FilmGrainFlags; 320 321 typedef struct StdVideoAV1FilmGrain { 322 StdVideoAV1FilmGrainFlags flags; 323 uint8_t grain_scaling_minus_8; 324 uint8_t ar_coeff_lag; 325 uint8_t ar_coeff_shift_minus_6; 326 uint8_t grain_scale_shift; 327 uint16_t grain_seed; 328 uint8_t film_grain_params_ref_idx; 329 uint8_t num_y_points; 330 uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; 331 uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; 332 uint8_t num_cb_points; 333 uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; 334 uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; 335 uint8_t num_cr_points; 336 uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; 337 uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; 338 int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA]; 339 int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; 340 int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; 341 uint8_t cb_mult; 342 uint8_t cb_luma_mult; 343 uint16_t cb_offset; 344 uint8_t cr_mult; 345 uint8_t cr_luma_mult; 346 uint16_t cr_offset; 347 } StdVideoAV1FilmGrain; 348 349 typedef struct StdVideoAV1SequenceHeaderFlags { 350 uint32_t still_picture : 1; 351 uint32_t reduced_still_picture_header : 1; 352 uint32_t use_128x128_superblock : 1; 353 uint32_t enable_filter_intra : 1; 354 uint32_t enable_intra_edge_filter : 1; 355 uint32_t enable_interintra_compound : 1; 356 uint32_t enable_masked_compound : 1; 357 uint32_t enable_warped_motion : 1; 358 uint32_t enable_dual_filter : 1; 359 uint32_t enable_order_hint : 1; 360 uint32_t enable_jnt_comp : 1; 361 uint32_t enable_ref_frame_mvs : 1; 362 uint32_t frame_id_numbers_present_flag : 1; 363 uint32_t enable_superres : 1; 364 uint32_t enable_cdef : 1; 365 uint32_t enable_restoration : 1; 366 uint32_t film_grain_params_present : 1; 367 uint32_t timing_info_present_flag : 1; 368 uint32_t initial_display_delay_present_flag : 1; 369 uint32_t reserved : 13; 370 } StdVideoAV1SequenceHeaderFlags; 371 372 typedef struct StdVideoAV1SequenceHeader { 373 StdVideoAV1SequenceHeaderFlags flags; 374 StdVideoAV1Profile seq_profile; 375 uint8_t frame_width_bits_minus_1; 376 uint8_t frame_height_bits_minus_1; 377 uint16_t max_frame_width_minus_1; 378 uint16_t max_frame_height_minus_1; 379 uint8_t delta_frame_id_length_minus_2; 380 uint8_t additional_frame_id_length_minus_1; 381 uint8_t order_hint_bits_minus_1; 382 uint8_t seq_force_integer_mv; 383 uint8_t seq_force_screen_content_tools; 384 uint8_t reserved1[5]; 385 const StdVideoAV1ColorConfig* pColorConfig; 386 const StdVideoAV1TimingInfo* pTimingInfo; 387 } StdVideoAV1SequenceHeader; 388 389 390 #ifdef __cplusplus 391 } 392 #endif 393 394 #endif 395