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 | |