From 124c856d389af4ca1f6ac914271a892762df269d Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Fri, 12 Sep 2025 02:38:23 +0200 Subject: [PATCH] avcodec/mjpegdec: Move initializing HpelDSPContext to mxpegdec.c Only the mxpeg decoder uses it (and the reference/bitmask feature of ff_mjpeg_decode_sos()). So only initialize it for mxpeg which allows to remove the mjpeg->hpeldsp dependency. Reviewed-by: Michael Niedermayer Signed-off-by: Andreas Rheinhardt --- configure | 4 ++-- libavcodec/mjpegdec.c | 1 - libavcodec/mxpegdec.c | 3 +++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 8f2decb95f..8def62a5d9 100755 --- a/configure +++ b/configure @@ -3076,9 +3076,9 @@ mdec_decoder_select="blockdsp bswapdsp idctdsp" media100_decoder_select="media100_to_mjpegb_bsf mjpegb_decoder" metasound_decoder_select="lsp sinewin" mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp" -mjpeg_decoder_select="blockdsp hpeldsp idctdsp jpegtables" +mjpeg_decoder_select="blockdsp idctdsp jpegtables" mjpeg_encoder_select="jpegtables mpegvideoenc" -mjpegb_decoder_select="mjpeg_decoder" +mjpegb_decoder_select="hpeldsp mjpeg_decoder" mlp_decoder_select="mlp_parser" mlp_encoder_select="lpc audio_frame_queue" mobiclip_decoder_select="bswapdsp golomb" diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 9ee190c419..b47d7f58ca 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -133,7 +133,6 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx) s->avctx = avctx; ff_blockdsp_init(&s->bdsp); - ff_hpeldsp_init(&s->hdsp, avctx->flags); init_idct(avctx); s->buffer_size = 0; s->buffer = NULL; diff --git a/libavcodec/mxpegdec.c b/libavcodec/mxpegdec.c index 8661bba566..8054d016be 100644 --- a/libavcodec/mxpegdec.c +++ b/libavcodec/mxpegdec.c @@ -28,6 +28,7 @@ #include "libavutil/mem.h" #include "codec_internal.h" #include "decode.h" +#include "hpeldsp.h" #include "mjpeg.h" #include "mjpegdec.h" @@ -65,6 +66,8 @@ static av_cold int mxpeg_decode_init(AVCodecContext *avctx) { MXpegDecodeContext *s = avctx->priv_data; + ff_hpeldsp_init(&s->jpg.hdsp, avctx->flags); + s->picture[0] = av_frame_alloc(); s->picture[1] = av_frame_alloc(); if (!s->picture[0] || !s->picture[1])