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().
This commit is contained in:
@@ -437,7 +437,9 @@ static int request_frame(AVFilterLink *outlink)
|
|||||||
ret = calc_active_inputs(s);
|
ret = calc_active_inputs(s);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s->active_inputs > 1) {
|
||||||
available_samples = get_available_samples(s);
|
available_samples = get_available_samples(s);
|
||||||
if (!available_samples)
|
if (!available_samples)
|
||||||
return AVERROR(EAGAIN);
|
return AVERROR(EAGAIN);
|
||||||
|
Reference in New Issue
Block a user