From 15229ab6697a40357679c0ff31efe1b2b147b12b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 1 Nov 2009 11:24:40 +0100 Subject: [PATCH] ghostpad: Implement iterate internal links The internally linked pad of the ghost pad is its proxy pad, which is the pad that is linked to the ghost pads target. --- gst/gstghostpad.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gst/gstghostpad.c b/gst/gstghostpad.c index b5a62996e9..2eb1a0f24e 100644 --- a/gst/gstghostpad.c +++ b/gst/gstghostpad.c @@ -763,6 +763,21 @@ gst_ghost_pad_do_setcaps (GstPad * pad, GstCaps * caps) return gst_proxy_pad_do_setcaps (pad, caps); } +static GstIterator * +gst_ghost_pad_do_iterate_internal_links (GstPad * pad) +{ + GstIterator *res = NULL; + GstPad *internal = GST_PROXY_PAD_INTERNAL (GST_GHOST_PAD_CAST (pad)); + + if (internal) { + res = + gst_iterator_new_single (GST_TYPE_PAD, internal, + (GstCopyFunction) gst_object_ref, (GFreeFunc) gst_object_unref); + } + + return res; +} + static void gst_ghost_pad_init (GstGhostPad * pad) { @@ -775,6 +790,8 @@ gst_ghost_pad_init (GstGhostPad * pad) GST_DEBUG_FUNCPTR (gst_ghost_pad_do_activate_pull)); gst_pad_set_activatepush_function (GST_PAD_CAST (pad), GST_DEBUG_FUNCPTR (gst_ghost_pad_do_activate_push)); + gst_pad_set_iterate_internal_links_function (GST_PAD_CAST (pad), + GST_DEBUG_FUNCPTR (gst_ghost_pad_do_iterate_internal_links)); } static void