mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
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:
parent
29a35e70e1
commit
21c8edca2a
1 changed files with 10 additions and 6 deletions
16
gst/gstpad.c
16
gst/gstpad.c
|
@ -1796,12 +1796,16 @@ gst_pad_link_check_compatible_unlocked (GstPad * src, GstPad * sink,
|
||||||
srccaps = gst_pad_get_caps_unlocked (src);
|
srccaps = gst_pad_get_caps_unlocked (src);
|
||||||
sinkcaps = gst_pad_get_caps_unlocked (sink);
|
sinkcaps = gst_pad_get_caps_unlocked (sink);
|
||||||
} else {
|
} else {
|
||||||
if (GST_PAD_PAD_TEMPLATE (src))
|
/* If one of the two pads doesn't have a template, consider the intersection
|
||||||
srccaps =
|
* as valid.*/
|
||||||
gst_caps_ref (GST_PAD_TEMPLATE_CAPS (GST_PAD_PAD_TEMPLATE (src)));
|
if (G_UNLIKELY ((GST_PAD_PAD_TEMPLATE (src) == NULL)
|
||||||
if (GST_PAD_PAD_TEMPLATE (sink))
|
|| (GST_PAD_PAD_TEMPLATE (sink) == NULL))) {
|
||||||
sinkcaps =
|
compatible = TRUE;
|
||||||
gst_caps_ref (GST_PAD_TEMPLATE_CAPS (GST_PAD_PAD_TEMPLATE (sink)));
|
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);
|
GST_CAT_DEBUG (GST_CAT_CAPS, "src caps %" GST_PTR_FORMAT, srccaps);
|
||||||
|
|
Loading…
Reference in a new issue