diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2016-01-12 11:31:50 -0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2016-01-13 15:29:17 -0300 |
commit | 81c52aaa1695cd1d0ca9004aa668b9ed85db2da9 (patch) | |
tree | 3edbc097e7f01fd9349f09103e335f0a63abb40b | |
parent | 1b412a523d1ed950a1822ae4a01c8ce8aa29b34f (diff) |
playbin: use subset check instead of intersect
Elements usually require that all fields on their caps are present
on the fixed caps they receive. Using intersection won't verify it,
resort to using is_subset() checks.
https://bugzilla.gnome.org/show_bug.cgi?id=760477
-rw-r--r-- | gst/playback/gstplaybin2.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c index 2ef24687c..e3e79d396 100644 --- a/gst/playback/gstplaybin2.c +++ b/gst/playback/gstplaybin2.c @@ -4451,7 +4451,7 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps, sinkcaps = gst_pad_query_caps (sinkpad, NULL); if (!gst_caps_is_any (sinkcaps)) - ret = !gst_caps_can_intersect (sinkcaps, caps); + ret = !gst_caps_is_subset (caps, sinkcaps); gst_caps_unref (sinkcaps); gst_object_unref (sinkpad); } @@ -4482,7 +4482,7 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps, sinkcaps = gst_pad_query_caps (sinkpad, NULL); if (!gst_caps_is_any (sinkcaps)) - ret = !gst_caps_can_intersect (sinkcaps, caps); + ret = !gst_caps_is_subset (caps, sinkcaps); gst_caps_unref (sinkcaps); gst_object_unref (sinkpad); } @@ -4500,7 +4500,7 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps, sinkcaps = gst_pad_query_caps (sinkpad, NULL); if (!gst_caps_is_any (sinkcaps)) - ret = !gst_caps_can_intersect (sinkcaps, caps); + ret = !gst_caps_is_subset (caps, sinkcaps); gst_caps_unref (sinkcaps); gst_object_unref (sinkpad); } @@ -4530,7 +4530,7 @@ sink_accepts_caps (GstPlayBin * playbin, GstElement * sink, GstCaps * caps) sinkcaps = gst_pad_query_caps (sinkpad, NULL); /* Got the sink pad, now let's see if the element actually does accept the * caps that we have */ - ret = gst_caps_can_intersect (sinkcaps, caps); + ret = gst_caps_is_subset (caps, sinkcaps); gst_caps_unref (sinkcaps); gst_object_unref (sinkpad); } |