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

Rajiv Harlalka rajivharlalka009 at gmail.com
Fri Mar 8 00:58:17 EET 2024


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 :
-- 
2.44.0


More information about the ffmpeg-devel mailing list