duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

vulkan_video_codec_h265std.h (23416B)


      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