From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 97F0D4F1EC for ; Sun, 15 Jun 2025 17:02:53 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 93F6268D9D5; Sun, 15 Jun 2025 19:58:37 +0300 (EEST) Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 14D0B68D9AE for ; Sun, 15 Jun 2025 19:58:36 +0300 (EEST) Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-b2f1032e1c4so4018586a12.3 for ; Sun, 15 Jun 2025 09:58:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750006714; x=1750611514; darn=ffmpeg.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date :references:in-reply-to:message-id:from:from:to:cc:subject:date :message-id:reply-to; bh=FYODViR48V0zf/3xK8r6tIwC/JP3OBV1xYqtwUVqrvw=; b=F9IzgBfo3etObXGnkqc3a3gqHtjp9B5E5w0V2c1DsT1IhlQVjLfTKu5p5tYHNHuOEl hN5RDwzkhtShNx6yPt7vpX00Z4eTZyks/K3lzArGcJwEKSpNH789Mew7NPnzQFBbD2yK C40xKsfOt5PR6J4yacdf8jTogdiKSJLGU0SU+LSjmDen6ZC41bdoBQx/ZY+pk4yh+Cfp xEKfeucD+5OppGrOLbSyH13K/vuQVLxkekSmZVa859h880bq3SfrFx3DnsUFXC9l5bbM h+alOQnpLZg4S/+SsVR2An76prV6o09Z0Gm35wNUZkHwBVdKJnAb1GuVJf8pXC12qtuU 6e3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750006714; x=1750611514; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date :references:in-reply-to:message-id:from:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=FYODViR48V0zf/3xK8r6tIwC/JP3OBV1xYqtwUVqrvw=; b=tLzCXbQq1O4+39vly1M/quPWmkt/hfHV17iSFetfObIMcWjFvrhQnjol+JqxgDEuJ/ B3BirDdlXI5Tg/CWwHbErfO3E8wwG2TaB/AihJN7klKDlVOmcaNOFRUnWlo/m/9FtSbF GW2eERmTj9TOjh6veGLTd8EC1G7zJBM/YPtwHXmUbLwjvI8UlOZj+/VzhAkZsAaQbHZ8 /GyocqchAp3X0AenUNgqr/hZZ2c6J/Trc4ZmtJVcVMGgvCsMr+amJmoXBkwOJmN4XKyG jDXByYUQVy/lO1JqO+iwYJepQm5q7yrnTMQ/zENMW4sWiBbANshbxTkov9hCdSV0sFQv 5xjQ== X-Gm-Message-State: AOJu0YwjGTwbE6USl/cdudkIeWir+zRPSX/O6VJhoLSAtByLWE1luJvT ZNswzINrbL/YoDrkqPd56MUJ6kJdsJyx9uMfeBEJgOwHeHrighOViKNOeOjmwQ== X-Gm-Gg: ASbGncv6QfxkHZv77ezAYA4WGY0f2SdtipaE72oubZYSNa444xg94VZZRyDJ/rVd2LU VuDG/9MwpXH/JOA0Z9ZKvCtcn972m9aXEhnS1xWvodW07E8OTlqRPtsutKwxQpJXUPJPynwcmcT FhS+oWNnwmMZ2Dk2uIYBa83WkuoDGz2b/FlC24drAw8FlleyWst/zODOn0l7FM6ETQpYg2/r5ey 9H9e8D5cugqVZT+FWzyGoQv5BUBhFLUx5TwY2hg+iKX8vt5pTjECIQ+sUOFDX/wbyTBiLL2S6y7 xefvY2r089dWfYAprnOkgzflZumZw9Ly/ZVcgtEljnvo8fxfwwWU0A2DVn2OKOcG1Mhc6EeDR9Z g2GKLZxQEnity2lJ8 X-Google-Smtp-Source: AGHT+IFsHkESHeaofKzOnQp+wwgVAhyadG7dSccSWUvsuz04SLjXo+blTJOOCEkxd1hIqhqBfH3wKA== X-Received: by 2002:a05:6a20:9f8b:b0:1f5:9175:2596 with SMTP id adf61e73a8af0-21fbd4bbd1emr10055613637.13.1750006714209; Sun, 15 Jun 2025 09:58:34 -0700 (PDT) Received: from [127.0.0.1] (master.gitmailbox.com. [34.83.118.50]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b2fe1642dfdsm5226764a12.18.2025.06.15.09.58.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 15 Jun 2025 09:58:33 -0700 (PDT) From: Andreas Rheinhardt X-Google-Original-From: Andreas Rheinhardt Message-Id: In-Reply-To: References: Date: Sun, 15 Jun 2025 16:54:31 +0000 Fcc: Sent MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH 40/47] avcodec/mpegvideo: Only keep MpegEncContext.dc_val[0] X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Andreas Rheinhardt The chroma dc_val pointers are mostly unused (accesses use dc_val[0] and block_index), so remove them. Signed-off-by: Andreas Rheinhardt --- libavcodec/ituh263dec.c | 2 +- libavcodec/ituh263enc.c | 2 +- libavcodec/mpeg4video.h | 3 +-- libavcodec/mpeg4videodec.c | 4 ++-- libavcodec/mpeg4videoenc.c | 2 +- libavcodec/mpeg_er.c | 8 ++++---- libavcodec/mpegvideo.c | 6 ++---- libavcodec/mpegvideo.h | 2 +- libavcodec/mpegvideo_enc.c | 6 +++--- libavcodec/msmpeg4.c | 3 +-- libavcodec/vc1_block.c | 36 ++++++++++++++++++------------------ 11 files changed, 35 insertions(+), 39 deletions(-) diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c index 49a87486cc..f1f96010b2 100644 --- a/libavcodec/ituh263dec.c +++ b/libavcodec/ituh263dec.c @@ -450,7 +450,7 @@ static void h263_pred_acdc(MpegEncContext * s, int16_t *block, int n) { int wrap, a, c, pred_dc, scale; const int xy = s->block_index[n]; - int16_t *const dc_val = s->dc_val[0] + xy; + int16_t *const dc_val = s->dc_val + xy; int16_t *const ac_val = (s->ac_val + xy)[0]; /* find prediction */ diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c index 35d6aea9b5..9a8671588c 100644 --- a/libavcodec/ituh263enc.c +++ b/libavcodec/ituh263enc.c @@ -596,7 +596,7 @@ static int h263_pred_dc(MPVEncContext *const s, int n, int16_t **dc_val_ptr) { const int wrap = s->c.block_wrap[n]; const int xy = s->c.block_index[n]; - int16_t *const dc_val = s->c.dc_val[0] + xy; + int16_t *const dc_val = s->c.dc_val + xy; int pred_dc; /* find prediction */ diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h index dc0bf31922..059ea025e2 100644 --- a/libavcodec/mpeg4video.h +++ b/libavcodec/mpeg4video.h @@ -45,12 +45,11 @@ int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my); static inline int ff_mpeg4_pred_dc(MpegEncContext *s, int n, int *dir_ptr) { int a, b, c, wrap, pred; - const int16_t *dc_val; + const int16_t *const dc_val = s->dc_val + s->block_index[n]; /* find prediction */ wrap = s->block_wrap[n]; - dc_val = s->dc_val[0] + s->block_index[n]; /* B C * A X diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index d5d09e875d..654e8eee3b 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -920,7 +920,7 @@ static inline int mpeg4_get_level_dc(MpegEncContext *s, int n, int pred, int lev else if (!(s->workaround_bugs & FF_BUG_DC_CLIP)) level = 2047; } - s->dc_val[0][s->block_index[n]] = level; + s->dc_val[s->block_index[n]] = level; return ret; } @@ -1347,7 +1347,7 @@ static inline int mpeg4_decode_block(Mpeg4DecContext *ctx, int16_t *block, if (use_intra_dc_vlc) { /* DC coef */ if (s->partitioned_frame) { - level = s->dc_val[0][s->block_index[n]]; + level = s->dc_val[s->block_index[n]]; if (n < 4) level = FASTDIV((level + (s->y_dc_scale >> 1)), s->y_dc_scale); else diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index 543fc9e649..27c0ee475f 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -742,7 +742,7 @@ static void mpeg4_encode_mb(MPVEncContext *const s, int16_t block[][64], pred = FASTDIV((pred + (scale >> 1)), scale); dc_diff[i] = block[i][0] - pred; - s->c.dc_val[0][s->c.block_index[i]] = av_clip_uintp2(block[i][0] * scale, 11); + s->c.dc_val[s->c.block_index[i]] = av_clip_uintp2(block[i][0] * scale, 11); } if (s->c.avctx->flags & AV_CODEC_FLAG_AC_PRED) { diff --git a/libavcodec/mpeg_er.c b/libavcodec/mpeg_er.c index 0b919f0ced..6ac3e7b3e7 100644 --- a/libavcodec/mpeg_er.c +++ b/libavcodec/mpeg_er.c @@ -100,7 +100,6 @@ av_cold int ff_mpeg_er_init(MpegEncContext *s) { ERContext *er = &s->er; int mb_array_size = s->mb_height * s->mb_stride; - int i; er->avctx = s->avctx; @@ -111,6 +110,10 @@ av_cold int ff_mpeg_er_init(MpegEncContext *s) er->mb_stride = s->mb_stride; er->b8_stride = s->b8_stride; + er->dc_val[0] = s->dc_val; + er->dc_val[1] = er->dc_val[0] + s->b8_stride * 2 * s->buffer_pools.alloc_mb_height + s->mb_stride; + er->dc_val[2] = er->dc_val[1] + s->mb_stride * (s->buffer_pools.alloc_mb_height + 1); + er->er_temp_buffer = av_malloc(s->mb_height * s->mb_stride * (4*sizeof(int) + 1)); er->error_status_table = av_mallocz(mb_array_size); if (!er->er_temp_buffer || !er->error_status_table) @@ -119,9 +122,6 @@ av_cold int ff_mpeg_er_init(MpegEncContext *s) er->mbskip_table = s->mbskip_table; er->mbintra_table = s->mbintra_table; - for (i = 0; i < FF_ARRAY_ELEMS(s->dc_val); i++) - er->dc_val[i] = s->dc_val[i]; - er->decode_mb = mpeg_er_decode_mb; er->opaque = s; diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index df2c130a16..6c76a382cc 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -351,9 +351,7 @@ av_cold int ff_mpv_init_context_frame(MpegEncContext *s) // that we don't need to reinitialize when e.g. h263_aic changes. if (!FF_ALLOC_TYPED_ARRAY(s->dc_val_base, yc_size)) return AVERROR(ENOMEM); - s->dc_val[0] = s->dc_val_base + s->b8_stride + 1; - s->dc_val[1] = s->dc_val_base + y_size + s->mb_stride + 1; - s->dc_val[2] = s->dc_val[1] + c_size; + s->dc_val = s->dc_val_base + s->b8_stride + 1; for (i = 0; i < yc_size; i++) s->dc_val_base[i] = 1024; } @@ -486,7 +484,7 @@ void ff_clean_intra_table_entries(MpegEncContext *s) /* chroma */ unsigned uxy = s->block_index[4]; unsigned vxy = s->block_index[5]; - int16_t *dc_val = s->dc_val[0]; + int16_t *dc_val = s->dc_val; AV_WN32A(dc_val + xy, 1024 << 16 | 1024); AV_WN32 (dc_val + xy + wrap, 1024 << 16 | 1024); diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 72614d45f1..55a490adc7 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -141,13 +141,13 @@ typedef struct MpegEncContext { int skipped_last_frame; int last_dc[3]; ///< last DC values for MPEG-1 int16_t *dc_val_base; - int16_t *dc_val[3]; ///< used for MPEG-4 DC prediction, all 3 arrays must be continuous const uint8_t *y_dc_scale_table; ///< qscale -> y_dc_scale table const uint8_t *c_dc_scale_table; ///< qscale -> c_dc_scale table const uint8_t *chroma_qscale_table; ///< qscale -> chroma_qscale (H.263) uint8_t *coded_block_base; uint8_t *coded_block; ///< used for coded block pattern prediction (msmpeg4v3, wmv1) int16_t (*ac_val_base)[16]; + int16_t *dc_val; ///< used for H.263 AIC/MPEG-4 DC prediction and ER int16_t (*ac_val)[16]; ///< used for H.263 AIC, MPEG-4 AC prediction int mb_skipped; ///< MUST BE SET only during DECODING uint8_t *mbskip_table; /**< used to avoid copy if macroblock skipped (for black regions for example) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 3bec6b57cf..b4e0099567 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -3316,7 +3316,7 @@ static int encode_thread(AVCodecContext *c, void *arg){ int16_t ac[6][16]; const int mvdir = (best_s.c.mv_dir & MV_DIR_BACKWARD) ? 1 : 0; static const int dquant_tab[4]={-1,1,-2,2}; - int storecoefs = s->c.mb_intra && s->c.dc_val[0]; + int storecoefs = s->c.mb_intra && s->c.dc_val; av_assert2(backup_s.dquant == 0); @@ -3338,7 +3338,7 @@ static int encode_thread(AVCodecContext *c, void *arg){ backup_s.dquant= dquant; if(storecoefs){ for(i=0; i<6; i++){ - dc[i] = s->c.dc_val[0][s->c.block_index[i]]; + dc[i] = s->c.dc_val[s->c.block_index[i]]; memcpy(ac[i], s->c.ac_val[s->c.block_index[i]], sizeof(*s->c.ac_val)); } } @@ -3348,7 +3348,7 @@ static int encode_thread(AVCodecContext *c, void *arg){ if (best_s.c.qscale != qp) { if(storecoefs){ for(i=0; i<6; i++){ - s->c.dc_val[0][s->c.block_index[i]] = dc[i]; + s->c.dc_val[s->c.block_index[i]] = dc[i]; memcpy(s->c.ac_val[s->c.block_index[i]], ac[i], sizeof(*s->c.ac_val)); } } diff --git a/libavcodec/msmpeg4.c b/libavcodec/msmpeg4.c index 872dc8db67..740dbdcba8 100644 --- a/libavcodec/msmpeg4.c +++ b/libavcodec/msmpeg4.c @@ -197,7 +197,7 @@ int ff_msmpeg4_pred_dc(MpegEncContext *s, int n, int16_t **dc_val_ptr, int *dir_ptr) { int a, b, c, wrap, pred, scale; - int16_t *dc_val; + int16_t *const dc_val = s->dc_val + s->block_index[n]; /* find prediction */ if (n < 4) { @@ -207,7 +207,6 @@ int ff_msmpeg4_pred_dc(MpegEncContext *s, int n, } wrap = s->block_wrap[n]; - dc_val= s->dc_val[0] + s->block_index[n]; /* B C * A X diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c index 9427e96d1e..9302c12c71 100644 --- a/libavcodec/vc1_block.c +++ b/libavcodec/vc1_block.c @@ -357,7 +357,7 @@ static inline int vc1_i_pred_dc(MpegEncContext *s, int overlap, int pq, int n, scale = s->y_dc_scale; wrap = s->block_wrap[n]; - dc_val = s->dc_val[0] + s->block_index[n]; + dc_val = s->dc_val + s->block_index[n]; /* B A * C X @@ -422,7 +422,7 @@ static inline int ff_vc1_pred_dc(MpegEncContext *s, int overlap, int pq, int n, return 0; wrap = s->block_wrap[n]; - dc_val = s->dc_val[0] + s->block_index[n]; + dc_val = s->dc_val + s->block_index[n]; /* B A * C X @@ -1314,7 +1314,7 @@ static int vc1_decode_p_mb(VC1Context *v) if (!s->mb_intra) ff_vc1_mc_1mv(v, 0); dst_idx = 0; for (i = 0; i < 6; i++) { - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); @@ -1355,7 +1355,7 @@ static int vc1_decode_p_mb(VC1Context *v) s->mb_intra = 0; for (i = 0; i < 6; i++) { v->mb_type[0][s->block_index[i]] = 0; - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; } s->cur_pic.mb_type[mb_pos] = MB_TYPE_SKIP; s->cur_pic.qscale_table[mb_pos] = 0; @@ -1370,7 +1370,7 @@ static int vc1_decode_p_mb(VC1Context *v) cbp = get_vlc2(&v->s.gb, v->cbpcy_vlc, VC1_CBPCY_P_VLC_BITS, 2); for (i = 0; i < 6; i++) { val = ((cbp >> (5 - i)) & 1); - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; s->mb_intra = 0; if (i < 4) { dmv_x = dmv_y = 0; @@ -1463,7 +1463,7 @@ static int vc1_decode_p_mb(VC1Context *v) s->cur_pic.qscale_table[mb_pos] = 0; for (i = 0; i < 6; i++) { v->mb_type[0][s->block_index[i]] = 0; - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; } for (i = 0; i < 4; i++) { ff_vc1_pred_mv(v, i, 0, 0, 0, v->range_x, v->range_y, v->mb_type[0], 0, 0); @@ -1570,7 +1570,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v) for (i = 0; i < 6; i++) { v->a_avail = v->c_avail = 0; v->mb_type[0][s->block_index[i]] = 1; - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); if (i == 2 || i == 3 || !s->first_slice_line) @@ -1648,7 +1648,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v) if (!v->ttmbf && cbp) ttmb = get_vlc2(gb, ff_vc1_ttmb_vlc[v->tt_index], VC1_TTMB_VLC_BITS, 2); for (i = 0; i < 6; i++) { - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); if (!fieldtx) @@ -1673,7 +1673,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v) s->mb_intra = v->is_intra[s->mb_x] = 0; for (i = 0; i < 6; i++) { v->mb_type[0][s->block_index[i]] = 0; - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; } s->cur_pic.mb_type[mb_pos] = MB_TYPE_SKIP; s->cur_pic.qscale_table[mb_pos] = 0; @@ -1736,7 +1736,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v) for (i = 0; i < 6; i++) { v->a_avail = v->c_avail = 0; v->mb_type[0][s->block_index[i]] = 1; - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); if (i == 2 || i == 3 || !s->first_slice_line) @@ -1789,7 +1789,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v) } dst_idx = 0; for (i = 0; i < 6; i++) { - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize; @@ -1854,7 +1854,7 @@ static int vc1_decode_b_mb(VC1Context *v) dmv_x[0] = dmv_x[1] = dmv_y[0] = dmv_y[1] = 0; for (i = 0; i < 6; i++) { v->mb_type[0][s->block_index[i]] = 0; - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; } s->cur_pic.qscale_table[mb_pos] = 0; @@ -1937,7 +1937,7 @@ static int vc1_decode_b_mb(VC1Context *v) } dst_idx = 0; for (i = 0; i < 6; i++) { - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); @@ -2023,7 +2023,7 @@ static int vc1_decode_b_mb_intfi(VC1Context *v) for (i = 0; i < 6; i++) { v->a_avail = v->c_avail = 0; v->mb_type[0][s->block_index[i]] = 1; - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); if (i == 2 || i == 3 || !s->first_slice_line) @@ -2124,7 +2124,7 @@ static int vc1_decode_b_mb_intfi(VC1Context *v) } dst_idx = 0; for (i = 0; i < 6; i++) { - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize; @@ -2219,7 +2219,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) for (i = 0; i < 6; i++) { v->a_avail = v->c_avail = 0; v->mb_type[0][s->block_index[i]] = 1; - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); if (i == 2 || i == 3 || !s->first_slice_line) @@ -2422,7 +2422,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) if (!v->ttmbf && cbp) ttmb = get_vlc2(gb, ff_vc1_ttmb_vlc[v->tt_index], VC1_TTMB_VLC_BITS, 2); for (i = 0; i < 6; i++) { - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; dst_idx += i >> 2; val = ((cbp >> (5 - i)) & 1); if (!fieldtx) @@ -2447,7 +2447,7 @@ static int vc1_decode_b_mb_intfr(VC1Context *v) dir = 0; for (i = 0; i < 6; i++) { v->mb_type[0][s->block_index[i]] = 0; - s->dc_val[0][s->block_index[i]] = 0; + s->dc_val[s->block_index[i]] = 0; } s->cur_pic.mb_type[mb_pos] = MB_TYPE_SKIP; s->cur_pic.qscale_table[mb_pos] = 0; -- ffmpeg-codebot _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".