tracer: move the PAD_LINK tracer hook to _pad_link_full()
authorStefan Sauer <ensonic@users.sf.net>
Thu, 8 Dec 2016 19:20:17 +0000 (20:20 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 13 Dec 2016 09:43:42 +0000 (11:43 +0200)
This is ultimately executing the pad_link. In the previous position we missed
some links, notably ghostpads.

gst/gstpad.c

index cd9fff19265853eb1dfe67fdd4e3d4d8565183c1..b37fc44d144b8404b32def765136e0943ead83f5 100644 (file)
@@ -2443,6 +2443,8 @@ gst_pad_link_full (GstPad * srcpad, GstPad * sinkpad, GstPadLinkCheck flags)
   g_return_val_if_fail (GST_PAD_IS_SINK (sinkpad),
       GST_PAD_LINK_WRONG_DIRECTION);
 
+  GST_TRACER_PAD_LINK_PRE (srcpad, sinkpad);
+
   /* Notify the parent early. See gst_pad_unlink for details. */
   if (G_LIKELY ((parent = GST_ELEMENT_CAST (gst_pad_get_parent (srcpad))))) {
     if (G_LIKELY (GST_IS_ELEMENT (parent))) {
@@ -2530,6 +2532,7 @@ done:
     gst_object_unref (parent);
   }
 
+  GST_TRACER_PAD_LINK_POST (srcpad, sinkpad, result);
   return result;
 
   /* ERRORS */
@@ -2575,13 +2578,7 @@ link_failed:
 GstPadLinkReturn
 gst_pad_link (GstPad * srcpad, GstPad * sinkpad)
 {
-  GstPadLinkReturn ret;
-
-  GST_TRACER_PAD_LINK_PRE (srcpad, sinkpad);
-  ret = gst_pad_link_full (srcpad, sinkpad, GST_PAD_LINK_CHECK_DEFAULT);
-  GST_TRACER_PAD_LINK_POST (srcpad, sinkpad, ret);
-
-  return ret;
+  return gst_pad_link_full (srcpad, sinkpad, GST_PAD_LINK_CHECK_DEFAULT);
 }
 
 static void