[FFmpeg-cvslog] configure: Relax svq1enc->mpegvideoenc dependency

Andreas Rheinhardt git at videolan.org
Sat Jun 21 23:20:42 EEST 2025


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Sat Jun 14 18:19:02 2025 +0200| [8764b2104816e5e6c5683b8ba5c2661131daec5e] | committer: Andreas Rheinhardt

configure: Relax svq1enc->mpegvideoenc dependency

It only needs mpegvideoencdsp, motion_est.o and
some H.263 specific parts.

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

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

 configure               |  2 +-
 libavcodec/Makefile     |  2 +-
 libavcodec/h263.c       |  5 ++++-
 libavcodec/ituh263enc.c | 41 ++++++++++++++++++++++-------------------
 4 files changed, 28 insertions(+), 22 deletions(-)

diff --git a/configure b/configure
index 096ea36805..17fba92596 100755
--- a/configure
+++ b/configure
@@ -3116,7 +3116,7 @@ speedhq_decoder_select="blockdsp idctdsp"
 speedhq_encoder_select="mpegvideoenc"
 srgc_decoder_select="inflate_wrapper"
 svq1_decoder_select="hpeldsp"
-svq1_encoder_select="hpeldsp me_cmp mpegvideoenc"
+svq1_encoder_select="hpeldsp me_cmp mpegvideoencdsp"
 svq3_decoder_select="golomb h264dsp h264parse h264pred hpeldsp tpeldsp videodsp"
 svq3_decoder_suggest="zlib"
 tak_decoder_select="audiodsp"
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index bc71cef940..4c18ef8dd1 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -722,7 +722,7 @@ OBJS-$(CONFIG_SBC_DECODER)             += sbcdec.o sbc.o
 OBJS-$(CONFIG_SBC_ENCODER)             += sbcenc.o sbc.o sbcdsp.o
 OBJS-$(CONFIG_SVQ1_DECODER)            += svq1dec.o svq1.o h263data.o
 OBJS-$(CONFIG_SVQ1_ENCODER)            += svq1enc.o svq1.o  h263data.o  \
-                                          h263.o ituh263enc.o
+                                          h263.o ituh263enc.o motion_est.o
 OBJS-$(CONFIG_SVQ3_DECODER)            += svq3.o mpegutils.o h264data.o
 OBJS-$(CONFIG_TEXT_DECODER)            += textdec.o ass.o
 OBJS-$(CONFIG_TEXT_ENCODER)            += srtenc.o ass_split.o
diff --git a/libavcodec/h263.c b/libavcodec/h263.c
index 19eb3ba52f..6d2de715ab 100644
--- a/libavcodec/h263.c
+++ b/libavcodec/h263.c
@@ -27,17 +27,19 @@
  * H.263/MPEG-4 codec.
  */
 
+#include "config.h"
+
 #include "libavutil/thread.h"
 #include "mpegvideo.h"
 #include "h263.h"
 #include "h263data.h"
 #include "h263dsp.h"
-#include "idctdsp.h"
 #include "mathops.h"
 #include "mpegpicture.h"
 #include "mpegutils.h"
 #include "rl.h"
 
+#if CONFIG_MPEGVIDEO
 static av_cold void h263_init_rl_inter(void)
 {
     static uint8_t h263_rl_inter_table[2][2 * MAX_RUN + MAX_LEVEL + 3];
@@ -49,6 +51,7 @@ av_cold void ff_h263_init_rl_inter(void)
     static AVOnce init_static_once = AV_ONCE_INIT;
     ff_thread_once(&init_static_once, h263_init_rl_inter);
 }
+#endif
 
 void ff_h263_update_motion_val(MpegEncContext * s){
     const int mb_xy = s->mb_y * s->mb_stride + s->mb_x;
diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c
index ab6edafd4d..ae67907722 100644
--- a/libavcodec/ituh263enc.c
+++ b/libavcodec/ituh263enc.c
@@ -53,21 +53,7 @@
  */
 static uint8_t mv_penalty[MAX_FCODE+1][MAX_DMV*2+1];
 
-/**
- * Minimal fcode that a motion vector component would need in umv.
- * All entries in this table are 1.
- */
-static uint8_t umv_fcode_tab[MAX_MV*2+1];
-
-//unified encoding tables for run length encoding of coefficients
-//unified in the sense that the specification specifies the encoding in several steps.
-static uint8_t  uni_h263_intra_aic_rl_len [64*64*2*2];
-static uint8_t  uni_h263_inter_rl_len [64*64*2*2];
-//#define UNI_MPEG4_ENC_INDEX(last,run,level) ((last)*128 + (run)*256 + (level))
-//#define UNI_MPEG4_ENC_INDEX(last,run,level) ((last)*128*64 + (run) + (level)*64)
-#define UNI_MPEG4_ENC_INDEX(last,run,level) ((last)*128*64 + (run)*128 + (level))
-
-static av_cold void init_mv_penalty_and_fcode(void)
+static av_cold void init_mv_penalty(void)
 {
     for (int f_code = 1; f_code <= MAX_FCODE; f_code++) {
         for (int mv = -MAX_DMV; mv <= MAX_DMV; mv++) {
@@ -94,10 +80,23 @@ static av_cold void init_mv_penalty_and_fcode(void)
             mv_penalty[f_code][mv + MAX_DMV] = len;
         }
     }
-
-    memset(umv_fcode_tab, 1, sizeof(umv_fcode_tab));
 }
 
+#if CONFIG_H263_ENCODER
+/**
+ * Minimal fcode that a motion vector component would need in umv.
+ * All entries in this table are 1.
+ */
+static uint8_t umv_fcode_tab[MAX_MV*2+1];
+
+//unified encoding tables for run length encoding of coefficients
+//unified in the sense that the specification specifies the encoding in several steps.
+static uint8_t  uni_h263_intra_aic_rl_len [64*64*2*2];
+static uint8_t  uni_h263_inter_rl_len [64*64*2*2];
+//#define UNI_MPEG4_ENC_INDEX(last,run,level) ((last)*128 + (run)*256 + (level))
+//#define UNI_MPEG4_ENC_INDEX(last,run,level) ((last)*128*64 + (run) + (level)*64)
+#define UNI_MPEG4_ENC_INDEX(last,run,level) ((last)*128*64 + (run)*128 + (level))
+
 static av_cold void init_uni_h263_rl_tab(const RLTable *rl, uint8_t *len_tab)
 {
     av_assert0(MAX_LEVEL >= 64);
@@ -137,18 +136,22 @@ static av_cold void init_uni_h263_rl_tab(const RLTable *rl, uint8_t *len_tab)
         }
     }
 }
+#endif
 
 static av_cold void h263_encode_init_static(void)
 {
+#if CONFIG_H263_ENCODER
     static uint8_t rl_intra_table[2][2 * MAX_RUN + MAX_LEVEL + 3];
-
     ff_rl_init(&ff_rl_intra_aic, rl_intra_table);
     ff_h263_init_rl_inter();
 
     init_uni_h263_rl_tab(&ff_rl_intra_aic,  uni_h263_intra_aic_rl_len);
     init_uni_h263_rl_tab(&ff_h263_rl_inter, uni_h263_inter_rl_len);
 
-    init_mv_penalty_and_fcode();
+    memset(umv_fcode_tab, 1, sizeof(umv_fcode_tab));
+#endif
+
+    init_mv_penalty();
 }
 
 av_cold const uint8_t (*ff_h263_get_mv_penalty(void))[MAX_DMV*2+1]



More information about the ffmpeg-cvslog mailing list