aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-10-24 03:20:22 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-10-27 19:37:44 +0200
commit938c62b368e90e5686d08caf9e2b5d12f06ab884 (patch)
treedb813efb82f62c28aefa44221c922b26a2f52313
parente59e14eee11e2efd8b2c58ee1033682ddfe22845 (diff)
downloadffmpeg-938c62b368e90e5686d08caf9e2b5d12f06ab884.tar.gz
avcodec/mpegvideo: Don't initialize H264Chroma ctx unnecessarily
It is only used by the decoders' lowres code, so only initialize it for decoders. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rwxr-xr-xconfigure4
-rw-r--r--libavcodec/mpegvideo.c2
-rw-r--r--libavcodec/mpegvideo_dec.c3
3 files changed, 5 insertions, 4 deletions
diff --git a/configure b/configure
index c5a466657f..2cea06ca1b 100755
--- a/configure
+++ b/configure
@@ -2754,8 +2754,8 @@ me_cmp_select="idctdsp"
mpeg_er_select="error_resilience"
mpegaudio_select="mpegaudiodsp mpegaudioheader"
mpegaudiodsp_select="dct"
-mpegvideo_select="blockdsp h264chroma hpeldsp idctdsp videodsp"
-mpegvideodec_select="mpegvideo mpeg_er"
+mpegvideo_select="blockdsp hpeldsp idctdsp videodsp"
+mpegvideodec_select="h264chroma mpegvideo mpeg_er"
mpegvideoenc_select="aandcttables fdctdsp me_cmp mpegvideo pixblockdsp qpeldsp"
msmpeg4dec_select="h263_decoder"
msmpeg4enc_select="h263_encoder"
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index c436dc8001..dbb72f8e94 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -34,7 +34,6 @@
#include "avcodec.h"
#include "blockdsp.h"
-#include "h264chroma.h"
#include "idctdsp.h"
#include "mathops.h"
#include "mpeg_er.h"
@@ -275,7 +274,6 @@ static void gray8(uint8_t *dst, const uint8_t *src, ptrdiff_t linesize, int h)
static av_cold int dct_init(MpegEncContext *s)
{
ff_blockdsp_init(&s->bdsp);
- ff_h264chroma_init(&s->h264chroma, 8); //for lowres
ff_hpeldsp_init(&s->hdsp, s->avctx->flags);
ff_videodsp_init(&s->vdsp, s->avctx->bits_per_raw_sample);
diff --git a/libavcodec/mpegvideo_dec.c b/libavcodec/mpegvideo_dec.c
index c2d6d8bdd7..12c7144ffb 100644
--- a/libavcodec/mpegvideo_dec.c
+++ b/libavcodec/mpegvideo_dec.c
@@ -51,6 +51,8 @@ void ff_mpv_decode_init(MpegEncContext *s, AVCodecContext *avctx)
/* convert fourcc to upper case */
s->codec_tag = ff_toupper4(avctx->codec_tag);
+
+ ff_h264chroma_init(&s->h264chroma, 8); //for lowres
}
int ff_mpeg_update_thread_context(AVCodecContext *dst,
@@ -83,6 +85,7 @@ int ff_mpeg_update_thread_context(AVCodecContext *dst,
memset(s, 0, sizeof(*s));
s->avctx = dst;
s->private_ctx = private_ctx;
+ memcpy(&s->h264chroma, &s1->h264chroma, sizeof(s->h264chroma));
return err;
}
}