mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
pad: Check for subsets, not non-empty intersections to check if caps are compatible
Pads should only accept caps that are a subset of the pad caps, e.g. they should accept only caps that have a non-empty intersection and at least all fields of the pad caps. Without this a pad that wants for example "video/x-h264,stream-format=byte-stream" will be happy to accept "video/x-h264".
This commit is contained in:
parent
185ab7f325
commit
0c5d502073
1 changed files with 2 additions and 2 deletions
|
@ -2554,7 +2554,7 @@ gst_pad_acceptcaps_default (GstPad * pad, GstCaps * caps)
|
|||
|
||||
GST_DEBUG_OBJECT (pad, "allowed caps %" GST_PTR_FORMAT, allowed);
|
||||
|
||||
result = gst_caps_can_intersect (allowed, caps);
|
||||
result = gst_caps_is_subset (caps, allowed);
|
||||
|
||||
gst_caps_unref (allowed);
|
||||
|
||||
|
@ -2760,7 +2760,7 @@ gst_pad_configure_sink (GstPad * pad, GstCaps * caps)
|
|||
gboolean res;
|
||||
|
||||
/* See if pad accepts the caps */
|
||||
if (!gst_caps_can_intersect (caps, gst_pad_get_pad_template_caps (pad)))
|
||||
if (!gst_caps_is_subset (caps, gst_pad_get_pad_template_caps (pad)))
|
||||
goto not_accepted;
|
||||
|
||||
/* set caps on pad if call succeeds */
|
||||
|
|
Loading…
Reference in a new issue