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 |
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 |
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 --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; } }
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(-)