1 | --- a/source/App/Parcat/parcat.cpp |
---|
2 | +++ b/source/App/Parcat/parcat.cpp |
---|
3 | @@ -220,6 +220,7 @@ std::vector<uint8_t> filter_segment(const std::vector<uint8_t> & v, int idx, int |
---|
4 | |
---|
5 | int bits_for_poc = 8; |
---|
6 | bool skip_next_sei = false; |
---|
7 | + bool skip_first_prefix_sei = idx > 1; |
---|
8 | bool change_poc = false; |
---|
9 | bool first_idr_slice_after_ph_nal = false; |
---|
10 | |
---|
11 | @@ -331,7 +332,7 @@ std::vector<uint8_t> filter_segment(const std::vector<uint8_t> & v, int idx, int |
---|
12 | } |
---|
13 | if ((idx > 1 && (nalu_type == NAL_UNIT_CODED_SLICE_IDR_W_RADL || nalu_type == NAL_UNIT_CODED_SLICE_IDR_N_LP)) |
---|
14 | || ((idx > 1 && !idr_found) && (nalu_type == NAL_UNIT_OPI || nalu_type == NAL_UNIT_DCI || nalu_type == NAL_UNIT_VPS || nalu_ty |
---|
15 | pe == NAL_UNIT_SPS || nalu_type == NAL_UNIT_PPS || nalu_type == NAL_UNIT_PREFIX_APS || nalu_type == NAL_UNIT_SUFFIX_APS || nalu_type |
---|
16 | == NAL_UNIT_PH || nalu_type == NAL_UNIT_ACCESS_UNIT_DELIMITER)) |
---|
17 | - || (nalu_type == NAL_UNIT_SUFFIX_SEI && skip_next_sei)) |
---|
18 | + || ((nalu_type == NAL_UNIT_SUFFIX_SEI) && skip_next_sei) || ((nalu_type == NAL_UNIT_PREFIX_SEI) && skip_first_prefix_sei)) |
---|
19 | { |
---|
20 | } |
---|
21 | else |
---|
22 | @@ -344,6 +345,10 @@ std::vector<uint8_t> filter_segment(const std::vector<uint8_t> & v, int idx, int |
---|
23 | { |
---|
24 | skip_next_sei = false; |
---|
25 | } |
---|
26 | + if(nalu_type == NAL_UNIT_PREFIX_SEI && skip_first_prefix_sei) |
---|
27 | + { |
---|
28 | + skip_first_prefix_sei = false; |
---|
29 | + } |
---|
30 | |
---|
31 | |
---|
32 | p += (nal_end - nal_start); |
---|
33 | |
---|