summaryrefslogtreecommitdiff
path: root/libavfilter/internal.h
diff options
context:
space:
mode:
authorNicolas George <george@nsup.org>2015-08-25 20:33:48 +0200
committerNicolas George <george@nsup.org>2015-09-20 19:02:33 +0200
commit2a351f6c5521c199b4285e4e42f2321e312170bd (patch)
tree12eb1841bec672aab701b908d37416b28826bc9e /libavfilter/internal.h
parent598f8a7afae6d0b8a49f85ec2de69acdc5e7ac6a (diff)
lavfi: drop the requirement that request_frame returns a frame.
It requires a loop in filters or the framework, that makes the scheduling less efficient and more complex. This is purely an internal change since the loop is now present in buffersink. Note that no filter except buffersink did rely on the requirement.
Diffstat (limited to 'libavfilter/internal.h')
-rw-r--r--libavfilter/internal.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/libavfilter/internal.h b/libavfilter/internal.h
index 7816654010..1454112433 100644
--- a/libavfilter/internal.h
+++ b/libavfilter/internal.h
@@ -102,9 +102,9 @@ struct AVFilterPad {
int (*poll_frame)(AVFilterLink *link);
/**
- * Frame request callback. A call to this should result in at least one
- * frame being output over the given link. This should return zero on
- * success, and another value on error.
+ * Frame request callback. A call to this should result in some progress
+ * towards producing output over the given link. This should return zero
+ * on success, and another value on error.
*
* Output pads only.
*/
@@ -291,8 +291,11 @@ int ff_poll_frame(AVFilterLink *link);
* caller (generally eventually a user application) as this step may (but does
* not have to be) necessary to provide the input with the next frame.
*
- * If a request is successful then the filter_frame() function will be called
- * at least once before ff_request_frame() returns
+ * If a request is successful then some progress has been made towards
+ * providing a frame on the link (through ff_filter_frame()). A filter that
+ * needs several frames to produce one is allowed to return success if one
+ * more frame has been processed but no output has been produced yet. A
+ * filter is also allowed to simply forward a success return value.
*
* @param link the input link
* @return zero on success