flowcombiner: add a gst_flow_combiner_reset() method
authorMark Nauwelaerts <mnauw@users.sourceforge.net>
Sun, 15 Feb 2015 19:52:10 +0000 (20:52 +0100)
committerMark Nauwelaerts <mnauw@users.sourceforge.net>
Sat, 7 Mar 2015 19:18:43 +0000 (20:18 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=744572

API: gst_flow_combiner_reset()

libs/gst/base/gstflowcombiner.c
libs/gst/base/gstflowcombiner.h

index 5d11c6d..435c514 100644 (file)
@@ -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)
 {
index 692618e..f31d65d 100644 (file)
@@ -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