From: Olivier CrĂȘte Date: Wed, 2 Aug 2017 16:08:26 +0000 (-0400) Subject: aggregator: Remove pad iterator function X-Git-Tag: 1.16.2~574^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e9fafb3e1788615db30b276a89ba172cff38a54c;p=platform%2Fupstream%2Fgstreamer.git aggregator: Remove pad iterator function Use new gst_element_foreach_sink_pad() from core instead. https://bugzilla.gnome.org/show_bug.cgi?id=785679 --- diff --git a/libs/gst/base/gstaggregator.c b/libs/gst/base/gstaggregator.c index 33bdc39..387e697 100644 --- a/libs/gst/base/gstaggregator.c +++ b/libs/gst/base/gstaggregator.c @@ -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) { diff --git a/libs/gst/base/gstaggregator.h b/libs/gst/base/gstaggregator.h index ba65035..f8b9225 100644 --- a/libs/gst/base/gstaggregator.h +++ b/libs/gst/base/gstaggregator.h @@ -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