From 6380f2e3670a8cfc29b9b02da0f2be0c537315f8 Mon Sep 17 00:00:00 2001 From: Pavel Koshevoy Date: Tue, 19 Aug 2014 00:17:59 -0600 Subject: avfilter/atempo: Flush all buffered input samples Fixes ticket #3829 Signed-off-by: Michael Niedermayer --- libavfilter/af_atempo.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c index 6a3fd61e60..fcd0cb0693 100644 --- a/libavfilter/af_atempo.c +++ b/libavfilter/af_atempo.c @@ -949,7 +949,13 @@ static int yae_flush(ATempoContext *atempo, } } - // flush the remaininder of the current fragment: + // check whether all of the input samples have been consumed: + if (frag->position[0] + frag->nsamples < atempo->position[0]) { + yae_advance_to_next_frag(atempo); + return AVERROR(EAGAIN); + } + + // flush the remainder of the current fragment: start_here = FFMAX(atempo->position[1], overlap_end); stop_here = frag->position[1] + frag->nsamples; offset = start_here - frag->position[1]; -- cgit v1.2.3