plug:
GST_INFO ("typefind function found caps");
ident->caps = find.caps;
- g_assert (GST_PAD_LINK_SUCCESSFUL (gst_pad_try_set_caps (ident->src, find.caps)));
+ if (GST_PAD_IS_LINKED (ident->src)) {
+ GstPadLinkReturn ret;
+
+ ret = gst_pad_try_set_caps (ident->src, find.caps);
+ if (GST_PAD_LINK_FAILED (ret)){
+ g_critical("could not set caps on spideridentity src pad\n");
+ }
+ }
{
gchar *str = gst_caps_to_string (find.caps);
GST_LOG_OBJECT (ident, "spider starting caps: %s", str);
static void gst_pad_dispose (GObject *object);
static void gst_pad_set_pad_template (GstPad *pad, GstPadTemplate *templ);
-static GstCaps * _gst_pad_default_fixate_func (GstPad *pad, GstCaps *caps, gpointer unused);
+static GstCaps * _gst_pad_default_fixate_func (GstPad *pad, GstCaps *caps, gpointer unused);
+
+static void gst_pad_link_free (GstPadLink *link);
#ifndef GST_DISABLE_LOADSAVE
static xmlNodePtr gst_pad_save_thyself (GstObject *object, xmlNodePtr parent);
src_sched = gst_pad_get_scheduler (GST_PAD (realsrc));
sink_sched = gst_pad_get_scheduler (GST_PAD (realsink));
+ gst_pad_link_free (GST_RPAD_LINK (realsrc));
+
/* first clear peers */
GST_RPAD_PEER (realsrc) = NULL;
GST_RPAD_PEER (realsink) = NULL;
+ GST_RPAD_LINK (realsrc) = NULL;
+ GST_RPAD_LINK (realsink) = NULL;
/* now tell the scheduler */
if (src_sched && src_sched == sink_sched) {
g_return_val_if_fail (pad != NULL, GST_PAD_LINK_REFUSED);
g_return_val_if_fail (GST_IS_PAD (pad), GST_PAD_LINK_REFUSED);
+ g_return_val_if_fail (GST_PAD_LINK_SRC (pad), GST_PAD_LINK_REFUSED);
+ g_return_val_if_fail (GST_PAD_LINK_SINK (pad), GST_PAD_LINK_REFUSED);
+
link = gst_pad_link_new ();
link->srcpad = GST_PAD_LINK_SRC (pad);
g_return_val_if_fail (pad != NULL, GST_PAD_LINK_REFUSED);
g_return_val_if_fail (GST_IS_PAD (pad), GST_PAD_LINK_REFUSED);
+ g_return_val_if_fail (GST_PAD_PEER (pad), GST_PAD_LINK_REFUSED);
g_return_val_if_fail (!GST_FLAG_IS_SET (pad, GST_PAD_NEGOTIATING),
GST_PAD_LINK_REFUSED);
return GST_PAD_LINK_REFUSED;
}
+ g_return_val_if_fail (GST_PAD_LINK_SRC (pad), GST_PAD_LINK_REFUSED);
+ g_return_val_if_fail (GST_PAD_LINK_SINK (pad), GST_PAD_LINK_REFUSED);
+
link = gst_pad_link_new ();
link->srcpad = GST_PAD_LINK_SRC (pad);
return FALSE;
}
+ g_return_val_if_fail (realsrc != NULL, GST_PAD_LINK_REFUSED);
+ g_return_val_if_fail (realsink != NULL, GST_PAD_LINK_REFUSED);
+
link = gst_pad_link_new ();
if (GST_RPAD_DIRECTION (realsrc) == GST_PAD_SRC) {