[FFmpeg-cvslog] avcodec/rv34: Don't use MpegEncContext.block

Andreas Rheinhardt git at videolan.org
Thu Jul 3 21:55:36 EEST 2025


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Sun Jun 15 23:56:50 2025 +0200| [25e4baeed4886946cfa9e17fb579538a347cca57] | committer: Andreas Rheinhardt

avcodec/rv34: Don't use MpegEncContext.block

These decoders only need a single 4x4 block; put it in RV34DecContext.
This is in preparation for removing MpegEncContext.block.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=25e4baeed4886946cfa9e17fb579538a347cca57
---

 libavcodec/rv34.c | 7 +++----
 libavcodec/rv34.h | 1 +
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
index 73fd16b3e2..9f8a0f12b8 100644
--- a/libavcodec/rv34.c
+++ b/libavcodec/rv34.c
@@ -1029,8 +1029,7 @@ static inline void rv34_process_block(RV34DecContext *r,
                                       uint8_t *pdst, int stride,
                                       int fc, int sc, int q_dc, int q_ac)
 {
-    MpegEncContext *s = &r->s;
-    int16_t *ptr = s->block[0];
+    int16_t *const ptr = r->block;
     int has_ac = rv34_decode_block(ptr, &r->gb, r->cur_vlcs,
                                    fc, sc, q_dc, q_ac, q_ac);
     if(has_ac){
@@ -1049,7 +1048,7 @@ static void rv34_output_i16x16(RV34DecContext *r, int8_t *intra_types, int cbp)
     int             q_dc = rv34_qscale_tab[ r->luma_dc_quant_i[s->qscale] ],
                     q_ac = rv34_qscale_tab[s->qscale];
     uint8_t        *dst  = s->dest[0];
-    int16_t        *ptr  = s->block[0];
+    int16_t  *const ptr  = r->block;
     int i, j, itype, has_ac;
 
     memset(block16, 0, 16 * sizeof(*block16));
@@ -1215,7 +1214,7 @@ static int rv34_decode_inter_macroblock(RV34DecContext *r, int8_t *intra_types)
     MpegEncContext *s   = &r->s;
     GetBitContext *const gb = &r->gb;
     uint8_t        *dst = s->dest[0];
-    int16_t        *ptr = s->block[0];
+    int16_t  *const ptr = r->block;
     int          mb_pos = s->mb_x + s->mb_y * s->mb_stride;
     int cbp, cbp2;
     int q_dc, q_ac, has_ac;
diff --git a/libavcodec/rv34.h b/libavcodec/rv34.h
index 485a034f9e..5bed46ea4f 100644
--- a/libavcodec/rv34.h
+++ b/libavcodec/rv34.h
@@ -119,6 +119,7 @@ typedef struct RV34DecContext{
     uint8_t  *cbp_chroma;    ///< CBP values for chroma subblocks
     uint16_t *deblock_coefs; ///< deblock coefficients for each macroblock
 
+    DECLARE_ALIGNED_16(int16_t, block)[16];
     /** 8x8 block available flags (for MV prediction) */
     DECLARE_ALIGNED(8, uint32_t, avail_cache)[3*4];
 



More information about the ffmpeg-cvslog mailing list