lavfi/avfiltergraph: only return EOF in avfilter_graph_request_oldest if all sinks EOFed

Fixes a regression introduced in 32c59a115d,
becoming effective in 912969a33e.

Fixes trimmed output of
ffmpeg -f lavfi -i "sine=d=0.01" -f lavfi -i "sine=d=1" -filter_complex "[0:a]anull[a1];[1:a]anull[a2]" -map "[a1]" -f null none -map "[a2]" -f framecrc -

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint 2017-05-06 01:12:24 +02:00
parent 441026fcb1
commit c0443c1af1

View File

@ -1399,10 +1399,13 @@ int avfilter_graph_request_oldest(AVFilterGraph *graph)
oldest = graph->sink_links[0];
if (oldest->dst->filter->activate) {
/* For now, buffersink is the only filter implementing activate. */
return av_buffersink_get_frame_flags(oldest->dst, NULL,
AV_BUFFERSINK_FLAG_PEEK);
r = av_buffersink_get_frame_flags(oldest->dst, NULL,
AV_BUFFERSINK_FLAG_PEEK);
if (r != AVERROR_EOF)
return r;
} else {
r = ff_request_frame(oldest);
}
r = ff_request_frame(oldest);
if (r != AVERROR_EOF)
break;
av_log(oldest->dst, AV_LOG_DEBUG, "EOF on sink link %s:%s.\n",