• Home
  • Raw
  • Download

Lines Matching refs:sps

668 H264Parser::Result H264Parser::ParseSPSScalingLists(H264SPS* sps) {  in ParseSPSScalingLists()  argument
679 res = ParseScalingList(arraysize(sps->scaling_list4x4[i]), in ParseSPSScalingLists()
680 sps->scaling_list4x4[i], &use_default); in ParseSPSScalingLists()
685 DefaultScalingList4x4(i, sps->scaling_list4x4); in ParseSPSScalingLists()
689 sps->scaling_list4x4); in ParseSPSScalingLists()
694 for (int i = 0; i < ((sps->chroma_format_idc != 3) ? 2 : 6); ++i) { in ParseSPSScalingLists()
698 res = ParseScalingList(arraysize(sps->scaling_list8x8[i]), in ParseSPSScalingLists()
699 sps->scaling_list8x8[i], &use_default); in ParseSPSScalingLists()
704 DefaultScalingList8x8(i, sps->scaling_list8x8); in ParseSPSScalingLists()
708 sps->scaling_list8x8); in ParseSPSScalingLists()
715 H264Parser::Result H264Parser::ParsePPSScalingLists(const H264SPS& sps, in ParsePPSScalingLists() argument
735 if (!sps.seq_scaling_matrix_present_flag) { in ParsePPSScalingLists()
741 FallbackScalingList4x4(i, sps.scaling_list4x4[0], in ParsePPSScalingLists()
742 sps.scaling_list4x4[3], pps->scaling_list4x4); in ParsePPSScalingLists()
748 for (int i = 0; i < ((sps.chroma_format_idc != 3) ? 2 : 6); ++i) { in ParsePPSScalingLists()
761 if (!sps.seq_scaling_matrix_present_flag) { in ParsePPSScalingLists()
767 FallbackScalingList8x8(i, sps.scaling_list8x8[0], in ParsePPSScalingLists()
768 sps.scaling_list8x8[1], pps->scaling_list8x8); in ParsePPSScalingLists()
799 H264Parser::Result H264Parser::ParseVUIParameters(H264SPS* sps) { in ParseVUIParameters() argument
806 READ_BITS_OR_RETURN(16, &sps->sar_width); in ParseVUIParameters()
807 READ_BITS_OR_RETURN(16, &sps->sar_height); in ParseVUIParameters()
811 sps->sar_width = kTableSarWidth[aspect_ratio_idc]; in ParseVUIParameters()
812 sps->sar_height = kTableSarHeight[aspect_ratio_idc]; in ParseVUIParameters()
822 READ_BOOL_OR_RETURN(&sps->video_signal_type_present_flag); in ParseVUIParameters()
823 if (sps->video_signal_type_present_flag) { in ParseVUIParameters()
824 READ_BITS_OR_RETURN(3, &sps->video_format); in ParseVUIParameters()
825 READ_BOOL_OR_RETURN(&sps->video_full_range_flag); in ParseVUIParameters()
826 READ_BOOL_OR_RETURN(&sps->colour_description_present_flag); in ParseVUIParameters()
827 if (sps->colour_description_present_flag) { in ParseVUIParameters()
829 READ_BITS_OR_RETURN(8, &sps->colour_primaries); in ParseVUIParameters()
830 READ_BITS_OR_RETURN(8, &sps->transfer_characteristics); in ParseVUIParameters()
831 READ_BITS_OR_RETURN(8, &sps->matrix_coefficients); in ParseVUIParameters()
866 READ_BOOL_OR_RETURN(&sps->bitstream_restriction_flag); in ParseVUIParameters()
867 if (sps->bitstream_restriction_flag) { in ParseVUIParameters()
873 READ_UE_OR_RETURN(&sps->max_num_reorder_frames); in ParseVUIParameters()
874 READ_UE_OR_RETURN(&sps->max_dec_frame_buffering); in ParseVUIParameters()
875 TRUE_OR_RETURN(sps->max_dec_frame_buffering >= sps->max_num_ref_frames); in ParseVUIParameters()
876 IN_RANGE_OR_RETURN(sps->max_num_reorder_frames, 0, in ParseVUIParameters()
877 sps->max_dec_frame_buffering); in ParseVUIParameters()
883 static void FillDefaultSeqScalingLists(H264SPS* sps) { in FillDefaultSeqScalingLists() argument
886 sps->scaling_list4x4[i][j] = 16; in FillDefaultSeqScalingLists()
890 sps->scaling_list8x8[i][j] = 16; in FillDefaultSeqScalingLists()
900 std::unique_ptr<H264SPS> sps(new H264SPS()); in ParseSPS() local
902 READ_BITS_OR_RETURN(8, &sps->profile_idc); in ParseSPS()
903 READ_BOOL_OR_RETURN(&sps->constraint_set0_flag); in ParseSPS()
904 READ_BOOL_OR_RETURN(&sps->constraint_set1_flag); in ParseSPS()
905 READ_BOOL_OR_RETURN(&sps->constraint_set2_flag); in ParseSPS()
906 READ_BOOL_OR_RETURN(&sps->constraint_set3_flag); in ParseSPS()
907 READ_BOOL_OR_RETURN(&sps->constraint_set4_flag); in ParseSPS()
908 READ_BOOL_OR_RETURN(&sps->constraint_set5_flag); in ParseSPS()
910 READ_BITS_OR_RETURN(8, &sps->level_idc); in ParseSPS()
911 READ_UE_OR_RETURN(&sps->seq_parameter_set_id); in ParseSPS()
912 TRUE_OR_RETURN(sps->seq_parameter_set_id < 32); in ParseSPS()
914 if (sps->profile_idc == 100 || sps->profile_idc == 110 || in ParseSPS()
915 sps->profile_idc == 122 || sps->profile_idc == 244 || in ParseSPS()
916 sps->profile_idc == 44 || sps->profile_idc == 83 || in ParseSPS()
917 sps->profile_idc == 86 || sps->profile_idc == 118 || in ParseSPS()
918 sps->profile_idc == 128) { in ParseSPS()
919 READ_UE_OR_RETURN(&sps->chroma_format_idc); in ParseSPS()
920 TRUE_OR_RETURN(sps->chroma_format_idc < 4); in ParseSPS()
922 if (sps->chroma_format_idc == 3) in ParseSPS()
923 READ_BOOL_OR_RETURN(&sps->separate_colour_plane_flag); in ParseSPS()
925 READ_UE_OR_RETURN(&sps->bit_depth_luma_minus8); in ParseSPS()
926 TRUE_OR_RETURN(sps->bit_depth_luma_minus8 < 7); in ParseSPS()
928 READ_UE_OR_RETURN(&sps->bit_depth_chroma_minus8); in ParseSPS()
929 TRUE_OR_RETURN(sps->bit_depth_chroma_minus8 < 7); in ParseSPS()
931 READ_BOOL_OR_RETURN(&sps->qpprime_y_zero_transform_bypass_flag); in ParseSPS()
932 READ_BOOL_OR_RETURN(&sps->seq_scaling_matrix_present_flag); in ParseSPS()
934 if (sps->seq_scaling_matrix_present_flag) { in ParseSPS()
936 res = ParseSPSScalingLists(sps.get()); in ParseSPS()
940 FillDefaultSeqScalingLists(sps.get()); in ParseSPS()
943 sps->chroma_format_idc = 1; in ParseSPS()
944 FillDefaultSeqScalingLists(sps.get()); in ParseSPS()
947 if (sps->separate_colour_plane_flag) in ParseSPS()
948 sps->chroma_array_type = 0; in ParseSPS()
950 sps->chroma_array_type = sps->chroma_format_idc; in ParseSPS()
952 READ_UE_OR_RETURN(&sps->log2_max_frame_num_minus4); in ParseSPS()
953 TRUE_OR_RETURN(sps->log2_max_frame_num_minus4 < 13); in ParseSPS()
955 READ_UE_OR_RETURN(&sps->pic_order_cnt_type); in ParseSPS()
956 TRUE_OR_RETURN(sps->pic_order_cnt_type < 3); in ParseSPS()
958 if (sps->pic_order_cnt_type == 0) { in ParseSPS()
959 READ_UE_OR_RETURN(&sps->log2_max_pic_order_cnt_lsb_minus4); in ParseSPS()
960 TRUE_OR_RETURN(sps->log2_max_pic_order_cnt_lsb_minus4 < 13); in ParseSPS()
961 sps->expected_delta_per_pic_order_cnt_cycle = 0; in ParseSPS()
962 } else if (sps->pic_order_cnt_type == 1) { in ParseSPS()
963 READ_BOOL_OR_RETURN(&sps->delta_pic_order_always_zero_flag); in ParseSPS()
964 READ_SE_OR_RETURN(&sps->offset_for_non_ref_pic); in ParseSPS()
965 READ_SE_OR_RETURN(&sps->offset_for_top_to_bottom_field); in ParseSPS()
966 READ_UE_OR_RETURN(&sps->num_ref_frames_in_pic_order_cnt_cycle); in ParseSPS()
967 TRUE_OR_RETURN(sps->num_ref_frames_in_pic_order_cnt_cycle < 255); in ParseSPS()
970 for (int i = 0; i < sps->num_ref_frames_in_pic_order_cnt_cycle; ++i) { in ParseSPS()
971 READ_SE_OR_RETURN(&sps->offset_for_ref_frame[i]); in ParseSPS()
972 offset_acc += sps->offset_for_ref_frame[i]; in ParseSPS()
976 sps->expected_delta_per_pic_order_cnt_cycle = offset_acc.ValueOrDefault(0); in ParseSPS()
979 READ_UE_OR_RETURN(&sps->max_num_ref_frames); in ParseSPS()
980 READ_BOOL_OR_RETURN(&sps->gaps_in_frame_num_value_allowed_flag); in ParseSPS()
982 READ_UE_OR_RETURN(&sps->pic_width_in_mbs_minus1); in ParseSPS()
983 READ_UE_OR_RETURN(&sps->pic_height_in_map_units_minus1); in ParseSPS()
985 READ_BOOL_OR_RETURN(&sps->frame_mbs_only_flag); in ParseSPS()
986 if (!sps->frame_mbs_only_flag) in ParseSPS()
987 READ_BOOL_OR_RETURN(&sps->mb_adaptive_frame_field_flag); in ParseSPS()
989 READ_BOOL_OR_RETURN(&sps->direct_8x8_inference_flag); in ParseSPS()
991 READ_BOOL_OR_RETURN(&sps->frame_cropping_flag); in ParseSPS()
992 if (sps->frame_cropping_flag) { in ParseSPS()
993 READ_UE_OR_RETURN(&sps->frame_crop_left_offset); in ParseSPS()
994 READ_UE_OR_RETURN(&sps->frame_crop_right_offset); in ParseSPS()
995 READ_UE_OR_RETURN(&sps->frame_crop_top_offset); in ParseSPS()
996 READ_UE_OR_RETURN(&sps->frame_crop_bottom_offset); in ParseSPS()
999 READ_BOOL_OR_RETURN(&sps->vui_parameters_present_flag); in ParseSPS()
1000 if (sps->vui_parameters_present_flag) { in ParseSPS()
1002 res = ParseVUIParameters(sps.get()); in ParseSPS()
1008 *sps_id = sps->seq_parameter_set_id; in ParseSPS()
1009 active_SPSes_[*sps_id] = std::move(sps); in ParseSPS()
1016 const H264SPS* sps; in ParsePPS() local
1032 sps = GetSPS(pps->seq_parameter_set_id); in ParsePPS()
1033 TRUE_OR_RETURN(sps); in ParsePPS()
1074 res = ParsePPSScalingLists(*sps, pps.get()); in ParsePPS()
1203 H264Parser::Result H264Parser::ParsePredWeightTable(const H264SPS& sps, in ParsePredWeightTable() argument
1208 if (sps.chroma_array_type != 0) in ParsePredWeightTable()
1213 shdr->num_ref_idx_l0_active_minus1, sps.chroma_array_type, in ParsePredWeightTable()
1221 shdr->num_ref_idx_l1_active_minus1, sps.chroma_array_type, in ParsePredWeightTable()
1282 const H264SPS* sps; in ParseSliceHeader() local
1302 sps = GetSPS(pps->seq_parameter_set_id); in ParseSliceHeader()
1303 TRUE_OR_RETURN(sps); in ParseSliceHeader()
1305 if (sps->separate_colour_plane_flag) { in ParseSliceHeader()
1310 READ_BITS_OR_RETURN(sps->log2_max_frame_num_minus4 + 4, &shdr->frame_num); in ParseSliceHeader()
1311 if (!sps->frame_mbs_only_flag) { in ParseSliceHeader()
1323 if (sps->pic_order_cnt_type == 0) { in ParseSliceHeader()
1324 READ_BITS_OR_RETURN(sps->log2_max_pic_order_cnt_lsb_minus4 + 4, in ParseSliceHeader()
1331 if (sps->pic_order_cnt_type == 1 && !sps->delta_pic_order_always_zero_flag) { in ParseSliceHeader()
1382 res = ParsePredWeightTable(*sps, shdr); in ParseSliceHeader()