mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-28 20:05:38 +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);
|
||||
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);
|
||||
|
|
Loading…
Reference in a new issue