aggregator: Remove pad iterator function
authorOlivier Crête <olivier.crete@collabora.com>
Wed, 2 Aug 2017 16:08:26 +0000 (12:08 -0400)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 2 Dec 2017 15:10:27 +0000 (15:10 +0000)
Use new gst_element_foreach_sink_pad() from core instead.

https://bugzilla.gnome.org/show_bug.cgi?id=785679

libs/gst/base/gstaggregator.c
libs/gst/base/gstaggregator.h

index 33bdc39..387e697 100644 (file)
@@ -356,87 +356,6 @@ enum
 static GstFlowReturn gst_aggregator_pad_chain_internal (GstAggregator * self,
     GstAggregatorPad * aggpad, GstBuffer * buffer, gboolean head);
 
-/**
- * gst_aggregator_iterate_sinkpads:
- * @self: The #GstAggregator
- * @func: (scope call): The function to call.
- * @user_data: (closure): The data to pass to @func.
- *
- * Iterate the sinkpads of aggregator to call a function on them.
- *
- * This method guarantees that @func will be called only once for each
- * sink pad.
- *
- * Returns: %FALSE if there are no sinkpads or if @func returned %FALSE
- */
-gboolean
-gst_aggregator_iterate_sinkpads (GstAggregator * self,
-    GstAggregatorPadForeachFunc func, gpointer user_data)
-{
-  gboolean result = FALSE;
-  GstIterator *iter;
-  gboolean done = FALSE;
-  GValue item = { 0, };
-  GList *seen_pads = NULL;
-
-  iter = gst_element_iterate_sink_pads (GST_ELEMENT (self));
-
-  if (!iter)
-    goto no_iter;
-
-  while (!done) {
-    switch (gst_iterator_next (iter, &item)) {
-      case GST_ITERATOR_OK:
-      {
-        GstAggregatorPad *pad;
-
-        pad = g_value_get_object (&item);
-
-        /* if already pushed, skip. FIXME, find something faster to tag pads */
-        if (pad == NULL || g_list_find (seen_pads, pad)) {
-          g_value_reset (&item);
-          break;
-        }
-
-        GST_LOG_OBJECT (pad, "calling function %s on pad",
-            GST_DEBUG_FUNCPTR_NAME (func));
-
-        result = func (self, pad, user_data);
-
-        done = !result;
-
-        seen_pads = g_list_prepend (seen_pads, pad);
-
-        g_value_reset (&item);
-        break;
-      }
-      case GST_ITERATOR_RESYNC:
-        gst_iterator_resync (iter);
-        break;
-      case GST_ITERATOR_ERROR:
-        GST_ERROR_OBJECT (self,
-            "Could not iterate over internally linked pads");
-        done = TRUE;
-        break;
-      case GST_ITERATOR_DONE:
-        done = TRUE;
-        break;
-    }
-  }
-  g_value_unset (&item);
-  gst_iterator_free (iter);
-
-  if (seen_pads == NULL) {
-    GST_DEBUG_OBJECT (self, "No pad seen");
-    return FALSE;
-  }
-
-  g_list_free (seen_pads);
-
-no_iter:
-  return result;
-}
-
 static gboolean
 gst_aggregator_pad_queue_is_empty (GstAggregatorPad * pad)
 {
index ba65035..f8b9225 100644 (file)
@@ -331,11 +331,6 @@ typedef gboolean (*GstAggregatorPadForeachFunc)    (GstAggregator
                                                     gpointer                         user_data);
 
 GST_EXPORT
-gboolean gst_aggregator_iterate_sinkpads           (GstAggregator                 *  self,
-                                                    GstAggregatorPadForeachFunc      func,
-                                                    gpointer                         user_data);
-
-GST_EXPORT
 GstClockTime  gst_aggregator_get_latency           (GstAggregator                 *  self);
 
 GST_EXPORT