summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorNicolas George <george@nsup.org>2016-12-24 13:16:59 +0100
committerNicolas George <george@nsup.org>2017-01-12 14:06:16 +0100
commit9eb4c79afd437a2913088cb1593892625a3125fc (patch)
treeddbafc3c53b9d577867b2f1ed2c4126fac7e448b /libavfilter
parentd3cb140433fe1dfcd3c1f1bd5febe95b2b338a06 (diff)
lavfi: add ff_inlink_request_frame().
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/avfilter.c8
-rw-r--r--libavfilter/filters.h8
2 files changed, 16 insertions, 0 deletions
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 741676a9ec..75597d054e 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -1638,6 +1638,14 @@ int ff_inlink_evaluate_timeline_at_frame(AVFilterLink *link, const AVFrame *fram
return fabs(av_expr_eval(dstctx->enable, dstctx->var_values, NULL)) >= 0.5;
}
+void ff_inlink_request_frame(AVFilterLink *link)
+{
+ av_assert1(!link->status_in);
+ av_assert1(!link->status_out);
+ link->frame_wanted_out = 1;
+ ff_filter_set_ready(link->src, 100);
+}
+
const AVClass *avfilter_get_class(void)
{
return &avfilter_class;
diff --git a/libavfilter/filters.h b/libavfilter/filters.h
index fe3b612fc2..2c78d60e62 100644
--- a/libavfilter/filters.h
+++ b/libavfilter/filters.h
@@ -126,4 +126,12 @@ int ff_inlink_make_frame_writable(AVFilterLink *link, AVFrame **rframe);
*/
int ff_inlink_acknowledge_status(AVFilterLink *link, int *rstatus, int64_t *rpts);
+/**
+ * Mark that a frame is wanted on the link.
+ * Unlike ff_filter_frame(), it must not be called when the link has a
+ * non-zero status, and thus does not acknowledge it.
+ * Also it cannot fail.
+ */
+void ff_inlink_request_frame(AVFilterLink *link);
+
#endif /* AVFILTER_FILTERS_H */