From: Wim Taymans Date: Wed, 18 May 2011 13:29:25 +0000 (+0200) Subject: pad: notify caps property change in callsetcaps X-Git-Tag: RELEASE-0.11.0~273 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fa6bcde7e378ee476a7f40d89cdd2c0559bdd98e;p=platform%2Fupstream%2Fgstreamer.git pad: notify caps property change in callsetcaps Notify the caps property change in the backwards compatible function to call the setcaps function. --- diff --git a/gst/gstpad.c b/gst/gstpad.c index ca39074..8b0242f 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -2044,7 +2044,6 @@ gst_pad_link_full (GstPad * srcpad, GstPad * sinkpad, GstPadLinkCheck flags) { GstPadLinkReturn result; GstElement *parent; - GstCaps *oldcaps, *newcaps; g_return_val_if_fail (GST_IS_PAD (srcpad), GST_PAD_LINK_REFUSED); g_return_val_if_fail (GST_PAD_IS_SRC (srcpad), GST_PAD_LINK_WRONG_DIRECTION); @@ -2076,17 +2075,12 @@ gst_pad_link_full (GstPad * srcpad, GstPad * sinkpad, GstPadLinkCheck flags) /* make sure we push the events from the source to this new peer, for this we * copy the events on the sinkpad and mark EVENTS_PENDING */ - oldcaps = get_pad_caps (sinkpad); replace_events (srcpad->priv->events, sinkpad->priv->events); - newcaps = get_pad_caps (sinkpad); GST_OBJECT_FLAG_SET (sinkpad, GST_PAD_NEED_EVENTS); GST_OBJECT_UNLOCK (sinkpad); GST_OBJECT_UNLOCK (srcpad); - if (oldcaps != newcaps) - g_object_notify_by_pspec ((GObject *) sinkpad, pspec_caps); - /* FIXME released the locks here, concurrent thread might link * something else. */ if (GST_PAD_LINKFUNC (srcpad)) { @@ -2761,6 +2755,8 @@ gst_pad_call_setcaps (GstPad * pad, GstCaps * caps) } GST_OBJECT_UNLOCK (pad); + g_object_notify_by_pspec ((GObject *) pad, pspec_caps); + return TRUE; /* ERRORS */ @@ -4521,7 +4517,6 @@ gst_pad_push_event (GstPad * pad, GstEvent * event) { GstPad *peerpad; gboolean result; - GstCaps *oldcaps = NULL, *newcaps = NULL; g_return_val_if_fail (GST_IS_PAD (pad), FALSE); g_return_val_if_fail (event != NULL, FALSE); @@ -4587,20 +4582,15 @@ gst_pad_push_event (GstPad * pad, GstEvent * event) GST_LOG_OBJECT (pad, "storing sticky event %s at index %u", GST_EVENT_TYPE_NAME (event), idx); - oldcaps = get_pad_caps (pad); /* srcpad sticky events always become active immediately */ gst_event_replace (&pad->priv->events[idx].event, event); pad->priv->events[idx].active = TRUE; - newcaps = get_pad_caps (pad); } if ((peerpad = GST_PAD_PEER (pad))) gst_object_ref (peerpad); GST_OBJECT_UNLOCK (pad); - if (oldcaps != newcaps) - g_object_notify_by_pspec ((GObject *) pad, pspec_caps); - /* backwards compatibility mode for caps */ if (GST_EVENT_TYPE (event) == GST_EVENT_CAPS) { GstCaps *caps;