diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index b5a9d92fd9..191a0d25de 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -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 diff --git a/gst/gstutils.c b/gst/gstutils.c index be6fa71771..1e690ce60e 100644 --- a/gst/gstutils.c +++ b/gst/gstutils.c @@ -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) { diff --git a/gst/gstutils.h b/gst/gstutils.h index cd7b1cd9ec..3bc032f4dd 100644 --- a/gst/gstutils.h +++ b/gst/gstutils.h @@ -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); diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def index 7033a5d7f9..333f10ee07 100644 --- a/win32/common/libgstreamer.def +++ b/win32/common/libgstreamer.def @@ -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