[FFmpeg-cvslog] avfiltergraph: document a catch in request_oldest().

Nicolas George git at videolan.org
Tue Jul 17 23:58:31 CEST 2012

ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Tue Jul 17 17:53:50 2012 +0200| [d4838675253513504c4e0d0ed92489b3c4e6cf8d] | committer: Nicolas George

avfiltergraph: document a catch in request_oldest().

This one is tricky. Consider a graph with two sink links, A and B.
request_oldest() requests on A, and A returns EOF. This EOF causes
a filter to flush pending frames to B; they are unrequested.
Then request_oldest() moves on to B, and B returns EOF.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d4838675253513504c4e0d0ed92489b3c4e6cf8d

 libavfilter/avfiltergraph.h |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h
index c55b549..3b05357 100644
--- a/libavfilter/avfiltergraph.h
+++ b/libavfilter/avfiltergraph.h
@@ -255,6 +255,12 @@ char *avfilter_graph_dump(AVFilterGraph *graph, const char *options);
  * of a filtergraph, only a convenience function to help drain a filtergraph
  * in a balanced way under normal circumstances.
+ * Also note that AVERROR_EOF does not mean that frames did not arrive on
+ * some of the sinks during the process.
+ * When there are multiple sink links, in case the requested link
+ * returns an EOF, this may cause a filter to flush pending frames
+ * which are sent to another sink link, although unrequested.
+ *
  * @return  the return value of ff_request_frame,
  *          or AVERROR_EOF of all links returned AVERROR_EOF.

More information about the ffmpeg-cvslog mailing list