Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
stenzek
GitHub Repository: stenzek/duckstation
Path: blob/master/dep/vulkan/include/vk_video/vulkan_video_codec_av1std.h
7567 views
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 8U
26
#define STD_VIDEO_AV1_REFS_PER_FRAME 7U
27
#define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8U
28
#define STD_VIDEO_AV1_MAX_TILE_COLS 64U
29
#define STD_VIDEO_AV1_MAX_TILE_ROWS 64U
30
#define STD_VIDEO_AV1_MAX_SEGMENTS 8U
31
#define STD_VIDEO_AV1_SEG_LVL_MAX 8U
32
#define STD_VIDEO_AV1_PRIMARY_REF_NONE 7U
33
#define STD_VIDEO_AV1_SELECT_INTEGER_MV 2U
34
#define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2U
35
#define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2U
36
#define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4U
37
#define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2U
38
#define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8U
39
#define STD_VIDEO_AV1_MAX_NUM_PLANES 3U
40
#define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6U
41
#define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14U
42
#define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10U
43
#define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10U
44
#define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24U
45
#define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25U
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 legacy 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
396