Commit 373f21a9 authored by Nicolas George's avatar Nicolas George

lavfi: avfilter_graph_request_oldest: request a frame again before returning.

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.
parent 0ed4993a
...@@ -1407,7 +1407,11 @@ int avfilter_graph_request_oldest(AVFilterGraph *graph) ...@@ -1407,7 +1407,11 @@ int avfilter_graph_request_oldest(AVFilterGraph *graph)
frame_count = oldest->frame_count_out; frame_count = oldest->frame_count_out;
while (frame_count == oldest->frame_count_out) { while (frame_count == oldest->frame_count_out) {
r = ff_filter_graph_run_once(graph); 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 r;
} }
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment