From 4c8e3725d9ffe4baa5b5e3adec06aa2e68a89455 Mon Sep 17 00:00:00 2001 From: Nikolas Bowe via ffmpeg-devel Date: Fri, 5 Apr 2019 17:11:15 -0700 Subject: avfilter/af_asetnsamples: fix sample queuing. 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 Signed-off-by: Michael Niedermayer --- libavfilter/af_asetnsamples.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'libavfilter/af_asetnsamples.c') diff --git a/libavfilter/af_asetnsamples.c b/libavfilter/af_asetnsamples.c index c60ce3063f..cab02d56f6 100644 --- a/libavfilter/af_asetnsamples.c +++ b/libavfilter/af_asetnsamples.c @@ -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) { -- cgit v1.2.3