ghostpad: Only implement the iterate_internal_links function on proxypads

ghostpads inherit it from their parent class. Also make it threadsafe.
This commit is contained in:
Sebastian Dröge 2011-05-06 15:25:04 +02:00
parent a216426bb6
commit b36ce63f38

View file

@ -136,12 +136,16 @@ static GstIterator *
gst_proxy_pad_do_iterate_internal_links (GstPad * pad) gst_proxy_pad_do_iterate_internal_links (GstPad * pad)
{ {
GstIterator *res = NULL; GstIterator *res = NULL;
GstPad *internal = GST_PROXY_PAD_INTERNAL (pad); GstPad *internal;
internal =
GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD_CAST (pad)));
if (internal) { if (internal) {
res = res =
gst_iterator_new_single (GST_TYPE_PAD, internal, gst_iterator_new_single (GST_TYPE_PAD, internal,
(GstCopyFunction) gst_object_ref, (GFreeFunc) gst_object_unref); (GstCopyFunction) gst_object_ref, (GFreeFunc) gst_object_unref);
gst_object_unref (internal);
} }
return res; return res;
@ -816,21 +820,6 @@ gst_ghost_pad_do_setcaps (GstPad * pad, GstCaps * caps)
return gst_proxy_pad_do_setcaps (pad, 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 static void
gst_ghost_pad_class_init (GstGhostPadClass * klass) gst_ghost_pad_class_init (GstGhostPadClass * klass)
{ {
@ -859,8 +848,6 @@ gst_ghost_pad_init (GstGhostPad * pad)
gst_ghost_pad_do_activate_pull); gst_ghost_pad_do_activate_pull);
gst_pad_set_activatepush_function (GST_PAD_CAST (pad), gst_pad_set_activatepush_function (GST_PAD_CAST (pad),
gst_ghost_pad_do_activate_push); gst_ghost_pad_do_activate_push);
gst_pad_set_iterate_internal_links_function (GST_PAD_CAST (pad),
gst_ghost_pad_do_iterate_internal_links);
} }
static void static void