847 StdVideoH265SequenceParameterSet *vksps = &vk_units->
sps;
848 StdVideoH265ShortTermRefPicSet *str = vk_units->
str;
849 StdVideoH265LongTermRefPicsSps *ltr = &vk_units->
ltr;
850 StdVideoH265ProfileTierLevel *ptl_sps = &vk_units->
ptl_sps;
851 StdVideoH265DecPicBufMgr *dpbm_sps = &vk_units->
dpbm_sps;
853 StdVideoH265HrdParameters *vui_header_sps = &vk_units->
vui_header_sps;
854 StdVideoH265SequenceParameterSetVui *vui_sps = &vk_units->
vui_sps;
856 StdVideoH265SubLayerHrdParameters *slhdrnal = vk_units->
slhdrnal;
857 StdVideoH265SubLayerHrdParameters *slhdrvcl = vk_units->
slhdrvcl;
860 StdVideoH265PictureParameterSet *vkpps = &vk_units->
pps;
863 StdVideoH265VideoParameterSet *vkvps = &vk_units->
vps;
864 StdVideoH265ProfileTierLevel *ptl_vps = &vk_units->
ptl_vps;
865 StdVideoH265DecPicBufMgr *dpbm_vps = &vk_units->
dpbm_vps;
866 StdVideoH265HrdParameters *vui_header_vps = &vk_units->
vui_header_vps;
870 memcpy(&slhdrnal[
i], &
sps->vui.hrd_parameters.nal_sub_layer_hrd_parameters[
i],
sizeof(*slhdrnal));
871 memcpy(&slhdrvcl[
i], &
sps->vui.hrd_parameters.vcl_sub_layer_hrd_parameters[
i],
sizeof(*slhdrvcl));
872 slhdrnal[
i].cbr_flag = 0x0;
873 slhdrvcl[
i].cbr_flag = 0x0;
875 slhdrnal[
i].cbr_flag |=
sps->vui.hrd_parameters.nal_sub_layer_hrd_parameters[
i].cbr_flag[j] <<
i;
876 slhdrvcl[
i].cbr_flag |=
sps->vui.hrd_parameters.vcl_sub_layer_hrd_parameters[
i].cbr_flag[j] <<
i;
880 *vui_header_sps = (StdVideoH265HrdParameters) {
881 .flags = (StdVideoH265HrdFlags) {
882 .nal_hrd_parameters_present_flag =
sps->vui.hrd_parameters.nal_hrd_parameters_present_flag,
883 .vcl_hrd_parameters_present_flag =
sps->vui.hrd_parameters.vcl_hrd_parameters_present_flag,
884 .sub_pic_hrd_params_present_flag =
sps->vui.hrd_parameters.sub_pic_hrd_params_present_flag,
885 .sub_pic_cpb_params_in_pic_timing_sei_flag =
sps->vui.hrd_parameters.sub_pic_cpb_params_in_pic_timing_sei_flag,
886 .fixed_pic_rate_general_flag = 0x0,
887 .fixed_pic_rate_within_cvs_flag = 0x0,
888 .low_delay_hrd_flag = 0x0,
890 .tick_divisor_minus2 =
sps->vui.hrd_parameters.tick_divisor_minus2,
891 .du_cpb_removal_delay_increment_length_minus1 =
sps->vui.hrd_parameters.du_cpb_removal_delay_increment_length_minus1,
892 .dpb_output_delay_du_length_minus1 =
sps->vui.hrd_parameters.dpb_output_delay_du_length_minus1,
893 .bit_rate_scale =
sps->vui.hrd_parameters.bit_rate_scale,
894 .cpb_size_scale =
sps->vui.hrd_parameters.cpb_size_scale,
895 .cpb_size_du_scale =
sps->vui.hrd_parameters.cpb_size_du_scale,
896 .initial_cpb_removal_delay_length_minus1 =
sps->vui.hrd_parameters.initial_cpb_removal_delay_length_minus1,
897 .au_cpb_removal_delay_length_minus1 =
sps->vui.hrd_parameters.au_cpb_removal_delay_length_minus1,
898 .dpb_output_delay_length_minus1 =
sps->vui.hrd_parameters.dpb_output_delay_length_minus1,
900 .pSubLayerHrdParametersNal = slhdrnal,
901 .pSubLayerHrdParametersVcl = slhdrvcl,
905 vui_header_sps->flags.fixed_pic_rate_general_flag |=
sps->vui.hrd_parameters.fixed_pic_rate_general_flag[
i] <<
i;
906 vui_header_sps->flags.fixed_pic_rate_within_cvs_flag |=
sps->vui.hrd_parameters.fixed_pic_rate_within_cvs_flag[
i] <<
i;
907 vui_header_sps->flags.low_delay_hrd_flag |=
sps->vui.hrd_parameters.low_delay_hrd_flag[
i] <<
i;
910 for (
int i = 0;
i < STD_VIDEO_H265_SUBLAYERS_LIST_SIZE;
i++) {
911 dpbm_sps->max_latency_increase_plus1[
i] =
sps->sps_max_latency_increase_plus1[
i];
912 dpbm_sps->max_dec_pic_buffering_minus1[
i] =
sps->sps_max_dec_pic_buffering_minus1[
i];
913 dpbm_sps->max_num_reorder_pics[
i] =
sps->sps_max_num_reorder_pics[
i];
916 *ptl_sps = (StdVideoH265ProfileTierLevel) {
917 .flags = (StdVideoH265ProfileTierLevelFlags) {
918 .general_tier_flag =
sps->profile_tier_level.general_tier_flag,
919 .general_progressive_source_flag =
sps->profile_tier_level.general_progressive_source_flag,
920 .general_interlaced_source_flag =
sps->profile_tier_level.general_interlaced_source_flag,
921 .general_non_packed_constraint_flag =
sps->profile_tier_level.general_non_packed_constraint_flag,
922 .general_frame_only_constraint_flag =
sps->profile_tier_level.general_frame_only_constraint_flag,
928 for (
int i = 0;
i < STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS;
i++) {
931 str[
i] = (StdVideoH265ShortTermRefPicSet) {
932 .flags = (StdVideoH265ShortTermRefPicSetFlags) {
937 .use_delta_flag = 0x0,
939 .used_by_curr_pic_flag = 0x0,
940 .used_by_curr_pic_s0_flag = 0x0,
941 .used_by_curr_pic_s1_flag = 0x0,
959 ltr->used_by_curr_pic_lt_sps_flag = 0;
960 for (
int i = 0;
i < STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS;
i++) {
961 ltr->used_by_curr_pic_lt_sps_flag |=
sps->lt_ref_pic_poc_lsb_sps[
i] <<
i;
962 ltr->lt_ref_pic_poc_lsb_sps[
i] =
sps->lt_ref_pic_poc_lsb_sps[
i];
965 *vksps = (StdVideoH265SequenceParameterSet) {
966 .flags = (StdVideoH265SpsFlags) {
967 .sps_temporal_id_nesting_flag =
sps->sps_temporal_id_nesting_flag,
968 .separate_colour_plane_flag =
sps->separate_colour_plane_flag,
969 .conformance_window_flag =
sps->conformance_window_flag,
970 .sps_sub_layer_ordering_info_present_flag =
sps->sps_sub_layer_ordering_info_present_flag,
971 .scaling_list_enabled_flag =
sps->scaling_list_enabled_flag,
972 .sps_scaling_list_data_present_flag =
sps->sps_scaling_list_data_present_flag,
973 .amp_enabled_flag =
sps->amp_enabled_flag,
974 .sample_adaptive_offset_enabled_flag =
sps->sample_adaptive_offset_enabled_flag,
975 .pcm_enabled_flag =
sps->pcm_enabled_flag,
976 .pcm_loop_filter_disabled_flag =
sps->pcm_loop_filter_disabled_flag,
977 .long_term_ref_pics_present_flag =
sps->long_term_ref_pics_present_flag,
978 .sps_temporal_mvp_enabled_flag =
sps->sps_temporal_mvp_enabled_flag,
979 .strong_intra_smoothing_enabled_flag =
sps->strong_intra_smoothing_enabled_flag,
980 .vui_parameters_present_flag =
sps->vui_parameters_present_flag,
981 .sps_extension_present_flag =
sps->sps_extension_present_flag,
982 .sps_range_extension_flag =
sps->sps_range_extension_flag,
983 .transform_skip_rotation_enabled_flag =
sps->transform_skip_rotation_enabled_flag,
984 .transform_skip_context_enabled_flag =
sps->transform_skip_context_enabled_flag,
985 .implicit_rdpcm_enabled_flag =
sps->implicit_rdpcm_enabled_flag,
986 .explicit_rdpcm_enabled_flag =
sps->explicit_rdpcm_enabled_flag,
987 .extended_precision_processing_flag =
sps->extended_precision_processing_flag,
988 .intra_smoothing_disabled_flag =
sps->intra_smoothing_disabled_flag,
989 .high_precision_offsets_enabled_flag =
sps->high_precision_offsets_enabled_flag,
990 .persistent_rice_adaptation_enabled_flag =
sps->persistent_rice_adaptation_enabled_flag,
991 .cabac_bypass_alignment_enabled_flag =
sps->cabac_bypass_alignment_enabled_flag,
992 .sps_scc_extension_flag =
sps->sps_scc_extension_flag,
993 .sps_curr_pic_ref_enabled_flag =
sps->sps_curr_pic_ref_enabled_flag,
994 .palette_mode_enabled_flag =
sps->palette_mode_enabled_flag,
995 .sps_palette_predictor_initializers_present_flag =
sps->sps_palette_predictor_initializer_present_flag,
996 .intra_boundary_filtering_disabled_flag =
sps->intra_boundary_filtering_disable_flag,
998 .chroma_format_idc =
sps->chroma_format_idc,
999 .pic_width_in_luma_samples =
sps->pic_width_in_luma_samples,
1000 .pic_height_in_luma_samples =
sps->pic_height_in_luma_samples,
1001 .sps_video_parameter_set_id =
sps->sps_video_parameter_set_id,
1002 .sps_max_sub_layers_minus1 =
sps->sps_max_sub_layers_minus1,
1003 .sps_seq_parameter_set_id =
sps->sps_seq_parameter_set_id,
1004 .bit_depth_luma_minus8 =
sps->bit_depth_luma_minus8,
1005 .bit_depth_chroma_minus8 =
sps->bit_depth_chroma_minus8,
1006 .log2_max_pic_order_cnt_lsb_minus4 =
sps->log2_max_pic_order_cnt_lsb_minus4,
1007 .log2_min_luma_coding_block_size_minus3 =
sps->log2_min_luma_coding_block_size_minus3,
1008 .log2_diff_max_min_luma_coding_block_size =
sps->log2_diff_max_min_luma_coding_block_size,
1009 .log2_min_luma_transform_block_size_minus2 =
sps->log2_min_luma_transform_block_size_minus2,
1010 .log2_diff_max_min_luma_transform_block_size =
sps->log2_diff_max_min_luma_transform_block_size,
1011 .max_transform_hierarchy_depth_inter =
sps->max_transform_hierarchy_depth_inter,
1012 .max_transform_hierarchy_depth_intra =
sps->max_transform_hierarchy_depth_intra,
1013 .num_short_term_ref_pic_sets =
sps->num_short_term_ref_pic_sets,
1014 .num_long_term_ref_pics_sps =
sps->num_long_term_ref_pics_sps,
1015 .pcm_sample_bit_depth_luma_minus1 =
sps->pcm_sample_bit_depth_luma_minus1,
1016 .pcm_sample_bit_depth_chroma_minus1 =
sps->pcm_sample_bit_depth_chroma_minus1,
1017 .log2_min_pcm_luma_coding_block_size_minus3 =
sps->log2_min_pcm_luma_coding_block_size_minus3,
1018 .log2_diff_max_min_pcm_luma_coding_block_size =
sps->log2_diff_max_min_pcm_luma_coding_block_size,
1021 .palette_max_size =
sps->palette_max_size,
1022 .delta_palette_max_predictor_size =
sps->delta_palette_max_predictor_size,
1023 .motion_vector_resolution_control_idc =
sps->motion_vector_resolution_control_idc,
1024 .sps_num_palette_predictor_initializers_minus1 =
sps->sps_num_palette_predictor_initializer_minus1,
1025 .conf_win_left_offset =
sps->conf_win_left_offset,
1026 .conf_win_right_offset =
sps->conf_win_right_offset,
1027 .conf_win_top_offset =
sps->conf_win_top_offset,
1028 .conf_win_bottom_offset =
sps->conf_win_bottom_offset,
1029 .pProfileTierLevel = ptl_sps,
1030 .pDecPicBufMgr = dpbm_sps,
1031 .pScalingLists =
NULL,
1032 .pShortTermRefPicSet = str,
1033 .pLongTermRefPicsSps = ltr,
1034 .pSequenceParameterSetVui = vui_sps,
1035 .pPredictorPaletteEntries =
NULL,
1039 *vkpps = (StdVideoH265PictureParameterSet) {
1040 .flags = (StdVideoH265PpsFlags) {
1041 .dependent_slice_segments_enabled_flag =
pps->dependent_slice_segments_enabled_flag,
1042 .output_flag_present_flag =
pps->output_flag_present_flag,
1043 .sign_data_hiding_enabled_flag =
pps->sign_data_hiding_enabled_flag,
1044 .cabac_init_present_flag =
pps->cabac_init_present_flag,
1045 .constrained_intra_pred_flag =
pps->constrained_intra_pred_flag,
1046 .transform_skip_enabled_flag =
pps->transform_skip_enabled_flag,
1047 .cu_qp_delta_enabled_flag =
pps->cu_qp_delta_enabled_flag,
1048 .pps_slice_chroma_qp_offsets_present_flag =
pps->pps_slice_chroma_qp_offsets_present_flag,
1049 .weighted_pred_flag =
pps->weighted_pred_flag,
1050 .weighted_bipred_flag =
pps->weighted_bipred_flag,
1051 .transquant_bypass_enabled_flag =
pps->transquant_bypass_enabled_flag,
1052 .tiles_enabled_flag =
pps->tiles_enabled_flag,
1053 .entropy_coding_sync_enabled_flag =
pps->entropy_coding_sync_enabled_flag,
1054 .uniform_spacing_flag =
pps->uniform_spacing_flag,
1055 .loop_filter_across_tiles_enabled_flag =
pps->loop_filter_across_tiles_enabled_flag,
1056 .pps_loop_filter_across_slices_enabled_flag =
pps->pps_loop_filter_across_slices_enabled_flag,
1057 .deblocking_filter_control_present_flag =
pps->deblocking_filter_control_present_flag,
1058 .deblocking_filter_override_enabled_flag =
pps->deblocking_filter_override_enabled_flag,
1059 .pps_deblocking_filter_disabled_flag =
pps->pps_deblocking_filter_disabled_flag,
1060 .pps_scaling_list_data_present_flag =
pps->pps_scaling_list_data_present_flag,
1061 .lists_modification_present_flag =
pps->lists_modification_present_flag,
1062 .slice_segment_header_extension_present_flag =
pps->slice_segment_header_extension_present_flag,
1063 .pps_extension_present_flag =
pps->pps_extension_present_flag,
1064 .cross_component_prediction_enabled_flag =
pps->cross_component_prediction_enabled_flag,
1065 .chroma_qp_offset_list_enabled_flag =
pps->chroma_qp_offset_list_enabled_flag,
1066 .pps_curr_pic_ref_enabled_flag =
pps->pps_curr_pic_ref_enabled_flag,
1067 .residual_adaptive_colour_transform_enabled_flag =
pps->residual_adaptive_colour_transform_enabled_flag,
1068 .pps_slice_act_qp_offsets_present_flag =
pps->pps_slice_act_qp_offsets_present_flag,
1069 .pps_palette_predictor_initializers_present_flag =
pps->pps_palette_predictor_initializer_present_flag,
1070 .monochrome_palette_flag =
pps->monochrome_palette_flag,
1071 .pps_range_extension_flag =
pps->pps_range_extension_flag,
1073 .pps_pic_parameter_set_id =
pps->pps_pic_parameter_set_id,
1074 .pps_seq_parameter_set_id =
pps->pps_seq_parameter_set_id,
1075 .sps_video_parameter_set_id =
sps->sps_video_parameter_set_id,
1076 .num_extra_slice_header_bits =
pps->num_extra_slice_header_bits,
1077 .num_ref_idx_l0_default_active_minus1 =
pps->num_ref_idx_l0_default_active_minus1,
1078 .num_ref_idx_l1_default_active_minus1 =
pps->num_ref_idx_l1_default_active_minus1,
1079 .init_qp_minus26 =
pps->init_qp_minus26,
1080 .diff_cu_qp_delta_depth =
pps->diff_cu_qp_delta_depth,
1081 .pps_cb_qp_offset =
pps->pps_cb_qp_offset,
1082 .pps_cr_qp_offset =
pps->pps_cr_qp_offset,
1083 .pps_beta_offset_div2 =
pps->pps_beta_offset_div2,
1084 .pps_tc_offset_div2 =
pps->pps_tc_offset_div2,
1085 .log2_parallel_merge_level_minus2 =
pps->log2_parallel_merge_level_minus2,
1086 .log2_max_transform_skip_block_size_minus2 =
pps->log2_max_transform_skip_block_size_minus2,
1087 .diff_cu_chroma_qp_offset_depth =
pps->diff_cu_chroma_qp_offset_depth,
1088 .chroma_qp_offset_list_len_minus1 =
pps->chroma_qp_offset_list_len_minus1,
1089 .log2_sao_offset_scale_luma =
pps->log2_sao_offset_scale_luma,
1090 .log2_sao_offset_scale_chroma =
pps->log2_sao_offset_scale_chroma,
1091 .pps_act_y_qp_offset_plus5 =
pps->pps_act_y_qp_offset_plus5,
1092 .pps_act_cb_qp_offset_plus5 =
pps->pps_act_cb_qp_offset_plus5,
1093 .pps_act_cr_qp_offset_plus3 =
pps->pps_act_cr_qp_offset_plus3,
1094 .pps_num_palette_predictor_initializers =
pps->pps_num_palette_predictor_initializer,
1095 .luma_bit_depth_entry_minus8 =
pps->luma_bit_depth_entry_minus8,
1096 .chroma_bit_depth_entry_minus8 =
pps->chroma_bit_depth_entry_minus8,
1097 .num_tile_columns_minus1 =
pps->num_tile_columns_minus1,
1098 .num_tile_rows_minus1 =
pps->num_tile_rows_minus1,
1099 .pScalingLists =
NULL,
1100 .pPredictorPaletteEntries =
NULL,
1103 for (
int i = 0;
i <
pps->num_tile_columns_minus1;
i++)
1104 vkpps->column_width_minus1[
i] =
pps->column_width_minus1[
i];
1106 for (
int i = 0;
i <
pps->num_tile_rows_minus1;
i++)
1107 vkpps->row_height_minus1[
i] =
pps->row_height_minus1[
i];
1109 for (
int i = 0;
i <=
pps->chroma_qp_offset_list_len_minus1;
i++) {
1110 vkpps->cb_qp_offset_list[
i] =
pps->cb_qp_offset_list[
i];
1111 vkpps->cr_qp_offset_list[
i] =
pps->cr_qp_offset_list[
i];
1115 for (
int i = 0;
i < STD_VIDEO_H265_SUBLAYERS_LIST_SIZE;
i++) {
1116 dpbm_vps->max_latency_increase_plus1[
i] =
vps->vps_max_latency_increase_plus1[
i];
1117 dpbm_vps->max_dec_pic_buffering_minus1[
i] =
vps->vps_max_dec_pic_buffering_minus1[
i];
1118 dpbm_vps->max_num_reorder_pics[
i] =
vps->vps_max_num_reorder_pics[
i];
1121 *ptl_vps = (StdVideoH265ProfileTierLevel) {
1122 .flags = (StdVideoH265ProfileTierLevelFlags) {
1123 .general_tier_flag =
vps->profile_tier_level.general_tier_flag,
1124 .general_progressive_source_flag =
vps->profile_tier_level.general_progressive_source_flag,
1125 .general_interlaced_source_flag =
vps->profile_tier_level.general_interlaced_source_flag,
1126 .general_non_packed_constraint_flag =
vps->profile_tier_level.general_non_packed_constraint_flag,
1127 .general_frame_only_constraint_flag =
vps->profile_tier_level.general_frame_only_constraint_flag,
1133 *vkvps = (StdVideoH265VideoParameterSet) {
1134 .flags = (StdVideoH265VpsFlags) {
1135 .vps_temporal_id_nesting_flag =
vps->vps_temporal_id_nesting_flag,
1136 .vps_sub_layer_ordering_info_present_flag =
vps->vps_sub_layer_ordering_info_present_flag,
1137 .vps_timing_info_present_flag =
vps->vps_timing_info_present_flag,
1138 .vps_poc_proportional_to_timing_flag =
vps->vps_poc_proportional_to_timing_flag,
1140 .vps_video_parameter_set_id =
vps->vps_video_parameter_set_id,
1141 .vps_max_sub_layers_minus1 =
vps->vps_max_sub_layers_minus1,
1144 .vps_num_units_in_tick =
vps->vps_num_units_in_tick,
1145 .vps_time_scale =
vps->vps_time_scale,
1146 .vps_num_ticks_poc_diff_one_minus1 =
vps->vps_num_ticks_poc_diff_one_minus1,
1148 .pDecPicBufMgr = dpbm_vps,
1149 .pHrdParameters = vui_header_vps,
1150 .pProfileTierLevel = ptl_vps,