[FFmpeg-devel] [PATCH] af_tempo.c: fix checking of samples and zero frame counts

Rajiv Harlalka rajivharlalka009 at gmail.com
Tue Mar 12 10:52:30 EET 2024


On 3/8/24 4:34 AM, Rajiv Harlalka wrote:
> Check for zeros equal to the total samples early, because in case the 
> check is true we would already be leaving the first few frames out.
>
> Signed-off-by: Rajiv Harlalka <rajivharlalka009 at gmail.com>
> #10692
> ---
>  libavfilter/af_atempo.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c
> index 4621b67b03..8f31c5beaf 100644
> --- a/libavfilter/af_atempo.c
> +++ b/libavfilter/af_atempo.c
> @@ -531,21 +531,20 @@ static int yae_load_frag(ATempoContext *atempo,
>      dst = frag->data;
>       start = atempo->position[0] - atempo->size;
> -    zeros = 0;
> +    // what we don't have we substitute with zeros:
> +    zeros = frag->position[0] < start ? FFMIN(start - 
> frag->position[0], (int64_t)nsamples) : 0;
> +
> +    if (zeros == nsamples) {
> +        return 0;
> +    }
>       if (frag->position[0] < start) {
> -        // what we don't have we substitute with zeros:
> -        zeros = FFMIN(start - frag->position[0], (int64_t)nsamples);
>          av_assert0(zeros != nsamples);
>           memset(dst, 0, zeros * atempo->stride);
>          dst += zeros * atempo->stride;
>      }
>  -    if (zeros == nsamples) {
> -        return 0;
> -    }
> -
>      // get the remaining data from the ring buffer:
>      na = (atempo->head < atempo->tail ?
>            atempo->tail - atempo->head :

Just a quick note to bring attention to a code patch I submitted 
recently. It fixes bug #10692 from the bug tracker on the 
libavfilter/av_atempo filter. A review would be greatly appreciated.

Thanks,
Rajiv



More information about the ffmpeg-devel mailing list