MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / hvcc_parse_pps

Function hvcc_parse_pps

libavformat/hevc.c:769–824  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

767}
768
769static int hvcc_parse_pps(GetBitContext *gb, HVCCNALUnit *nal,
770 HEVCDecoderConfigurationRecord *hvcc)
771{
772 uint8_t tiles_enabled_flag, entropy_coding_sync_enabled_flag;
773
774 nal->parameter_set_id = get_ue_golomb_long(gb); // pps_pic_parameter_set_id
775 get_ue_golomb_long(gb); // pps_seq_parameter_set_id
776
777 /*
778 * dependent_slice_segments_enabled_flag u(1)
779 * output_flag_present_flag u(1)
780 * num_extra_slice_header_bits u(3)
781 * sign_data_hiding_enabled_flag u(1)
782 * cabac_init_present_flag u(1)
783 */
784 skip_bits(gb, 7);
785
786 get_ue_golomb_long(gb); // num_ref_idx_l0_default_active_minus1
787 get_ue_golomb_long(gb); // num_ref_idx_l1_default_active_minus1
788 get_se_golomb_long(gb); // init_qp_minus26
789
790 /*
791 * constrained_intra_pred_flag u(1)
792 * transform_skip_enabled_flag u(1)
793 */
794 skip_bits(gb, 2);
795
796 if (get_bits1(gb)) // cu_qp_delta_enabled_flag
797 get_ue_golomb_long(gb); // diff_cu_qp_delta_depth
798
799 get_se_golomb_long(gb); // pps_cb_qp_offset
800 get_se_golomb_long(gb); // pps_cr_qp_offset
801
802 /*
803 * pps_slice_chroma_qp_offsets_present_flag u(1)
804 * weighted_pred_flag u(1)
805 * weighted_bipred_flag u(1)
806 * transquant_bypass_enabled_flag u(1)
807 */
808 skip_bits(gb, 4);
809
810 tiles_enabled_flag = get_bits1(gb);
811 entropy_coding_sync_enabled_flag = get_bits1(gb);
812
813 if (entropy_coding_sync_enabled_flag && tiles_enabled_flag)
814 hvcc->parallelismType = 0; // mixed-type parallel decoding
815 else if (entropy_coding_sync_enabled_flag)
816 hvcc->parallelismType = 3; // wavefront-based parallel decoding
817 else if (tiles_enabled_flag)
818 hvcc->parallelismType = 2; // tile-based parallel decoding
819 else
820 hvcc->parallelismType = 1; // slice-based parallel decoding
821
822 /* nothing useful for hvcC past this point */
823 return 0;
824}
825
826static void nal_unit_parse_header(GetBitContext *gb, uint8_t *nal_type,

Callers 1

hvcc_add_nal_unitFunction · 0.85

Calls 4

get_ue_golomb_longFunction · 0.85
skip_bitsFunction · 0.85
get_se_golomb_longFunction · 0.85
get_bits1Function · 0.85

Tested by

no test coverage detected