diff mbox series

[FFmpeg-devel,v2,2/2] lavc/hevcdec: Update slice index before use it to construct slice RPL

Message ID 20240619022722.1054455-2-fei.w.wang@intel.com
State New
Headers show
Series [FFmpeg-devel,v2,1/2] lavc/hevcdec: Put slice address checking after hwaccel decode slice | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Wang, Fei W June 19, 2024, 2:27 a.m. UTC
From: Fei Wang <fei.w.wang@intel.com>

Fixes regression from 47d34ba7fbb81

Signed-off-by: Fei Wang <fei.w.wang@intel.com>
---
 libavcodec/hevc/hevcdec.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Anton Khirnov June 21, 2024, 8:48 a.m. UTC | #1
Quoting fei.w.wang-at-intel.com@ffmpeg.org (2024-06-19 04:27:22)
> From: Fei Wang <fei.w.wang@intel.com>
> 
> Fixes regression from 47d34ba7fbb81

"fix bug" is not a meaningful description of the problem
Wang, Fei W June 24, 2024, 6:28 a.m. UTC | #2
On Fri, 2024-06-21 at 10:48 +0200, Anton Khirnov wrote:
> Quoting fei.w.wang-at-intel.com@ffmpeg.org (2024-06-19 04:27:22)
> > From: Fei Wang <fei.w.wang@intel.com>
> > 
> > Fixes regression from 47d34ba7fbb81
> 
> "fix bug" is not a meaningful description of the problem

Added more explanation in V3. Thanks.

Fei

>
diff mbox series

Patch

diff --git a/libavcodec/hevc/hevcdec.c b/libavcodec/hevc/hevcdec.c
index 39beb7e4dc..8bb564f1b3 100644
--- a/libavcodec/hevc/hevcdec.c
+++ b/libavcodec/hevc/hevcdec.c
@@ -2770,6 +2770,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) {
@@ -2807,8 +2810,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)