Message ID | 20240313030116.27113-1-pkoshevoy@gmail.com |
---|---|
State | Accepted |
Commit | 4700925d22c79988688596bda8e862ef3ff39293 |
Headers | show |
Series | [FFmpeg-devel] lavfi/atempo: avoid asendcmd assertion failure | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On Tue, Mar 12, 2024 at 9:01 PM Pavel Koshevoy <pkoshevoy@gmail.com> wrote: > From: Rajiv Harlalka <rajivharlalka009@gmail.com> > > Check for zeros equal to the total samples early, because in > that case we would already be leaving the first few frames out. > > Fixes trac ticket #10692 > --- > libavfilter/af_atempo.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c > index 4621b67b03..654b080e89 100644 > --- a/libavfilter/af_atempo.c > +++ b/libavfilter/af_atempo.c > @@ -531,21 +531,21 @@ static int yae_load_frag(ATempoContext *atempo, > dst = frag->data; > > start = atempo->position[0] - atempo->size; > - zeros = 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; > - } > + // 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) { > + memset(dst, 0, zeros * atempo->stride); > + dst += zeros * atempo->stride; > + } > + > // get the remaining data from the ring buffer: > na = (atempo->head < atempo->tail ? > atempo->tail - atempo->head : > -- > 2.35.3 > > This is a reformatting of an earlier patch from Rajiv -- https://ffmpeg.org/pipermail/ffmpeg-devel/2024-March/322946.html I've tested it locally -- looks good to me, feel free to apply and push. Thank you, Pavel.
On 3/13/24 8:39 AM, Pavel Koshevoy wrote: > On Tue, Mar 12, 2024 at 9:01 PM Pavel Koshevoy <pkoshevoy@gmail.com> wrote: > >> From: Rajiv Harlalka <rajivharlalka009@gmail.com> >> >> Check for zeros equal to the total samples early, because in >> that case we would already be leaving the first few frames out. >> >> Fixes trac ticket #10692 >> --- >> libavfilter/af_atempo.c | 18 +++++++++--------- >> 1 file changed, 9 insertions(+), 9 deletions(-) >> >> diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c >> index 4621b67b03..654b080e89 100644 >> --- a/libavfilter/af_atempo.c >> +++ b/libavfilter/af_atempo.c >> @@ -531,21 +531,21 @@ static int yae_load_frag(ATempoContext *atempo, >> dst = frag->data; >> >> start = atempo->position[0] - atempo->size; >> - zeros = 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; >> - } >> + // 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) { >> + memset(dst, 0, zeros * atempo->stride); >> + dst += zeros * atempo->stride; >> + } >> + >> // get the remaining data from the ring buffer: >> na = (atempo->head < atempo->tail ? >> atempo->tail - atempo->head : >> -- >> 2.35.3 >> >> > This is a reformatting of an earlier patch from Rajiv -- > https://ffmpeg.org/pipermail/ffmpeg-devel/2024-March/322946.html > I've tested it locally -- looks good to me, feel free to apply and push. > Thanks for the review and reformatting. Would also check once on my end why the reformatting was required. Committed in 4700925d22c79988688596bda8e862ef3ff39293 . Cheers, Rajiv
diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c index 4621b67b03..654b080e89 100644 --- a/libavfilter/af_atempo.c +++ b/libavfilter/af_atempo.c @@ -531,21 +531,21 @@ static int yae_load_frag(ATempoContext *atempo, dst = frag->data; start = atempo->position[0] - atempo->size; - zeros = 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; - } + // 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) { + memset(dst, 0, zeros * atempo->stride); + dst += zeros * atempo->stride; + } + // get the remaining data from the ring buffer: na = (atempo->head < atempo->tail ? atempo->tail - atempo->head :
From: Rajiv Harlalka <rajivharlalka009@gmail.com> Check for zeros equal to the total samples early, because in that case we would already be leaving the first few frames out. Fixes trac ticket #10692 --- libavfilter/af_atempo.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)