[FFmpeg-devel] [PATCH 00/47] avcodec/mpeg4videodec: Don't zero blocks twice

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Fri Jun 20 18:11:27 EEST 2025


ffmpegagent:
> This patchset is a mix of mpegvideo-related patches. The second half
> (beginning with avcodec/ituh263dec: Simplify AIC handling) mostly has a
> theme, namely improving dc_val and ac_val handling in mpegvideo. The first
> is just other stuff which I found while investigating the latter.
> 
> Andreas Rheinhardt (47):
>   avcodec/mpeg4videodec: Don't zero blocks twice
>   avcodec/rv10: Perform RV20 initialization during init
>   avcodec/rv10: Perform RV20 check only for RV20
>   avcodec/ituh263dec: Don't process unnecessarily many coefficients
>   avcodec/ituh263dec: Remove redundant store
>   avcodec/ituh263enc: Don't use array unnecessarily
>   avcodec/ituh263enc: Fix indentation
>   avcodec/mpeg12dec: Don't store block_last_index unnecessarily
>   avcodec/rv10: Avoid indirection when reading VLC codes
>   avcodec/mpeg_er: Mark ff_mpeg_er_init() as av_cold
>   avcodec/mpegvideo_enc: Remove always-true branch
>   avcodec/motion_est: Fix indentation
>   avcodec/svq1enc: Don't free scratchbuf upon error
>   avcodec/svq1enc: Allocate motion_val{8,16} during init
>   avcodec/svq1enc: Stop calling ff_mpv_common_init()
>   avcodec/svq1enc: Remove write-only c_block_{width,height}
>   avcodec/svq1enc: Set MpegEncContext.avctx only once
>   avcodec/svq1enc: Don't initialize unneeded block_index
>   configure: Factor mpegvideoencdsp out of mpegvideoenc
>   configure: Relax svq1enc->mpegvideoenc dependency
>   configure: Relax diracdec->mpegvideoenc dependency
>   configure: Relax snowenc->mpegvideoenc dependency
>   avcodec/mpegvideo: Don't reset thread_context ptrs unnecessarily
>   avcodec/mpegvideo: Don't zero unnecessarily
>   avcodec/mpegvideo: Defer init of enc slice ctxs in
>     ff_mpv_common_init()
>   avcodec/mpegvideo_enc: Simplify allocating non-slice buffers
>   avcodec/ituh263dec: Simplify AIC handling
>   avcodec/ituh263enc: Simplify AIC handling
>   avcodec/flvenc: Combine writing bits
>   avcodec/flvenc: Move ff_flv2_encode_ac_esc() to ituh263enc.c
>   avcodec/mpegvideo: Redo resetting intra table entry
>   avcodec/mpegvideo: Avoid {a,d}c_val[{1,2}]
>   avcodec/mpegvideo: Provide alignment hint to compiler
>   avcodec/mpegvideo: Don't reset AC values of upper-left luma block
>   avcodec/mpegvideo: Combine stores
>   avcodec/mpeg4video: Don't use ac_val[1], ac_val[2] when cleaning
>     buffers
>   avcodec/mpegvideo: Only use a single ac_val pointer
>   avcodec/mpegvideo: Allocate ac_val jointly
>   avcodec/mpegvideo: Zero-init mbintra_table
>   avcodec/mpegvideo: Only keep MpegEncContext.dc_val[0]
>   avcodec/vc1: Only keep mb_type[0]
>   avcodec/mpegvideo: Allocate dc_val for each encoder slice
>   avcodec/{ituh263,mpeg4video}enc: Simplify out-of-slice DC prediction
>   avcodec/mpeg4video: Move ff_mpeg4_pred_dc() to decoder
>   avcodec/ituh263enc: Simplify encoding umotion vectors
>   avcodec/mpegvideo: Reduce stack usage when copying MpegEncContext
>   avcodec/mpeg4videoenc: Fix data race when using AC prediction
> 
>  configure                    |   9 +-
>  libavcodec/Makefile          |   9 +-
>  libavcodec/aarch64/Makefile  |   4 +-
>  libavcodec/arm/Makefile      |   4 +-
>  libavcodec/flvenc.c          |  19 ----
>  libavcodec/flvenc.h          |   4 -
>  libavcodec/h263.c            |   5 +-
>  libavcodec/h263.h            |   8 ++
>  libavcodec/h263dec.c         |   3 +-
>  libavcodec/h263enc.h         |   1 +
>  libavcodec/ituh263dec.c      |  47 ++++-----
>  libavcodec/ituh263enc.c      | 181 ++++++++++++++++++-----------------
>  libavcodec/mathops.h         |   1 +
>  libavcodec/mathtables.c      |  39 ++++++++
>  libavcodec/me_cmp.c          |  36 -------
>  libavcodec/me_cmp.h          |   5 -
>  libavcodec/mips/Makefile     |   6 +-
>  libavcodec/motion_est.c      | 180 +++++++++++++++++-----------------
>  libavcodec/mpeg12.c          |   4 +-
>  libavcodec/mpeg12dec.c       |   3 -
>  libavcodec/mpeg4video.c      |  13 ++-
>  libavcodec/mpeg4video.h      |  45 ---------
>  libavcodec/mpeg4videodec.c   |  65 ++++++++++---
>  libavcodec/mpeg4videoenc.c   |  40 +++++++-
>  libavcodec/mpeg_er.c         |  10 +-
>  libavcodec/mpegvideo.c       | 155 +++++++++++++++---------------
>  libavcodec/mpegvideo.h       |   4 +-
>  libavcodec/mpegvideo_enc.c   | 179 +++++++++++++++++++---------------
>  libavcodec/mpegvideoencdsp.c |   2 +-
>  libavcodec/msmpeg4.c         |   3 +-
>  libavcodec/ppc/Makefile      |   2 +-
>  libavcodec/riscv/Makefile    |   4 +-
>  libavcodec/rv10.c            |  53 +++++-----
>  libavcodec/svq1enc.c         |  65 ++++---------
>  libavcodec/vc1.h             |   2 +-
>  libavcodec/vc1_block.c       | 138 +++++++++++++-------------
>  libavcodec/vc1_loopfilter.c  |  10 +-
>  libavcodec/vc1_mc.c          |   8 +-
>  libavcodec/vc1_pred.c        |  14 +--
>  libavcodec/vc1dec.c          |   4 +-
>  libavcodec/x86/Makefile      |   6 +-
>  tests/checkasm/Makefile      |   2 +-
>  tests/checkasm/checkasm.c    |   2 +-
>  43 files changed, 697 insertions(+), 697 deletions(-)
> 

Will apply this patchset tomorrow unless there are objections.

- Andreas



More information about the ffmpeg-devel mailing list