aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFei Wang <fei.w.wang@intel.com>2024-06-24 14:23:31 +0800
committerFei Wang <fei.w.wang@intel.com>2024-07-12 16:27:34 +0800
commit71f802cdc9c290ab55f76cabbf872418a984b2ad (patch)
tree6fb9149bbd210c8f5bc31aefb5dc7c62bddee31c
parente741cf665d58a2c230906847b26650bb532f9d05 (diff)
downloadffmpeg-71f802cdc9c290ab55f76cabbf872418a984b2ad.tar.gz
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@intel.com>
-rw-r--r--libavcodec/hevc/hevcdec.c5
1 files 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)