diff options
author | Marton Balint <cus@passwd.hu> | 2017-05-06 02:12:24 +0300 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2017-05-07 20:37:34 +0300 |
commit | c0443c1af1a772daf33731da7262f3aa6b28dc8e (patch) | |
tree | 7a831baf97761cc5b61b4c1756dad2d3a3156c48 /libavfilter | |
parent | 441026fcb13ac23aa10edc312bdacb6445a0ad06 (diff) |
lavfi/avfiltergraph: only return EOF in avfilter_graph_request_oldest if all sinks EOFed
Fixes a regression introduced in 32c59a115d3cc757676b5384a5ea44b5a7a7b872,
becoming effective in 912969a33e313c57c906e87a7e2367b78a2160f4.
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>
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/avfiltergraph.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index f7fbf119eb..598e50a077 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -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", |