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

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sun Jun 9 11:39:55 EEST 2024


Andreas Rheinhardt:
> 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)

Wait, I see that you only set dct_quantize unconditionally. So your
claim that dct_quantize is always NULL on entry is correct. But setting
only one of the two in the ordinary way is insufficient.

> 
>> 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;
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".



More information about the ffmpeg-devel mailing list