avfilter/atempo: Flush all buffered input samples

Fixes ticket #3829

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Pavel Koshevoy 2014-08-19 00:17:59 -06:00 committed by Michael Niedermayer
parent c9a5497a0b
commit 6380f2e367

View File

@ -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); start_here = FFMAX(atempo->position[1], overlap_end);
stop_here = frag->position[1] + frag->nsamples; stop_here = frag->position[1] + frag->nsamples;
offset = start_here - frag->position[1]; offset = start_here - frag->position[1];