]> git.sesse.net Git - ffmpeg/commitdiff
avfilter/af_asetnsamples: fix sample queuing.
authorNikolas Bowe via ffmpeg-devel <ffmpeg-devel@ffmpeg.org>
Sat, 6 Apr 2019 00:11:15 +0000 (17:11 -0700)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 7 Apr 2019 11:17:34 +0000 (13:17 +0200)
When asetnsamples uses output samples < input samples, remaining samples build up in the fifo over time.
Fix this by marking the filter as ready again if there are enough samples.

Regression since ef3babb2c70f564dc1634b3f29c6e35a2b2dc239
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavfilter/af_asetnsamples.c

index c60ce3063fa8c6e731dfcc20ceb0082df8799e10..cab02d56f6e8b4b1945a2d538d6ef3382ead167c 100644 (file)
@@ -67,8 +67,12 @@ static int activate(AVFilterContext *ctx)
         return ret;
 
     if (ret > 0) {
-        if ((!s->pad || (s->pad && frame->nb_samples == s->nb_out_samples)))
-            return ff_filter_frame(outlink, frame);
+        if ((!s->pad || (s->pad && frame->nb_samples == s->nb_out_samples))) {
+            ret = ff_filter_frame(outlink, frame);
+            if (ff_framequeue_queued_samples(inlink) >= s->nb_out_samples)
+                ff_filter_set_ready(ctx, 100);
+            return ret;
+        }
 
         pad_frame = ff_get_audio_buffer(outlink, s->nb_out_samples);
         if (!pad_frame) {