Browse Source

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().
tags/n1.0
Anton Khirnov 13 years ago
parent
commit
b7558ac293
1 changed files with 2 additions and 0 deletions
  1. +2
    -0
      libavfilter/af_amix.c

+ 2
- 0
libavfilter/af_amix.c View File

@@ -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);


Loading…
Cancel
Save