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

ffmpegagent ffmpegagent at gmail.com
Sun Jun 15 19:53:51 EEST 2025


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(-)


base-commit: fb65ecbc9b805571e5ff707b935c343803137e54
Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-98%2Fmkver%2Fmpv_dc_val-v1
Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-98/mkver/mpv_dc_val-v1
Pull-Request: https://github.com/ffstaging/FFmpeg/pull/98
-- 
ffmpeg-codebot


More information about the ffmpeg-devel mailing list