From ffead361c6bcdf574f45dfeff8a06b51b35b74e9 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Date: Tue, 25 Mar 2025 04:22:27 +0100 Subject: [PATCH 09/11] avcodec/mpegvideo: Don't set [bf]_code for non-MPEG-4 decoders It is only used by encoders and the MPEG-4 decoder. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/flvdec.c | 2 -- libavcodec/intelh263dec.c | 1 - libavcodec/ituh263dec.c | 1 - libavcodec/mpeg4videodec.c | 8 ++++---- libavcodec/mpegvideo.c | 3 --- libavcodec/mpegvideo_enc.c | 3 +++ libavcodec/rv10.c | 2 -- 7 files changed, 7 insertions(+), 13 deletions(-) diff --git a/libavcodec/flvdec.c b/libavcodec/flvdec.c index f4bfd99417..627538ef83 100644 --- a/libavcodec/flvdec.c +++ b/libavcodec/flvdec.c @@ -97,8 +97,6 @@ int ff_flv_decode_picture_header(MpegEncContext *s) if (skip_1stop_8data_bits(&s->gb) < 0) return AVERROR_INVALIDDATA; - s->f_code = 1; - if (s->ehc_mode) s->avctx->sample_aspect_ratio= (AVRational){1,2}; diff --git a/libavcodec/intelh263dec.c b/libavcodec/intelh263dec.c index 4efae7938c..374dfdc0de 100644 --- a/libavcodec/intelh263dec.c +++ b/libavcodec/intelh263dec.c @@ -118,7 +118,6 @@ int ff_intel_h263_decode_picture_header(MpegEncContext *s) /* PEI */ if (skip_1stop_8data_bits(&s->gb) < 0) return AVERROR_INVALIDDATA; - s->f_code = 1; ff_h263_show_pict_info(s); diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c index d451a35da8..6c9c2583e3 100644 --- a/libavcodec/ituh263dec.c +++ b/libavcodec/ituh263dec.c @@ -1353,7 +1353,6 @@ int ff_h263_decode_picture_header(MpegEncContext *s) return -1; } } - s->f_code = 1; if (s->pict_type == AV_PICTURE_TYPE_B) s->low_delay = 0; diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index cb32f0e300..e21f1d24a2 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -3329,6 +3329,8 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb, } } + s->f_code = 1; + s->b_code = 1; if (ctx->shape != BIN_ONLY_SHAPE) { s->chroma_qscale = s->qscale = get_bits(gb, ctx->quant_precision); if (s->qscale == 0) { @@ -3345,8 +3347,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb, s->f_code = 1; return AVERROR_INVALIDDATA; // makes no sense to continue, as there is nothing left from the image then } - } else - s->f_code = 1; + } if (s->pict_type == AV_PICTURE_TYPE_B) { s->b_code = get_bits(gb, 3); @@ -3356,8 +3357,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb, s->b_code=1; return AVERROR_INVALIDDATA; // makes no sense to continue, as the MV decoding will break very quickly } - } else - s->b_code = 1; + } if (s->avctx->debug & FF_DEBUG_PICT_INFO) { av_log(s->avctx, AV_LOG_DEBUG, diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 794b2d0f66..d09eb1211d 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -236,9 +236,6 @@ av_cold void ff_mpv_common_defaults(MpegEncContext *s) s->picture_number = 0; - s->f_code = 1; - s->b_code = 1; - s->slice_context_count = 1; } diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 3d67df8d73..02255fdaed 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -285,6 +285,9 @@ static av_cold void mpv_encode_defaults(MPVMainEncContext *const m) ff_mpv_common_defaults(&s->c); + s->c.f_code = 1; + s->c.b_code = 1; + if (!m->fcode_tab) { m->fcode_tab = default_fcode_tab + MAX_MV; ff_thread_once(&init_static_once, mpv_encode_init_static); diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index 753c6c6cb3..d8df7e8612 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -150,7 +150,6 @@ static int rv10_decode_picture_header(MpegEncContext *s) mb_count = s->mb_width * s->mb_height; } skip_bits(&s->gb, 3); /* ignored */ - s->f_code = 1; return mb_count; } @@ -284,7 +283,6 @@ static int rv20_decode_picture_header(RVDecContext *rv, int whole_size) // binary decoder reads 3+2 bits here but they don't seem to be used skip_bits(&s->gb, 5); - s->f_code = 1; s->h263_aic = s->pict_type == AV_PICTURE_TYPE_I; s->modified_quant = 1; if (!s->avctx->lowres) -- 2.45.2