[FFmpeg-devel] [PATCH] af_tempo.c: fix checking of samples and zero frame counts
Pavel Koshevoy
pkoshevoy at gmail.com
Wed Mar 13 05:08:00 EET 2024
On Tue, Mar 12, 2024 at 8:22 PM Pavel Koshevoy <pkoshevoy at gmail.com> wrote:
>
>
> On Tue, Mar 12, 2024 at 2:52 AM Rajiv Harlalka <rajivharlalka009 at gmail.com>
> wrote:
>
>> 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
>>
>> _______________________________________________
>> 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".
>>
>
>
> either I don't know how to apply emailed patches, or the patch was mangled:
> ```
> $ git am ~/Downloads/\[FFmpeg-devel\]\ \[PATCH\]\ af_tempo.c_\ fix\
> checking\ of\ samples\ and\ zero\ frame\ counts.eml
> warning: Patch sent with format=flowed; space at the end of lines might be
> lost.
> Applying: af_tempo.c: fix checking of samples and zero frame counts
> error: corrupt patch at line 34
> Patch failed at 0001 af_tempo.c: fix checking of samples and zero frame
> counts
> hint: Use 'git am --show-current-patch=diff' to see the failed patch
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --abort".
>
> ```
>
> I'll try to recreate the patch manually
>
>
I've reformatted the patch and tested locally -- looks good to me.
I've re-submitted the reformatted patch here
https://ffmpeg.org/pipermail/ffmpeg-devel/2024-March/323364.html
Feel free to apply and push.
Pavel
More information about the ffmpeg-devel
mailing list