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_h265std.h
4253 views
1
#ifndef VULKAN_VIDEO_CODEC_H265STD_H_
2
#define VULKAN_VIDEO_CODEC_H265STD_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_h265std is a preprocessor guard. Do not pass it to API calls.
23
#define vulkan_video_codec_h265std 1
24
#include "vulkan_video_codecs_common.h"
25
#define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32
26
#define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7
27
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6
28
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16
29
#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6
30
#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64
31
#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6
32
#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64
33
#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2
34
#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64
35
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
36
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19
37
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21
38
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
39
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
40
#define STD_VIDEO_H265_MAX_NUM_LIST_REF 15
41
#define STD_VIDEO_H265_MAX_CHROMA_PLANES 2
42
#define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64
43
#define STD_VIDEO_H265_MAX_DPB_SIZE 16
44
#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32
45
#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16
46
#define STD_VIDEO_H265_MAX_DELTA_POC 48
47
#define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFF
48
49
typedef enum StdVideoH265ChromaFormatIdc {
50
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
51
STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1,
52
STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2,
53
STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3,
54
STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF,
55
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF
56
} StdVideoH265ChromaFormatIdc;
57
58
typedef enum StdVideoH265ProfileIdc {
59
STD_VIDEO_H265_PROFILE_IDC_MAIN = 1,
60
STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2,
61
STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3,
62
STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4,
63
STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9,
64
STD_VIDEO_H265_PROFILE_IDC_INVALID = 0x7FFFFFFF,
65
STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF
66
} StdVideoH265ProfileIdc;
67
68
typedef enum StdVideoH265LevelIdc {
69
STD_VIDEO_H265_LEVEL_IDC_1_0 = 0,
70
STD_VIDEO_H265_LEVEL_IDC_2_0 = 1,
71
STD_VIDEO_H265_LEVEL_IDC_2_1 = 2,
72
STD_VIDEO_H265_LEVEL_IDC_3_0 = 3,
73
STD_VIDEO_H265_LEVEL_IDC_3_1 = 4,
74
STD_VIDEO_H265_LEVEL_IDC_4_0 = 5,
75
STD_VIDEO_H265_LEVEL_IDC_4_1 = 6,
76
STD_VIDEO_H265_LEVEL_IDC_5_0 = 7,
77
STD_VIDEO_H265_LEVEL_IDC_5_1 = 8,
78
STD_VIDEO_H265_LEVEL_IDC_5_2 = 9,
79
STD_VIDEO_H265_LEVEL_IDC_6_0 = 10,
80
STD_VIDEO_H265_LEVEL_IDC_6_1 = 11,
81
STD_VIDEO_H265_LEVEL_IDC_6_2 = 12,
82
STD_VIDEO_H265_LEVEL_IDC_INVALID = 0x7FFFFFFF,
83
STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF
84
} StdVideoH265LevelIdc;
85
86
typedef enum StdVideoH265SliceType {
87
STD_VIDEO_H265_SLICE_TYPE_B = 0,
88
STD_VIDEO_H265_SLICE_TYPE_P = 1,
89
STD_VIDEO_H265_SLICE_TYPE_I = 2,
90
STD_VIDEO_H265_SLICE_TYPE_INVALID = 0x7FFFFFFF,
91
STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF
92
} StdVideoH265SliceType;
93
94
typedef enum StdVideoH265PictureType {
95
STD_VIDEO_H265_PICTURE_TYPE_P = 0,
96
STD_VIDEO_H265_PICTURE_TYPE_B = 1,
97
STD_VIDEO_H265_PICTURE_TYPE_I = 2,
98
STD_VIDEO_H265_PICTURE_TYPE_IDR = 3,
99
STD_VIDEO_H265_PICTURE_TYPE_INVALID = 0x7FFFFFFF,
100
STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
101
} StdVideoH265PictureType;
102
103
typedef enum StdVideoH265AspectRatioIdc {
104
STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0,
105
STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1,
106
STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2,
107
STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3,
108
STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4,
109
STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5,
110
STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6,
111
STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7,
112
STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8,
113
STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9,
114
STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10,
115
STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11,
116
STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12,
117
STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13,
118
STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14,
119
STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15,
120
STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16,
121
STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255,
122
STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF,
123
STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF
124
} StdVideoH265AspectRatioIdc;
125
typedef struct StdVideoH265DecPicBufMgr {
126
uint32_t max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
127
uint8_t max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
128
uint8_t max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
129
} StdVideoH265DecPicBufMgr;
130
131
typedef struct StdVideoH265SubLayerHrdParameters {
132
uint32_t bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
133
uint32_t cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
134
uint32_t cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
135
uint32_t bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
136
uint32_t cbr_flag;
137
} StdVideoH265SubLayerHrdParameters;
138
139
typedef struct StdVideoH265HrdFlags {
140
uint32_t nal_hrd_parameters_present_flag : 1;
141
uint32_t vcl_hrd_parameters_present_flag : 1;
142
uint32_t sub_pic_hrd_params_present_flag : 1;
143
uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag : 1;
144
uint32_t fixed_pic_rate_general_flag : 8;
145
uint32_t fixed_pic_rate_within_cvs_flag : 8;
146
uint32_t low_delay_hrd_flag : 8;
147
} StdVideoH265HrdFlags;
148
149
typedef struct StdVideoH265HrdParameters {
150
StdVideoH265HrdFlags flags;
151
uint8_t tick_divisor_minus2;
152
uint8_t du_cpb_removal_delay_increment_length_minus1;
153
uint8_t dpb_output_delay_du_length_minus1;
154
uint8_t bit_rate_scale;
155
uint8_t cpb_size_scale;
156
uint8_t cpb_size_du_scale;
157
uint8_t initial_cpb_removal_delay_length_minus1;
158
uint8_t au_cpb_removal_delay_length_minus1;
159
uint8_t dpb_output_delay_length_minus1;
160
uint8_t cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
161
uint16_t elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
162
uint16_t reserved[3];
163
const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersNal;
164
const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersVcl;
165
} StdVideoH265HrdParameters;
166
167
typedef struct StdVideoH265VpsFlags {
168
uint32_t vps_temporal_id_nesting_flag : 1;
169
uint32_t vps_sub_layer_ordering_info_present_flag : 1;
170
uint32_t vps_timing_info_present_flag : 1;
171
uint32_t vps_poc_proportional_to_timing_flag : 1;
172
} StdVideoH265VpsFlags;
173
174
typedef struct StdVideoH265ProfileTierLevelFlags {
175
uint32_t general_tier_flag : 1;
176
uint32_t general_progressive_source_flag : 1;
177
uint32_t general_interlaced_source_flag : 1;
178
uint32_t general_non_packed_constraint_flag : 1;
179
uint32_t general_frame_only_constraint_flag : 1;
180
} StdVideoH265ProfileTierLevelFlags;
181
182
typedef struct StdVideoH265ProfileTierLevel {
183
StdVideoH265ProfileTierLevelFlags flags;
184
StdVideoH265ProfileIdc general_profile_idc;
185
StdVideoH265LevelIdc general_level_idc;
186
} StdVideoH265ProfileTierLevel;
187
188
typedef struct StdVideoH265VideoParameterSet {
189
StdVideoH265VpsFlags flags;
190
uint8_t vps_video_parameter_set_id;
191
uint8_t vps_max_sub_layers_minus1;
192
uint8_t reserved1;
193
uint8_t reserved2;
194
uint32_t vps_num_units_in_tick;
195
uint32_t vps_time_scale;
196
uint32_t vps_num_ticks_poc_diff_one_minus1;
197
uint32_t reserved3;
198
const StdVideoH265DecPicBufMgr* pDecPicBufMgr;
199
const StdVideoH265HrdParameters* pHrdParameters;
200
const StdVideoH265ProfileTierLevel* pProfileTierLevel;
201
} StdVideoH265VideoParameterSet;
202
203
typedef struct StdVideoH265ScalingLists {
204
uint8_t ScalingList4x4[STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS];
205
uint8_t ScalingList8x8[STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS];
206
uint8_t ScalingList16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS];
207
uint8_t ScalingList32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS];
208
uint8_t ScalingListDCCoef16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS];
209
uint8_t ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS];
210
} StdVideoH265ScalingLists;
211
212
typedef struct StdVideoH265SpsVuiFlags {
213
uint32_t aspect_ratio_info_present_flag : 1;
214
uint32_t overscan_info_present_flag : 1;
215
uint32_t overscan_appropriate_flag : 1;
216
uint32_t video_signal_type_present_flag : 1;
217
uint32_t video_full_range_flag : 1;
218
uint32_t colour_description_present_flag : 1;
219
uint32_t chroma_loc_info_present_flag : 1;
220
uint32_t neutral_chroma_indication_flag : 1;
221
uint32_t field_seq_flag : 1;
222
uint32_t frame_field_info_present_flag : 1;
223
uint32_t default_display_window_flag : 1;
224
uint32_t vui_timing_info_present_flag : 1;
225
uint32_t vui_poc_proportional_to_timing_flag : 1;
226
uint32_t vui_hrd_parameters_present_flag : 1;
227
uint32_t bitstream_restriction_flag : 1;
228
uint32_t tiles_fixed_structure_flag : 1;
229
uint32_t motion_vectors_over_pic_boundaries_flag : 1;
230
uint32_t restricted_ref_pic_lists_flag : 1;
231
} StdVideoH265SpsVuiFlags;
232
233
typedef struct StdVideoH265SequenceParameterSetVui {
234
StdVideoH265SpsVuiFlags flags;
235
StdVideoH265AspectRatioIdc aspect_ratio_idc;
236
uint16_t sar_width;
237
uint16_t sar_height;
238
uint8_t video_format;
239
uint8_t colour_primaries;
240
uint8_t transfer_characteristics;
241
uint8_t matrix_coeffs;
242
uint8_t chroma_sample_loc_type_top_field;
243
uint8_t chroma_sample_loc_type_bottom_field;
244
uint8_t reserved1;
245
uint8_t reserved2;
246
uint16_t def_disp_win_left_offset;
247
uint16_t def_disp_win_right_offset;
248
uint16_t def_disp_win_top_offset;
249
uint16_t def_disp_win_bottom_offset;
250
uint32_t vui_num_units_in_tick;
251
uint32_t vui_time_scale;
252
uint32_t vui_num_ticks_poc_diff_one_minus1;
253
uint16_t min_spatial_segmentation_idc;
254
uint16_t reserved3;
255
uint8_t max_bytes_per_pic_denom;
256
uint8_t max_bits_per_min_cu_denom;
257
uint8_t log2_max_mv_length_horizontal;
258
uint8_t log2_max_mv_length_vertical;
259
const StdVideoH265HrdParameters* pHrdParameters;
260
} StdVideoH265SequenceParameterSetVui;
261
262
typedef struct StdVideoH265PredictorPaletteEntries {
263
uint16_t PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE];
264
} StdVideoH265PredictorPaletteEntries;
265
266
typedef struct StdVideoH265SpsFlags {
267
uint32_t sps_temporal_id_nesting_flag : 1;
268
uint32_t separate_colour_plane_flag : 1;
269
uint32_t conformance_window_flag : 1;
270
uint32_t sps_sub_layer_ordering_info_present_flag : 1;
271
uint32_t scaling_list_enabled_flag : 1;
272
uint32_t sps_scaling_list_data_present_flag : 1;
273
uint32_t amp_enabled_flag : 1;
274
uint32_t sample_adaptive_offset_enabled_flag : 1;
275
uint32_t pcm_enabled_flag : 1;
276
uint32_t pcm_loop_filter_disabled_flag : 1;
277
uint32_t long_term_ref_pics_present_flag : 1;
278
uint32_t sps_temporal_mvp_enabled_flag : 1;
279
uint32_t strong_intra_smoothing_enabled_flag : 1;
280
uint32_t vui_parameters_present_flag : 1;
281
uint32_t sps_extension_present_flag : 1;
282
uint32_t sps_range_extension_flag : 1;
283
uint32_t transform_skip_rotation_enabled_flag : 1;
284
uint32_t transform_skip_context_enabled_flag : 1;
285
uint32_t implicit_rdpcm_enabled_flag : 1;
286
uint32_t explicit_rdpcm_enabled_flag : 1;
287
uint32_t extended_precision_processing_flag : 1;
288
uint32_t intra_smoothing_disabled_flag : 1;
289
uint32_t high_precision_offsets_enabled_flag : 1;
290
uint32_t persistent_rice_adaptation_enabled_flag : 1;
291
uint32_t cabac_bypass_alignment_enabled_flag : 1;
292
uint32_t sps_scc_extension_flag : 1;
293
uint32_t sps_curr_pic_ref_enabled_flag : 1;
294
uint32_t palette_mode_enabled_flag : 1;
295
uint32_t sps_palette_predictor_initializers_present_flag : 1;
296
uint32_t intra_boundary_filtering_disabled_flag : 1;
297
} StdVideoH265SpsFlags;
298
299
typedef struct StdVideoH265ShortTermRefPicSetFlags {
300
uint32_t inter_ref_pic_set_prediction_flag : 1;
301
uint32_t delta_rps_sign : 1;
302
} StdVideoH265ShortTermRefPicSetFlags;
303
304
typedef struct StdVideoH265ShortTermRefPicSet {
305
StdVideoH265ShortTermRefPicSetFlags flags;
306
uint32_t delta_idx_minus1;
307
uint16_t use_delta_flag;
308
uint16_t abs_delta_rps_minus1;
309
uint16_t used_by_curr_pic_flag;
310
uint16_t used_by_curr_pic_s0_flag;
311
uint16_t used_by_curr_pic_s1_flag;
312
uint16_t reserved1;
313
uint8_t reserved2;
314
uint8_t reserved3;
315
uint8_t num_negative_pics;
316
uint8_t num_positive_pics;
317
uint16_t delta_poc_s0_minus1[STD_VIDEO_H265_MAX_DPB_SIZE];
318
uint16_t delta_poc_s1_minus1[STD_VIDEO_H265_MAX_DPB_SIZE];
319
} StdVideoH265ShortTermRefPicSet;
320
321
typedef struct StdVideoH265LongTermRefPicsSps {
322
uint32_t used_by_curr_pic_lt_sps_flag;
323
uint32_t lt_ref_pic_poc_lsb_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS];
324
} StdVideoH265LongTermRefPicsSps;
325
326
typedef struct StdVideoH265SequenceParameterSet {
327
StdVideoH265SpsFlags flags;
328
StdVideoH265ChromaFormatIdc chroma_format_idc;
329
uint32_t pic_width_in_luma_samples;
330
uint32_t pic_height_in_luma_samples;
331
uint8_t sps_video_parameter_set_id;
332
uint8_t sps_max_sub_layers_minus1;
333
uint8_t sps_seq_parameter_set_id;
334
uint8_t bit_depth_luma_minus8;
335
uint8_t bit_depth_chroma_minus8;
336
uint8_t log2_max_pic_order_cnt_lsb_minus4;
337
uint8_t log2_min_luma_coding_block_size_minus3;
338
uint8_t log2_diff_max_min_luma_coding_block_size;
339
uint8_t log2_min_luma_transform_block_size_minus2;
340
uint8_t log2_diff_max_min_luma_transform_block_size;
341
uint8_t max_transform_hierarchy_depth_inter;
342
uint8_t max_transform_hierarchy_depth_intra;
343
uint8_t num_short_term_ref_pic_sets;
344
uint8_t num_long_term_ref_pics_sps;
345
uint8_t pcm_sample_bit_depth_luma_minus1;
346
uint8_t pcm_sample_bit_depth_chroma_minus1;
347
uint8_t log2_min_pcm_luma_coding_block_size_minus3;
348
uint8_t log2_diff_max_min_pcm_luma_coding_block_size;
349
uint8_t reserved1;
350
uint8_t reserved2;
351
uint8_t palette_max_size;
352
uint8_t delta_palette_max_predictor_size;
353
uint8_t motion_vector_resolution_control_idc;
354
uint8_t sps_num_palette_predictor_initializers_minus1;
355
uint32_t conf_win_left_offset;
356
uint32_t conf_win_right_offset;
357
uint32_t conf_win_top_offset;
358
uint32_t conf_win_bottom_offset;
359
const StdVideoH265ProfileTierLevel* pProfileTierLevel;
360
const StdVideoH265DecPicBufMgr* pDecPicBufMgr;
361
const StdVideoH265ScalingLists* pScalingLists;
362
const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet;
363
const StdVideoH265LongTermRefPicsSps* pLongTermRefPicsSps;
364
const StdVideoH265SequenceParameterSetVui* pSequenceParameterSetVui;
365
const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries;
366
} StdVideoH265SequenceParameterSet;
367
368
typedef struct StdVideoH265PpsFlags {
369
uint32_t dependent_slice_segments_enabled_flag : 1;
370
uint32_t output_flag_present_flag : 1;
371
uint32_t sign_data_hiding_enabled_flag : 1;
372
uint32_t cabac_init_present_flag : 1;
373
uint32_t constrained_intra_pred_flag : 1;
374
uint32_t transform_skip_enabled_flag : 1;
375
uint32_t cu_qp_delta_enabled_flag : 1;
376
uint32_t pps_slice_chroma_qp_offsets_present_flag : 1;
377
uint32_t weighted_pred_flag : 1;
378
uint32_t weighted_bipred_flag : 1;
379
uint32_t transquant_bypass_enabled_flag : 1;
380
uint32_t tiles_enabled_flag : 1;
381
uint32_t entropy_coding_sync_enabled_flag : 1;
382
uint32_t uniform_spacing_flag : 1;
383
uint32_t loop_filter_across_tiles_enabled_flag : 1;
384
uint32_t pps_loop_filter_across_slices_enabled_flag : 1;
385
uint32_t deblocking_filter_control_present_flag : 1;
386
uint32_t deblocking_filter_override_enabled_flag : 1;
387
uint32_t pps_deblocking_filter_disabled_flag : 1;
388
uint32_t pps_scaling_list_data_present_flag : 1;
389
uint32_t lists_modification_present_flag : 1;
390
uint32_t slice_segment_header_extension_present_flag : 1;
391
uint32_t pps_extension_present_flag : 1;
392
uint32_t cross_component_prediction_enabled_flag : 1;
393
uint32_t chroma_qp_offset_list_enabled_flag : 1;
394
uint32_t pps_curr_pic_ref_enabled_flag : 1;
395
uint32_t residual_adaptive_colour_transform_enabled_flag : 1;
396
uint32_t pps_slice_act_qp_offsets_present_flag : 1;
397
uint32_t pps_palette_predictor_initializers_present_flag : 1;
398
uint32_t monochrome_palette_flag : 1;
399
uint32_t pps_range_extension_flag : 1;
400
} StdVideoH265PpsFlags;
401
402
typedef struct StdVideoH265PictureParameterSet {
403
StdVideoH265PpsFlags flags;
404
uint8_t pps_pic_parameter_set_id;
405
uint8_t pps_seq_parameter_set_id;
406
uint8_t sps_video_parameter_set_id;
407
uint8_t num_extra_slice_header_bits;
408
uint8_t num_ref_idx_l0_default_active_minus1;
409
uint8_t num_ref_idx_l1_default_active_minus1;
410
int8_t init_qp_minus26;
411
uint8_t diff_cu_qp_delta_depth;
412
int8_t pps_cb_qp_offset;
413
int8_t pps_cr_qp_offset;
414
int8_t pps_beta_offset_div2;
415
int8_t pps_tc_offset_div2;
416
uint8_t log2_parallel_merge_level_minus2;
417
uint8_t log2_max_transform_skip_block_size_minus2;
418
uint8_t diff_cu_chroma_qp_offset_depth;
419
uint8_t chroma_qp_offset_list_len_minus1;
420
int8_t cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
421
int8_t cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
422
uint8_t log2_sao_offset_scale_luma;
423
uint8_t log2_sao_offset_scale_chroma;
424
int8_t pps_act_y_qp_offset_plus5;
425
int8_t pps_act_cb_qp_offset_plus5;
426
int8_t pps_act_cr_qp_offset_plus3;
427
uint8_t pps_num_palette_predictor_initializers;
428
uint8_t luma_bit_depth_entry_minus8;
429
uint8_t chroma_bit_depth_entry_minus8;
430
uint8_t num_tile_columns_minus1;
431
uint8_t num_tile_rows_minus1;
432
uint8_t reserved1;
433
uint8_t reserved2;
434
uint16_t column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE];
435
uint16_t row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE];
436
uint32_t reserved3;
437
const StdVideoH265ScalingLists* pScalingLists;
438
const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries;
439
} StdVideoH265PictureParameterSet;
440
441
442
#ifdef __cplusplus
443
}
444
#endif
445
446
#endif
447
448