ghostpad: remove unused code

The code to make sure that caps are properly set on both pads, it now happens
automatically with the caps event.
This commit is contained in:
Wim Taymans 2011-05-17 18:21:38 +02:00
parent 7b8b93ad64
commit 5642f9db8c

View file

@ -77,11 +77,6 @@ static GstPad *gst_proxy_pad_get_target (GstPad * pad);
static void gst_proxy_pad_dispose (GObject * object); static void gst_proxy_pad_dispose (GObject * object);
static void gst_proxy_pad_finalize (GObject * object); static void gst_proxy_pad_finalize (GObject * object);
static void on_src_target_notify (GstPad * target,
GParamSpec * unused, gpointer user_data);
static GParamSpec *pspec_caps = NULL;
/** /**
* gst_proxy_pad_query_type_default: * gst_proxy_pad_query_type_default:
* @pad: a #GstPad. * @pad: a #GstPad.
@ -680,8 +675,6 @@ gst_proxy_pad_init (GstProxyPad * ppad)
struct _GstGhostPadPrivate struct _GstGhostPadPrivate
{ {
/* with PROXY_LOCK */ /* with PROXY_LOCK */
gulong notify_id;
gboolean constructed; gboolean constructed;
}; };
@ -916,96 +909,6 @@ gst_ghost_pad_unlink_default (GstPad * pad)
gst_proxy_pad_set_target (internal, NULL); gst_proxy_pad_set_target (internal, NULL);
} }
static void
on_int_notify (GstPad * internal, GParamSpec * unused, GstGhostPad * pad)
{
#if 0
GstCaps *caps;
gboolean changed;
g_object_get (internal, "caps", &caps, NULL);
GST_DEBUG_OBJECT (pad, "notified %p %" GST_PTR_FORMAT, caps, caps);
GST_OBJECT_LOCK (pad);
changed = (GST_PAD_CAPS (pad) != caps);
if (changed)
gst_caps_replace (&(GST_PAD_CAPS (pad)), caps);
GST_OBJECT_UNLOCK (pad);
if (changed) {
#if GLIB_CHECK_VERSION(2,26,0)
g_object_notify_by_pspec ((GObject *) pad, pspec_caps);
#else
g_object_notify ((GObject *) pad, "caps");
#endif
}
if (caps)
gst_caps_unref (caps);
#endif
}
static void
on_src_target_notify (GstPad * target, GParamSpec * unused, gpointer user_data)
{
GstProxyPad *proxypad;
GstGhostPad *gpad;
GstCaps *caps;
#if 0
gboolean changed;
#endif
g_object_get (target, "caps", &caps, NULL);
GST_OBJECT_LOCK (target);
/* First check if the peer is still available and our proxy pad */
if (!GST_PAD_PEER (target) || !GST_IS_PROXY_PAD (GST_PAD_PEER (target))) {
GST_OBJECT_UNLOCK (target);
goto done;
}
proxypad = GST_PROXY_PAD (GST_PAD_PEER (target));
GST_PROXY_LOCK (proxypad);
/* Now check if the proxypad's internal pad is still there and
* a ghostpad */
if (!GST_PROXY_PAD_INTERNAL (proxypad) ||
!GST_IS_GHOST_PAD (GST_PROXY_PAD_INTERNAL (proxypad))) {
GST_OBJECT_UNLOCK (target);
GST_PROXY_UNLOCK (proxypad);
goto done;
}
gpad = GST_GHOST_PAD (GST_PROXY_PAD_INTERNAL (proxypad));
g_object_ref (gpad);
GST_PROXY_UNLOCK (proxypad);
GST_OBJECT_UNLOCK (target);
#if 0
GST_OBJECT_LOCK (gpad);
GST_DEBUG_OBJECT (gpad, "notified %p %" GST_PTR_FORMAT, caps, caps);
changed = (GST_PAD_CAPS (gpad) != caps);
if (changed)
gst_caps_replace (&(GST_PAD_CAPS (gpad)), caps);
GST_OBJECT_UNLOCK (gpad);
if (changed) {
#if GLIB_CHECK_VERSION(2,26,0)
g_object_notify_by_pspec ((GObject *) gpad, pspec_caps);
#else
g_object_notify ((GObject *) gpad, "caps");
#endif
}
#endif
g_object_unref (gpad);
done:
if (caps)
gst_caps_unref (caps);
}
/** /**
* gst_ghost_pad_setcaps_default: * gst_ghost_pad_setcaps_default:
* @pad: the #GstPad to link. * @pad: the #GstPad to link.
@ -1036,8 +939,6 @@ gst_ghost_pad_class_init (GstGhostPadClass * klass)
g_type_class_add_private (klass, sizeof (GstGhostPadPrivate)); g_type_class_add_private (klass, sizeof (GstGhostPadPrivate));
pspec_caps = g_object_class_find_property (gobject_class, "caps");
gobject_class->dispose = gst_ghost_pad_dispose; gobject_class->dispose = gst_ghost_pad_dispose;
GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_setcaps_default); GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_setcaps_default);
@ -1091,9 +992,6 @@ gst_ghost_pad_dispose (GObject * object)
gst_pad_set_activatepull_function (internal, NULL); gst_pad_set_activatepull_function (internal, NULL);
gst_pad_set_activatepush_function (internal, NULL); gst_pad_set_activatepush_function (internal, NULL);
g_signal_handler_disconnect (internal,
GST_GHOST_PAD_PRIVATE (pad)->notify_id);
/* disposes of the internal pad, since the ghostpad is the only possible object /* disposes of the internal pad, since the ghostpad is the only possible object
* that has a refcount on the internal pad. */ * that has a refcount on the internal pad. */
gst_object_unparent (GST_OBJECT_CAST (internal)); gst_object_unparent (GST_OBJECT_CAST (internal));
@ -1194,15 +1092,6 @@ gst_ghost_pad_construct (GstGhostPad * gpad)
GST_PROXY_PAD_INTERNAL (pad) = internal; GST_PROXY_PAD_INTERNAL (pad) = internal;
GST_PROXY_PAD_INTERNAL (internal) = pad; GST_PROXY_PAD_INTERNAL (internal) = pad;
/* could be more general here, iterating over all writable properties...
* taking the short road for now tho */
GST_GHOST_PAD_PRIVATE (pad)->notify_id =
g_signal_connect (internal, "notify::caps", G_CALLBACK (on_int_notify),
pad);
/* call function to init values of the pad caps */
on_int_notify (internal, NULL, GST_GHOST_PAD_CAST (pad));
/* special activation functions for the internal pad */ /* special activation functions for the internal pad */
gst_pad_set_activatepull_function (internal, gst_pad_set_activatepull_function (internal,
gst_ghost_pad_internal_activate_pull_default); gst_ghost_pad_internal_activate_pull_default);
@ -1453,10 +1342,6 @@ gst_ghost_pad_set_target (GstGhostPad * gpad, GstPad * newtarget)
/* clear old target */ /* clear old target */
GST_PROXY_LOCK (gpad); GST_PROXY_LOCK (gpad);
if ((oldtarget = GST_PROXY_PAD_TARGET (gpad))) { if ((oldtarget = GST_PROXY_PAD_TARGET (gpad))) {
if (GST_PAD_IS_SRC (oldtarget)) {
g_signal_handlers_disconnect_by_func (oldtarget,
(gpointer) on_src_target_notify, NULL);
}
GST_PROXY_PAD_RETARGET (internal) = TRUE; GST_PROXY_PAD_RETARGET (internal) = TRUE;
@ -1473,11 +1358,6 @@ gst_ghost_pad_set_target (GstGhostPad * gpad, GstPad * newtarget)
GST_PROXY_UNLOCK (gpad); GST_PROXY_UNLOCK (gpad);
if (result && newtarget) { if (result && newtarget) {
if (GST_PAD_IS_SRC (newtarget)) {
g_signal_connect (newtarget, "notify::caps",
G_CALLBACK (on_src_target_notify), NULL);
}
/* and link to internal pad without any checks */ /* and link to internal pad without any checks */
GST_DEBUG_OBJECT (gpad, "connecting internal pad to target"); GST_DEBUG_OBJECT (gpad, "connecting internal pad to target");