From c7bd556d482b3bb25bb6dd3bdf3542622d7cd482 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Wed, 30 May 2012 08:48:26 -0400 Subject: lavfi: amix: check active input count before calling request_samples fixes use of the amix filter with only 1 input --- libavfilter/af_amix.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'libavfilter/af_amix.c') diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c index 3399b7c051..d4af9a4234 100644 --- a/libavfilter/af_amix.c +++ b/libavfilter/af_amix.c @@ -389,6 +389,10 @@ static int request_frame(AVFilterLink *outlink) int ret; int wanted_samples, available_samples; + ret = calc_active_inputs(s); + if (ret < 0) + return ret; + if (s->input_state[0] == INPUT_OFF) { ret = request_samples(ctx, 1); if (ret < 0) @@ -419,15 +423,16 @@ static int request_frame(AVFilterLink *outlink) av_assert0(s->frame_list->nb_frames > 0); wanted_samples = frame_list_next_frame_size(s->frame_list); - ret = request_samples(ctx, wanted_samples); - if (ret < 0) - return ret; - - ret = calc_active_inputs(s); - if (ret < 0) - return ret; if (s->active_inputs > 1) { + ret = request_samples(ctx, wanted_samples); + if (ret < 0) + return ret; + + ret = calc_active_inputs(s); + if (ret < 0) + return ret; + available_samples = get_available_samples(s); if (!available_samples) return 0; -- cgit v1.2.3