From b7558ac293f199ac408117618a61567ee1ee7077 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 5 Jul 2012 21:51:44 +0200 Subject: af_amix: avoid spurious EAGAIN. Input on/off state can change in request_samples(), which can result in a state where only the first input is active. get_available_samples() will then return 0, and request_frame() will fail with EAGAIN even though there is data on the single active input. Take this into account and check the number of active inputs again after calling request_samples(). --- libavfilter/af_amix.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libavfilter') diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c index deeaa036ac..439231fbd1 100644 --- a/libavfilter/af_amix.c +++ b/libavfilter/af_amix.c @@ -437,7 +437,9 @@ static int request_frame(AVFilterLink *outlink) ret = calc_active_inputs(s); if (ret < 0) return ret; + } + if (s->active_inputs > 1) { available_samples = get_available_samples(s); if (!available_samples) return AVERROR(EAGAIN); -- cgit v1.2.3