utils: Add gst_pad_link_maybe_ghosting() for consistency
authorSebastian Dröge <sebastian@centricular.com>
Wed, 8 Jun 2016 09:11:19 +0000 (12:11 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 8 Jun 2016 09:12:28 +0000 (12:12 +0300)
We already had a _full() version, but having that alone seems inconsistent.
Add a non-full version that mirrors the behaviour of gst_pad_link() vs
gst_pad_link_full().

docs/gst/gstreamer-sections.txt
gst/gstutils.c
gst/gstutils.h
win32/common/libgstreamer.def

index b5a9d92..191a0d2 100644 (file)
@@ -1831,6 +1831,7 @@ gst_pad_get_pad_template
 
 gst_pad_link
 gst_pad_link_full
+gst_pad_link_maybe_ghosting
 gst_pad_link_maybe_ghosting_full
 gst_pad_unlink
 gst_pad_is_linked
index be6fa71..1e690ce 100644 (file)
@@ -1552,6 +1552,33 @@ gst_pad_link_maybe_ghosting_full (GstPad * src, GstPad * sink,
   return pad_link_maybe_ghosting (src, sink, flags);
 }
 
+/**
+ * gst_pad_link_maybe_ghosting:
+ * @src: a #GstPad
+ * @sink: a #GstPad
+ *
+ * Links @src to @sink, creating any #GstGhostPad's in between as necessary.
+ *
+ * This is a convenience function to save having to create and add intermediate
+ * #GstGhostPad's as required for linking across #GstBin boundaries.
+ *
+ * If @src or @sink pads don't have parent elements or do not share a common
+ * ancestor, the link will fail.
+ *
+ * Returns: whether the link succeeded.
+ *
+ * Since: 1.10
+ */
+gboolean
+gst_pad_link_maybe_ghosting (GstPad * src, GstPad * sink)
+{
+  g_return_val_if_fail (GST_IS_PAD (src), FALSE);
+  g_return_val_if_fail (GST_IS_PAD (sink), FALSE);
+
+  return gst_pad_link_maybe_ghosting_full (src, sink,
+      GST_PAD_LINK_CHECK_DEFAULT);
+}
+
 static void
 release_and_unref_pad (GstElement * element, GstPad * pad, gboolean requestpad)
 {
index cd7b1cd..3bc032f 100644 (file)
@@ -924,6 +924,8 @@ gboolean                gst_pad_query_convert           (GstPad *pad, GstFormat
 GstCaps *               gst_pad_query_caps              (GstPad *pad, GstCaps *filter);
 gboolean                gst_pad_query_accept_caps       (GstPad *pad, GstCaps *caps);
 
+gboolean                gst_pad_link_maybe_ghosting      (GstPad            *src,
+                                                          GstPad            *sink);
 gboolean                gst_pad_link_maybe_ghosting_full (GstPad            *src,
                                                           GstPad            *sink,
                                                           GstPadLinkCheck   flags);
index 7033a5d..333f10e 100644 (file)
@@ -863,6 +863,7 @@ EXPORTS
        gst_pad_link_check_get_type
        gst_pad_link_full
        gst_pad_link_get_name
+       gst_pad_link_maybe_ghosting
        gst_pad_link_maybe_ghosting_full
        gst_pad_link_return_get_type
        gst_pad_mark_reconfigure