[FFmpeg-devel] [PATCH] avfilter/af_adelay: make per channel delay argument an int64_t

James Almer jamrial at gmail.com
Fri Apr 23 17:33:57 EEST 2021


On 4/23/2021 11:18 AM, Andreas Rheinhardt wrote:
> James Almer:
>> Should fix ticket #9196
>>
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>>   libavfilter/af_adelay.c | 13 +++++++++----
>>   1 file changed, 9 insertions(+), 4 deletions(-)
>>
>> diff --git a/libavfilter/af_adelay.c b/libavfilter/af_adelay.c
>> index 6ac81c2a3e..81ff7947f5 100644
>> --- a/libavfilter/af_adelay.c
>> +++ b/libavfilter/af_adelay.c
>> @@ -28,9 +28,9 @@
>>   #include "internal.h"
>>   
>>   typedef struct ChanDelay {
>> -    int delay;
>> -    unsigned delay_index;
>> -    unsigned index;
>> +    int64_t delay;
>> +    size_t delay_index;
>> +    size_t index;
>>       uint8_t *samples;
>>   } ChanDelay;
>>   
>> @@ -152,7 +152,7 @@ static int config_input(AVFilterLink *inlink)
>>   
>>           p = NULL;
>>   
>> -        ret = av_sscanf(arg, "%d%c", &d->delay, &type);
>> +        ret = av_sscanf(arg, "%"SCNd64"%c", &d->delay, &type);
>>           if (ret != 2 || type != 'S') {
>>               div = type == 's' ? 1.0 : 1000.0;
>>               if (av_sscanf(arg, "%f", &delay) != 1) {
>> @@ -194,6 +194,11 @@ static int config_input(AVFilterLink *inlink)
>>           if (!d->delay)
>>               continue;
>>   
>> +        if (d->delay > SIZE_MAX) {
> 
> Does this give a new compiler warning on 64bit systems (where this check
> is tautologically false)?

Not here with GCC 10.2.0 mingw-w64, at least.
With -Wextra it prints a -Wsign-compare warning, but it gets buried in a 
dozen other similar warnings.

Do you prefer if i make the check "d->delay > SIZE_MAX / s->block_align" 
instead?

> 
>> +            av_log(ctx, AV_LOG_ERROR, "Requested delay is too big.\n");
>> +            return AVERROR(EINVAL);
>> +        }
>> +
>>           d->samples = av_malloc_array(d->delay, s->block_align);
>>           if (!d->samples)
>>               return AVERROR(ENOMEM);
>>
> 
> _______________________________________________
> 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