ffmpeg | branch: master | Anton Khirnov <an...@khirnov.net> | Mon Jun 3 10:21:42 2024 +0200| [82ded1ad3a79ad453e82ec317dc58dba91f900a0] | committer: Anton Khirnov
lavc/hevcdec: move sequence increment/IDR handling to hevc_frame_start() >From hls_slice_header(). It is only done once per frame, so that is a more appropriate place for this code. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=82ded1ad3a79ad453e82ec317dc58dba91f900a0 --- libavcodec/hevc/hevcdec.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavcodec/hevc/hevcdec.c b/libavcodec/hevc/hevcdec.c index 9abae3260d..b13e3e06a3 100644 --- a/libavcodec/hevc/hevcdec.c +++ b/libavcodec/hevc/hevcdec.c @@ -604,11 +604,6 @@ static int hls_slice_header(HEVCContext *s, GetBitContext *gb) return 1; // This slice will be skipped later, do not corrupt state } - if ((IS_IDR(s) || IS_BLA(s)) && sh->first_slice_in_pic_flag) { - s->seq_decode = (s->seq_decode + 1) & HEVC_SEQUENCE_COUNTER_MASK; - if (IS_IDR(s)) - ff_hevc_clear_refs(s); - } sh->no_output_of_prior_pics_flag = 0; if (IS_IRAP(s)) sh->no_output_of_prior_pics_flag = get_bits1(gb); @@ -2949,6 +2944,12 @@ static int hevc_frame_start(HEVCContext *s) memset(s->is_pcm, 0, (sps->min_pu_width + 1) * (sps->min_pu_height + 1)); memset(s->tab_slice_address, -1, pic_size_in_ctb * sizeof(*s->tab_slice_address)); + if ((IS_IDR(s) || IS_BLA(s))) { + s->seq_decode = (s->seq_decode + 1) & HEVC_SEQUENCE_COUNTER_MASK; + if (IS_IDR(s)) + ff_hevc_clear_refs(s); + } + s->is_decoded = 0; s->slice_idx = 0; s->first_nal_type = s->nal_unit_type; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".