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 <rajivharlalka...@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

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to