/* Linking pad to tee */
sinkpad = gst_element_get_static_pad (chain->tee, "sink");
- gst_pad_link (pad, sinkpad);
+ gst_pad_link_full (pad, sinkpad, GST_PAD_LINK_CHECK_NOTHING);
gst_object_unref (sinkpad);
/* Connect playsink */
}
tmppad = gst_element_get_request_pad (chain->tee, "src%d");
- if (G_UNLIKELY (gst_pad_link (tmppad, sinkpad) != GST_PAD_LINK_OK)) {
+ if (G_UNLIKELY (gst_pad_link_full (tmppad, sinkpad,
+ GST_PAD_LINK_CHECK_NOTHING) != GST_PAD_LINK_OK)) {
GST_ERROR_OBJECT (self, "Couldn't link track pad to playsink");
gst_object_unref (tmppad);
goto error;
}
tmppad = gst_element_get_request_pad (chain->tee, "src%d");
- if (G_UNLIKELY (gst_pad_link (tmppad,
- chain->encodebinpad) != GST_PAD_LINK_OK)) {
+ if (G_UNLIKELY (gst_pad_link_full (tmppad,
+ chain->encodebinpad,
+ GST_PAD_LINK_CHECK_NOTHING) != GST_PAD_LINK_OK)) {
GST_WARNING_OBJECT (self, "Couldn't link track pad to playsink");
goto error;
}
GST_ERROR_OBJECT (pipeline, "Couldn't add URI sink");
return FALSE;
}
- gst_element_link (pipeline->encodebin, pipeline->urisink);
+ gst_element_link_pads_full (pipeline->encodebin, "src", pipeline->urisink,
+ "sink", GST_PAD_LINK_CHECK_NOTHING);
}
/* FIXUPS */
};
+#define fast_element_link(a,b) gst_element_link_pads_full((a),"src",(b),"sink",GST_PAD_LINK_CHECK_NOTHING)
+
static void
ges_track_audio_transition_duration_changed (GESTrackObject * self, guint64);
GstElement *volume = gst_element_factory_make ("volume", NULL);
gst_bin_add (bin, volume);
- gst_element_link_many (element, volume, mixer, NULL);
+ if (!fast_element_link (element, volume) ||
+ !gst_element_link_pads_full (volume, "src", mixer, "sink%d",
+ GST_PAD_LINK_CHECK_NOTHING))
+ GST_ERROR_OBJECT (bin, "Error linking volume to mixer");
return G_OBJECT (volume);
}
g_assert (atarget && btarget);
- gst_element_link (mixer, oconv);
+ fast_element_link (mixer, oconv);
sinka_target = gst_element_get_static_pad (iconva, "sink");
sinkb_target = gst_element_get_static_pad (iconvb, "sink");
gst_bin_add_many (GST_BIN (topbin), background, text, NULL);
- gst_element_link (background, text);
+ gst_element_link_pads_full (background, "src", text, "sink",
+ GST_PAD_LINK_CHECK_NOTHING);
src = gst_ghost_pad_new ("src", gst_element_get_static_pad (text, "src"));
gst_element_add_pad (topbin, src);
PROP_0,
};
+#define fast_element_link(a,b) gst_element_link_pads_full((a),"src",(b),"sink",GST_PAD_LINK_CHECK_NOTHING)
+
static GObject *link_element_to_mixer (GstElement * element,
GstElement * mixer);
self->mixer = gst_object_ref (mixer);
- gst_element_link (mixer, oconv);
+ fast_element_link (mixer, oconv);
sinka_target = gst_element_get_static_pad (iconva, "sink");
sinkb_target = gst_element_get_static_pad (iconvb, "sink");
GstPad *sinkpad = gst_element_get_request_pad (mixer, "sink_%d");
GstPad *srcpad = gst_element_get_static_pad (element, "src");
- gst_pad_link (srcpad, sinkpad);
+ gst_pad_link_full (srcpad, sinkpad, GST_PAD_LINK_CHECK_NOTHING);
gst_object_unref (srcpad);
return G_OBJECT (sinkpad);
"type", (gint) type, "invert", (gboolean) TRUE, NULL);
gst_bin_add (bin, smptealpha);
- gst_element_link (element, smptealpha);
+ fast_element_link (element, smptealpha);
/* crack */
if (smpteref) {
srcpad = gst_element_get_static_pad (smptealpha, "src");
sinkpad = gst_element_get_request_pad (mixer, "sink_%d");
- gst_pad_link (srcpad, sinkpad);
+ gst_pad_link_full (srcpad, sinkpad, GST_PAD_LINK_CHECK_NOTHING);
gst_object_unref (srcpad);
return G_OBJECT (sinkpad);