ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@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.rheinha...@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] _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".