pad: Print a g_warning() if pad accept caps that are not a subset of its caps
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 8 Sep 2011 11:40:06 +0000 (13:40 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 8 Sep 2011 11:42:53 +0000 (13:42 +0200)
In 0.11 only subsets are supported again as documented instead of also
allowing non-empty intersections.

gst/gstpad.c

index 6c1ef51..4c0b8e9 100644 (file)
@@ -2610,6 +2610,27 @@ gst_pad_accept_caps (GstPad * pad, GstCaps * caps)
     result = gst_pad_acceptcaps_default (pad, caps);
     GST_DEBUG_OBJECT (pad, "default acceptcaps 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;
 
 is_same_caps: