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
17extern "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
49typedef 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
58typedef 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
68typedef 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
86typedef 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
94typedef 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
103typedef 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;
125typedef 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
131typedef 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
139typedef 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
149typedef 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
167typedef 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
174typedef 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
182typedef struct StdVideoH265ProfileTierLevel {
183    StdVideoH265ProfileTierLevelFlags    flags;
184    StdVideoH265ProfileIdc               general_profile_idc;
185    StdVideoH265LevelIdc                 general_level_idc;
186} StdVideoH265ProfileTierLevel;
187
188typedef 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
203typedef 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
212typedef 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
233typedef 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
262typedef 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
266typedef 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
299typedef struct StdVideoH265ShortTermRefPicSetFlags {
300    uint32_t    inter_ref_pic_set_prediction_flag : 1;
301    uint32_t    delta_rps_sign : 1;
302} StdVideoH265ShortTermRefPicSetFlags;
303
304typedef 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
321typedef 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
326typedef 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
368typedef 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
402typedef 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