[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