diff mbox series

[FFmpeg-devel,1/2] avcodec/mpegvideo: Don't initialize H264Chroma ctx unnecessarily

Message ID AS8P250MB0744149DC87FAB32814CAF938F2E9@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM
State Accepted
Headers show
Series [FFmpeg-devel,1/2] avcodec/mpegvideo: Don't initialize H264Chroma ctx unnecessarily | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt Oct. 24, 2022, 2:21 a.m. UTC
It is only used by the decoders' lowres code, so only initialize
it for decoders.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 configure                  | 4 ++--
 libavcodec/mpegvideo.c     | 1 -
 libavcodec/mpegvideo_dec.c | 3 +++
 3 files changed, 5 insertions(+), 3 deletions(-)

Comments

Andreas Rheinhardt Oct. 26, 2022, 11:33 p.m. UTC | #1
Andreas Rheinhardt:
> It is only used by the decoders' lowres code, so only initialize
> it for decoders.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
>  configure                  | 4 ++--
>  libavcodec/mpegvideo.c     | 1 -
>  libavcodec/mpegvideo_dec.c | 3 +++
>  3 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/configure b/configure
> index eefd103414..dd207769a2 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..697438fa6f 100644
> --- a/libavcodec/mpegvideo.c
> +++ b/libavcodec/mpegvideo.c
> @@ -275,7 +275,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;
>              }
>          }

Will apply the first two patches of this patchset tonight.

- Andreas
diff mbox series

Patch

diff --git a/configure b/configure
index eefd103414..dd207769a2 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..697438fa6f 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -275,7 +275,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;
             }
         }