With min_samples, if a frame arrives but is too small, it clears
frame_wanted_out. In most cases, the destination filter would be
activated again later because of frame_wanted_out on its own
outputs, but not sinks.
avfilter_graph_request_oldest() is doing the work of the sink
itself, and is therefore allowed to use frame_blocked_in.
frame_count = oldest->frame_count_out;
while (frame_count == oldest->frame_count_out) {
r = ff_filter_graph_run_once(graph);
- if (r < 0)
+ if (r == AVERROR(EAGAIN) &&
+ !oldest->frame_wanted_out && !oldest->frame_blocked_in &&
+ !oldest->status_in)
+ ff_request_frame(oldest);
+ else if (r < 0)
return r;
}
return 0;