[FFmpeg-cvslog] lavc/hevcdec: Update slice index before hwaccel decode slice
Fei Wang
git at videolan.org
Fri Jul 12 16:04:16 EEST 2024
ffmpeg | branch: master | Fei Wang <fei.w.wang at intel.com> | Mon Jun 24 14:23:31 2024 +0800| [71f802cdc9c290ab55f76cabbf872418a984b2ad] | committer: Fei Wang
lavc/hevcdec: Update slice index before hwaccel decode slice
Otherwise, slice index will never update for hwaccel decode, and slice
RPL will be always overlap into first one which use slice index to construct.
Fixes hwaccel decoding after 47d34ba7fbb81
Signed-off-by: Fei Wang <fei.w.wang at intel.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=71f802cdc9c290ab55f76cabbf872418a984b2ad
---
libavcodec/hevc/hevcdec.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libavcodec/hevc/hevcdec.c b/libavcodec/hevc/hevcdec.c
index 35e6daf858..0e4b26dad3 100644
--- a/libavcodec/hevc/hevcdec.c
+++ b/libavcodec/hevc/hevcdec.c
@@ -2765,6 +2765,9 @@ static int decode_slice_data(HEVCContext *s, const H2645NAL *nal, GetBitContext
const HEVCPPS *pps = s->pps;
int ret;
+ if (!s->sh.first_slice_in_pic_flag)
+ s->slice_idx += !s->sh.dependent_slice_segment_flag;
+
if (!s->sh.dependent_slice_segment_flag && s->sh.slice_type != HEVC_SLICE_I) {
ret = ff_hevc_slice_rpl(s);
if (ret < 0) {
@@ -2802,8 +2805,6 @@ static int decode_slice_data(HEVCContext *s, const H2645NAL *nal, GetBitContext
s->local_ctx[0].tu.cu_qp_offset_cb = 0;
s->local_ctx[0].tu.cu_qp_offset_cr = 0;
- s->slice_idx += !s->sh.dependent_slice_segment_flag;
-
if (s->avctx->active_thread_type == FF_THREAD_SLICE &&
s->sh.num_entry_point_offsets > 0 &&
pps->num_tile_rows == 1 && pps->num_tile_columns == 1)
More information about the ffmpeg-cvslog
mailing list