gstpad: Assume pads are compatible if we don't have templates

This is the same behaviour as if we had a pad template caps of
GST_CAPS_ANY on any of the pads (i.e. the actual check will be done
during caps negotiation).
This commit is contained in:
Edward Hervey 2010-07-20 20:49:12 +02:00
parent 29a35e70e1
commit 21c8edca2a

View file

@ -1796,12 +1796,16 @@ gst_pad_link_check_compatible_unlocked (GstPad * src, GstPad * sink,
srccaps = gst_pad_get_caps_unlocked (src);
sinkcaps = gst_pad_get_caps_unlocked (sink);
} else {
if (GST_PAD_PAD_TEMPLATE (src))
srccaps =
gst_caps_ref (GST_PAD_TEMPLATE_CAPS (GST_PAD_PAD_TEMPLATE (src)));
if (GST_PAD_PAD_TEMPLATE (sink))
sinkcaps =
gst_caps_ref (GST_PAD_TEMPLATE_CAPS (GST_PAD_PAD_TEMPLATE (sink)));
/* If one of the two pads doesn't have a template, consider the intersection
* as valid.*/
if (G_UNLIKELY ((GST_PAD_PAD_TEMPLATE (src) == NULL)
|| (GST_PAD_PAD_TEMPLATE (sink) == NULL))) {
compatible = TRUE;
goto done;
}
srccaps = gst_caps_ref (GST_PAD_TEMPLATE_CAPS (GST_PAD_PAD_TEMPLATE (src)));
sinkcaps =
gst_caps_ref (GST_PAD_TEMPLATE_CAPS (GST_PAD_PAD_TEMPLATE (sink)));
}
GST_CAT_DEBUG (GST_CAT_CAPS, "src caps %" GST_PTR_FORMAT, srccaps);