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