Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Andreas Rheinhardt <ffmpegagent-at-gmail.com@ffmpeg.org>
To: ffmpeg-devel@ffmpeg.org
Cc: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Subject: [FFmpeg-devel] [PATCH 40/47] avcodec/mpegvideo: Only keep MpegEncContext.dc_val[0]
Date: Sun, 15 Jun 2025 16:54:31 +0000
Message-ID: <a0ddf733051001b2b0f03f60565798c0f57a808e.1750006480.git.ffmpegagent@gmail.com> (raw)
In-Reply-To: <pull.98.ffstaging.FFmpeg.1750006478.ffmpegagent@gmail.com>

From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>

The chroma dc_val pointers are mostly unused (accesses use
dc_val[0] and block_index), so remove them.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 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".

  parent reply	other threads:[~2025-06-15 17:02 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-15 16:53 [FFmpeg-devel] [PATCH 00/47] avcodec/mpeg4videodec: Don't zero blocks twice ffmpegagent
2025-06-15 16:53 ` [FFmpeg-devel] [PATCH 01/47] " Andreas Rheinhardt
2025-06-15 16:53 ` [FFmpeg-devel] [PATCH 02/47] avcodec/rv10: Perform RV20 initialization during init Andreas Rheinhardt
2025-06-15 16:53 ` [FFmpeg-devel] [PATCH 03/47] avcodec/rv10: Perform RV20 check only for RV20 Andreas Rheinhardt
2025-06-15 16:53 ` [FFmpeg-devel] [PATCH 04/47] avcodec/ituh263dec: Don't process unnecessarily many coefficients Andreas Rheinhardt
2025-06-15 16:53 ` [FFmpeg-devel] [PATCH 05/47] avcodec/ituh263dec: Remove redundant store Andreas Rheinhardt
2025-06-15 16:53 ` [FFmpeg-devel] [PATCH 06/47] avcodec/ituh263enc: Don't use array unnecessarily Andreas Rheinhardt
2025-06-15 16:53 ` [FFmpeg-devel] [PATCH 07/47] avcodec/ituh263enc: Fix indentation Andreas Rheinhardt
2025-06-15 16:53 ` [FFmpeg-devel] [PATCH 08/47] avcodec/mpeg12dec: Don't store block_last_index unnecessarily Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 09/47] avcodec/rv10: Avoid indirection when reading VLC codes Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 10/47] avcodec/mpeg_er: Mark ff_mpeg_er_init() as av_cold Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 11/47] avcodec/mpegvideo_enc: Remove always-true branch Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 12/47] avcodec/motion_est: Fix indentation Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 13/47] avcodec/svq1enc: Don't free scratchbuf upon error Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 14/47] avcodec/svq1enc: Allocate motion_val{8, 16} during init Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 15/47] avcodec/svq1enc: Stop calling ff_mpv_common_init() Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 16/47] avcodec/svq1enc: Remove write-only c_block_{width, height} Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 17/47] avcodec/svq1enc: Set MpegEncContext.avctx only once Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 18/47] avcodec/svq1enc: Don't initialize unneeded block_index Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 19/47] configure: Factor mpegvideoencdsp out of mpegvideoenc Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 20/47] configure: Relax svq1enc->mpegvideoenc dependency Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 21/47] configure: Relax diracdec->mpegvideoenc dependency Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 22/47] configure: Relax snowenc->mpegvideoenc dependency Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 23/47] avcodec/mpegvideo: Don't reset thread_context ptrs unnecessarily Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 24/47] avcodec/mpegvideo: Don't zero unnecessarily Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 25/47] avcodec/mpegvideo: Defer init of enc slice ctxs in ff_mpv_common_init() Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 26/47] avcodec/mpegvideo_enc: Simplify allocating non-slice buffers Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 27/47] avcodec/ituh263dec: Simplify AIC handling Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 28/47] avcodec/ituh263enc: " Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 29/47] avcodec/flvenc: Combine writing bits Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 30/47] avcodec/flvenc: Move ff_flv2_encode_ac_esc() to ituh263enc.c Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 31/47] avcodec/mpegvideo: Redo resetting intra table entry Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 32/47] avcodec/mpegvideo: Avoid {a, d}c_val[{1, 2}] Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 33/47] avcodec/mpegvideo: Provide alignment hint to compiler Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 34/47] avcodec/mpegvideo: Don't reset AC values of upper-left luma block Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 35/47] avcodec/mpegvideo: Combine stores Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 36/47] avcodec/mpeg4video: Don't use ac_val[1], ac_val[2] when cleaning buffers Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 37/47] avcodec/mpegvideo: Only use a single ac_val pointer Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 38/47] avcodec/mpegvideo: Allocate ac_val jointly Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 39/47] avcodec/mpegvideo: Zero-init mbintra_table Andreas Rheinhardt
2025-06-15 16:54 ` Andreas Rheinhardt [this message]
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 41/47] avcodec/vc1: Only keep mb_type[0] Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 42/47] avcodec/mpegvideo: Allocate dc_val for each encoder slice Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 43/47] avcodec/{ituh263, mpeg4video}enc: Simplify out-of-slice DC prediction Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 44/47] avcodec/mpeg4video: Move ff_mpeg4_pred_dc() to decoder Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 45/47] avcodec/ituh263enc: Simplify encoding umotion vectors Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 46/47] avcodec/mpegvideo: Reduce stack usage when copying MpegEncContext Andreas Rheinhardt
2025-06-15 16:54 ` [FFmpeg-devel] [PATCH 47/47] avcodec/mpeg4videoenc: Fix data race when using AC prediction Andreas Rheinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a0ddf733051001b2b0f03f60565798c0f57a808e.1750006480.git.ffmpegagent@gmail.com \
    --to=ffmpegagent-at-gmail.com@ffmpeg.org \
    --cc=andreas.rheinhardt@outlook.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git