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.
This commit is contained in:
Sebastian Dröge 2009-11-01 11:24:40 +01:00
parent 28493b04ec
commit 15229ab669

View file

@ -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