caps: warn with wrong mediatype in gst_caps_new_empty_simple
authorStéphane Cerveau <scerveau@collabora.com>
Mon, 25 Apr 2022 08:59:21 +0000 (10:59 +0200)
committerStéphane Cerveau <scerveau@collabora.com>
Wed, 11 May 2022 06:59:37 +0000 (08:59 +0200)
If passing ANY/EMPTY to gst_caps_new_empty_simple
as a mediatype, a warning will be displayed to alert
on this misuse of the API.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2290>

subprojects/gstreamer/gst/gstcaps.c
subprojects/gstreamer/tests/check/pipelines/seek.c

index bbb9211..28a7dfe 100644 (file)
@@ -300,6 +300,16 @@ gst_caps_new_empty_simple (const char *media_type)
   GstStructure *structure;
 
   caps = gst_caps_new_empty ();
+  if (strcmp ("ANY", media_type) == 0) {
+    g_warning
+        ("media_type should not be ANY. Please consider using `gst_caps_new_any` or `gst_caps_from_string`.");
+  }
+  if (strcmp ("", media_type) == 0 || strcmp ("EMPTY", media_type) == 0
+      || strcmp ("NONE", media_type) == 0) {
+    g_warning
+        ("media_type should not be `%s`. Please consider using `gst_caps_new_empty` or `gst_caps_from_string`.",
+        media_type);
+  }
   structure = gst_structure_new_empty (media_type);
   if (structure)
     gst_caps_append_structure_unchecked (caps, structure, NULL);
index 5f7447b..bf89282 100644 (file)
@@ -169,7 +169,7 @@ dummy_parser_handle_frame (GstBaseParse * parse,
   if (((DummyParser *) parse)->caps_set == FALSE) {
     GstCaps *caps;
     /* push caps */
-    caps = gst_caps_new_empty_simple ("ANY");
+    caps = gst_caps_new_empty_simple ("video/x-raw");
     gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps);
     gst_caps_unref (caps);
     ((DummyParser *) parse)->caps_set = TRUE;