[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