From 8ec7272d99e9b7cafcfff178f45e1203d73d38dc Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Sun, 15 Feb 2015 20:52:10 +0100 Subject: [PATCH] flowcombiner: add a gst_flow_combiner_reset() method https://bugzilla.gnome.org/show_bug.cgi?id=744572 API: gst_flow_combiner_reset() --- libs/gst/base/gstflowcombiner.c | 24 ++++++++++++++++++++++++ libs/gst/base/gstflowcombiner.h | 2 ++ 2 files changed, 26 insertions(+) diff --git a/libs/gst/base/gstflowcombiner.c b/libs/gst/base/gstflowcombiner.c index 5d11c6d..435c514 100644 --- a/libs/gst/base/gstflowcombiner.c +++ b/libs/gst/base/gstflowcombiner.c @@ -158,6 +158,30 @@ gst_flow_combiner_clear (GstFlowCombiner * combiner) combiner->last_ret = GST_FLOW_OK; } +/** + * gst_flow_combiner_reset: + * @combiner: the #GstFlowCombiner to clear + * + * Removes all pads from a #GstFlowCombiner and resets it to its initial state. + * + * Since: 1.6 + */ +void +gst_flow_combiner_reset (GstFlowCombiner * combiner) +{ + GList *iter; + + g_return_if_fail (combiner != NULL); + + GST_DEBUG ("Reset flow returns"); + + for (iter = combiner->pads.head; iter; iter = iter->next) { + GST_PAD_LAST_FLOW_RETURN (iter->data) = GST_FLOW_OK; + } + + combiner->last_ret = GST_FLOW_OK; +} + static GstFlowReturn gst_flow_combiner_get_flow (GstFlowCombiner * combiner) { diff --git a/libs/gst/base/gstflowcombiner.h b/libs/gst/base/gstflowcombiner.h index 692618e..f31d65d 100644 --- a/libs/gst/base/gstflowcombiner.h +++ b/libs/gst/base/gstflowcombiner.h @@ -53,6 +53,8 @@ void gst_flow_combiner_remove_pad (GstFlowCombiner * combiner, GstP void gst_flow_combiner_clear (GstFlowCombiner * combiner); +void gst_flow_combiner_reset (GstFlowCombiner * combiner); + GType gst_flow_combiner_get_type (void); G_END_DECLS -- 2.7.4