Revert "Revert "pad: Check for subsets, not non-empty intersections to check if caps...
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 8 Sep 2011 12:31:52 +0000 (14:31 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 8 Sep 2011 12:32:26 +0000 (14:32 +0200)
This reverts commit 2bfada5581e35a2d37188f48a2c7442644f10bb3.

Conflicts:

gst/gstpad.c

For 0.11 we want to enforce that only subsets of the pad
caps are allowed. This breaks backward compatibility for
some elements, which is why we only print a warning in
0.10.

gst/gstpad.c

index b01c483..7b283f3 100644 (file)
@@ -2542,7 +2542,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);
 
@@ -2601,26 +2601,6 @@ gst_pad_accept_caps (GstPad * pad, GstCaps * caps)
   result = acceptfunc (pad, caps);
   GST_DEBUG_OBJECT (pad, "acceptfunc returned %d", result);
 
-#ifndef G_DISABLE_ASSERT
-  {
-    GstCaps *padcaps;
-
-    padcaps = gst_pad_get_caps_reffed (pad);
-    if (!gst_caps_is_subset (caps, padcaps)) {
-      gchar *padcaps_str, *caps_str;
-
-      padcaps_str = gst_caps_to_string (padcaps);
-      caps_str = gst_caps_to_string (caps);
-      g_warning ("pad %s:%s accepted caps %s although "
-          "they are not a subset of its caps %s",
-          GST_DEBUG_PAD_NAME (pad), caps_str, padcaps_str);
-      g_free (padcaps_str);
-      g_free (caps_str);
-    }
-    gst_caps_unref (padcaps);
-  }
-#endif
-
   return result;
 
 #if 0
@@ -2731,7 +2711,7 @@ do_event_function (GstPad * pad, GstEvent * event,
 
       /* See if pad accepts the caps */
       templ = gst_pad_get_pad_template_caps (pad);
-      if (!gst_caps_can_intersect (caps, templ))
+      if (!gst_caps_is_subset (caps, templ))
         goto not_accepted;
 
       /* check if it changed */