[FFmpeg-devel] [PATCH 00/48] H263DecContext
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Thu Jul 3 19:49:30 EEST 2025
ffmpegagent:
> This patchset adds a H263DecContext and moves the fields of MpegEncContext
> that are only used by the H.263-based decoders (those using h263dec.c) to
> it. It also adds a special slice context for the MPEG-1/2 decoders and moves
> the GetBitContext from MpegEncContext to the actual decoder contexts (no
> get_bits.h inclusion in encoders any longer). Furthermore, MpegEncContext.
> is put into the codec contexts and no longer separately allocated.
>
> Andreas Rheinhardt (48):
> avcodec/ituh263dec: Use correct logcontext
> avcodec/rl: Avoid branch in index lookup
> avcodec/ituh263enc: Simplify creating LUT
> avcodec/ituh263dec: Only initialize ff_h263_rl_inter when needed
> avcodec/mpegvideoenc: Allocate blocks as part of MPVEncContext
> avcodec/mpegvideo: Add MPVContext typedef
> avcodec/mpegvideo_dec: Factor debugging dct coefficients out
> avcodec/mpegvideo_dec: Reindent after the previous commit
> avcodec/mpeg_er: Don't use MpegEncContext.block
> avcodec/mpegvideodec: Remove size expectation from
> ff_mpv_reconstruct_mb
> avcodec/h261dec: Stop using MpegEncContext.gb
> avcodec/h261dec: Don't use MpegEncContext.block
> avcodec/mpeg12dec: Put GetBitContext on the stack where advantageous
> avcodec/mpeg12dec: Remove unused function parameter
> avcodec/rv34: Don't use MpegEncContext.gb
> avcodec/rv34: Don't use MpegEncContext.block
> avcodec/intrax8: Don't pretend to need more than one int16_t[64]
> avcodec/vc1: Stop using MpegEncContext.gb
> avcodec/vc1: Don't use MpegEncContext.block
> avcodec/mpeg12dec: Deduplicate variables
> avcodec/mpegvideo: Move flipflop_rounding to
> {MSMPEG4Dec,MPVEnc}Context
> avcodec/mpegvideo: Move unrestricted_mv to MotionEstContext
> avcodec/mpeg4videodec: Avoid unnecessary indirections
> avcodec/{h263,mpeg4video}dec: Pass MPVContext*, not Mpeg4DecContext*
> avcodec/mpegvideo: Move dct_precision to Mpeg4DecContext
> avcodec/h263dec: Add H263DecContext
> avcodec/h263dec: Remove redundant block parameter from decode_mb
> avcodec/h263dec: Don't use MpegEncContext.block
> avcodec/h263dec: Stop using MpegEncContext.gb
> avcodec/mpeg12dec: Add Mpeg12SliceContext
> avcodec/mpegvideo: Add missing headers
> avcodec/mpeg12dec: Move MpegEncContext.gb to Mpeg12SliceContext
> avcodec/mpeg12dec: Don't use MPVContext.block
> avcodec/mpegvideo: Move fields only used by H.263 decoders to
> H263DecCtx
> avcodec/mpegvideo: Move mb_num_left to {H263,RV34}DecContext
> avcodec/mpeg12dec: Put mb_skip_run on the stack
> avcodec/mpegvideo: Move mb_skip_run to {RV34Dec,MPVEnc}Context
> avcodec/mpegvideo: Move SLICE_* defs to h263dec.h, h261dec.c
> avcodec/msmpeg4dec: Move ff_msmpeg4_decode_init() down
> avcodec/h263dec: Use function ptr for decode_picture_header
> avcodec/ituh263enc: Inline value of h263_flv
> avcodec/flvdec: Binarize h263_flv
> avcodec/mpegvideo: Move fields to {H263Dec,MPVEnc}Context when
> possible
> avcodec/mpeg_er: Allow to skip setting partitioned_frame, p[pb]_time
> avcodec/mpegvideo: Move partitioned_frame to {H263Dec,MPVEnc}Context
> avcodec/mpegvideo: Move loop_filter to {H263Dec,MPVEnc,VC1}Context
> avcodec/rv34: Don't report progress unnecessarily
> avcodec/rv34: Fix spelling mistake
>
> libavcodec/dxva2_vc1.c | 6 +-
> libavcodec/error_resilience.c | 2 +
> libavcodec/flvdec.c | 60 +-
> libavcodec/flvdec.h | 4 +-
> libavcodec/flvenc.c | 4 +-
> libavcodec/h261dec.c | 95 +-
> libavcodec/h261enc.c | 18 +-
> libavcodec/h263data.h | 4 +
> libavcodec/h263dec.c | 427 +++---
> libavcodec/h263dec.h | 81 +-
> libavcodec/h263enc.h | 2 +-
> libavcodec/intelh263dec.c | 110 +-
> libavcodec/intrax8.c | 16 +-
> libavcodec/intrax8.h | 4 +-
> libavcodec/ituh263dec.c | 950 ++++++-------
> libavcodec/ituh263enc.c | 112 +-
> libavcodec/me_cmp.c | 1 +
> libavcodec/mips/mpegvideo_msa.c | 1 +
> libavcodec/motion_est.c | 4 +-
> libavcodec/motion_est.h | 1 +
> libavcodec/mpeg12dec.c | 909 +++++++------
> libavcodec/mpeg12enc.c | 11 +-
> libavcodec/mpeg4video_parser.c | 4 +-
> libavcodec/mpeg4videodec.c | 1741 ++++++++++++------------
> libavcodec/mpeg4videodec.h | 13 +-
> libavcodec/mpeg4videoenc.c | 21 +-
> libavcodec/mpeg_er.c | 7 +-
> libavcodec/mpeg_er.h | 9 +
> libavcodec/mpegvideo.c | 28 +-
> libavcodec/mpegvideo.h | 49 +-
> libavcodec/mpegvideo_dec.c | 37 +-
> libavcodec/mpegvideo_enc.c | 178 +--
> libavcodec/mpegvideodec.h | 8 +-
> libavcodec/mpegvideoenc.h | 21 +
> libavcodec/msmpeg4.c | 1 +
> libavcodec/msmpeg4dec.c | 586 ++++----
> libavcodec/msmpeg4dec.h | 11 +-
> libavcodec/msmpeg4enc.c | 10 +-
> libavcodec/mss2.c | 6 +-
> libavcodec/nvdec_mpeg4.c | 4 +-
> libavcodec/nvdec_vc1.c | 2 +-
> libavcodec/ppc/mpegvideo_altivec.c | 1 +
> libavcodec/ratecontrol.c | 4 +-
> libavcodec/rl.h | 6 +-
> libavcodec/rv10.c | 340 ++---
> libavcodec/rv10dec.h | 4 +-
> libavcodec/rv20enc.c | 12 +-
> libavcodec/rv30.c | 2 +-
> libavcodec/rv34.c | 61 +-
> libavcodec/rv34.h | 6 +
> libavcodec/rv40.c | 10 +-
> libavcodec/snowenc.c | 4 +-
> libavcodec/speedhqenc.c | 1 +
> libavcodec/svq1enc.c | 2 +-
> libavcodec/vaapi_mpeg4.c | 12 +-
> libavcodec/vaapi_vc1.c | 4 +-
> libavcodec/vc1.c | 30 +-
> libavcodec/vc1.h | 7 +
> libavcodec/vc1_block.c | 134 +-
> libavcodec/vc1_pred.c | 12 +-
> libavcodec/vc1dec.c | 54 +-
> libavcodec/vdpau_mpeg4.c | 2 +-
> libavcodec/vdpau_vc1.c | 2 +-
> libavcodec/wmv2.h | 4 +-
> libavcodec/wmv2dec.c | 326 ++---
> libavcodec/wmv2dec.h | 4 +-
> libavcodec/wmv2enc.c | 8 +-
> libavcodec/x86/mpegvideo.c | 2 +-
> libavcodec/x86/mpegvideoenc.c | 1 -
> libavcodec/x86/mpegvideoenc_template.c | 1 +
> 70 files changed, 3347 insertions(+), 3267 deletions(-)
>
>
> base-commit: e6298e0759430f64e9bd9298775de92597be8a50
> Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-102%2Fmkver%2FH263DecContext-v1
> Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-102/mkver/H263DecContext-v1
> Pull-Request: https://github.com/ffstaging/FFmpeg/pull/102
Will apply tonight unless there are objections.
- Andreas
More information about the ffmpeg-devel
mailing list