[FFmpeg-devel] [PATCH 4/4] lavc/mpv_enc: rationalize dct_quantize init

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sun Jun 9 11:37:41 EEST 2024


Rémi Denis-Courmont:
> On entry the function pointer is always NULL. We just need to set the
> pointer before probing x86 CPU optimisations.
> 

Incorrect:
https://github.com/mkver/FFmpeg/commit/d22d4ee8419788f9bb239a21e276cebce0891737
(see also
https://github.com/mkver/FFmpeg/commits/mpegvideo_pool/?after=d2dfcf8f226c3708f3df080aed043ff4aa26e7cd+34
which contains the equivalent of patches 1+2 and a better version of #4)

> Note that there is a third code path setting this function pointer, but
> it does so *after* calling this function: the DNxHD encoder.
> ---
>  libavcodec/mpegvideo_enc.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
> index af04db70d8..49eed6301b 100644
> --- a/libavcodec/mpegvideo_enc.c
> +++ b/libavcodec/mpegvideo_enc.c
> @@ -371,14 +371,13 @@ static void mpv_encode_defaults(MpegEncContext *s)
>  
>  av_cold int ff_dct_encode_init(MpegEncContext *s)
>  {
> +    s->dct_quantize = dct_quantize_c;
>  #if ARCH_X86
>      ff_dct_encode_init_x86(s);
>  #endif
>  
>      if (CONFIG_H263_ENCODER)
>          ff_h263dsp_init(&s->h263dsp);
> -    if (!s->dct_quantize)
> -        s->dct_quantize = dct_quantize_c;
>      if (!s->denoise_dct)
>          s->denoise_dct  = denoise_dct_c;
>      s->fast_dct_quantize = s->dct_quantize;



More information about the ffmpeg-devel mailing list