MCPcopy Create free account
hub / github.com/Vanilagy/webcodecs-polyfill / skipStRefPicSet

Function skipStRefPicSet

src/codec_data.ts:671–718  ·  view source on GitHub ↗
(
	bitstream: Bitstream,
	stRpsIdx: number,
	num_short_term_ref_pic_sets: number,
	NumDeltaPocs: number[],
)

Source from the content-addressed store, hash-verified

669};
670
671const skipStRefPicSet = (
672 bitstream: Bitstream,
673 stRpsIdx: number,
674 num_short_term_ref_pic_sets: number,
675 NumDeltaPocs: number[],
676) => {
677 let NumDeltaPocsThis = 0;
678 let inter_ref_pic_set_prediction_flag = 0;
679 let RefRpsIdx = 0;
680
681 if (stRpsIdx !== 0) {
682 inter_ref_pic_set_prediction_flag = bitstream.readBits(1);
683 }
684 if (inter_ref_pic_set_prediction_flag) {
685 if (stRpsIdx === num_short_term_ref_pic_sets) {
686 const delta_idx_minus1 = readExpGolomb(bitstream);
687 RefRpsIdx = stRpsIdx - (delta_idx_minus1 + 1);
688 } else {
689 RefRpsIdx = stRpsIdx - 1;
690 }
691 bitstream.readBits(1); // delta_rps_sign
692 readExpGolomb(bitstream); // abs_delta_rps_minus1
693
694 // The number of iterations is NumDeltaPocs[RefRpsIdx] + 1
695 const numDelta = NumDeltaPocs[RefRpsIdx] ?? 0;
696 for (let j = 0; j <= numDelta; j++) {
697 const used_by_curr_pic_flag = bitstream.readBits(1);
698 if (!used_by_curr_pic_flag) {
699 bitstream.readBits(1); // use_delta_flag
700 }
701 }
702 NumDeltaPocsThis = NumDeltaPocs[RefRpsIdx]!;
703 } else {
704 const num_negative_pics = readExpGolomb(bitstream);
705 const num_positive_pics = readExpGolomb(bitstream);
706
707 for (let i = 0; i < num_negative_pics; i++) {
708 readExpGolomb(bitstream); // delta_poc_s0_minus1[i]
709 bitstream.readBits(1); // used_by_curr_pic_s0_flag[i]
710 }
711 for (let i = 0; i < num_positive_pics; i++) {
712 readExpGolomb(bitstream); // delta_poc_s1_minus1[i]
713 bitstream.readBits(1); // used_by_curr_pic_s1_flag[i]
714 }
715 NumDeltaPocsThis = num_negative_pics + num_positive_pics;
716 }
717 return NumDeltaPocsThis;
718};
719
720const parseVuiForMinSpatialSegmentationIdc = (bitstream: Bitstream, sps_max_sub_layers_minus1: number) => {
721 if (bitstream.readBits(1)) { // aspect_ratio_info_present_flag

Callers 1

skipAllStRefPicSetsFunction · 0.85

Calls 2

readExpGolombFunction · 0.85
readBitsMethod · 0.80

Tested by

no test coverage detected