[gst-cvs] gst-plugins-bad: xdgmime: Use empty caps for registering the typefinders with old core versions

Sebastian Dröge slomo at kemper.freedesktop.org
Fri Feb 27 11:22:21 PST 2009


Module: gst-plugins-bad
Branch: master
Commit: 546bfbecb8dec16f784c0b10b64874d0b5b5d18e
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=546bfbecb8dec16f784c0b10b64874d0b5b5d18e

Author: Sebastian Dröge <sebastian.droege at collabora.co.uk>
Date:   Fri Feb 27 20:21:23 2009 +0100

xdgmime: Use empty caps for registering the typefinders with old core versions

core before 0.10.22.1 produced assertions when storing typefind factories
with NULL caps in the registry.

---

 gst/xdgmime/gstxdgmime.c |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/gst/xdgmime/gstxdgmime.c b/gst/xdgmime/gstxdgmime.c
index 1d7536c..c2eec58 100644
--- a/gst/xdgmime/gstxdgmime.c
+++ b/gst/xdgmime/gstxdgmime.c
@@ -55,10 +55,25 @@ xdgmime_typefind (GstTypeFind * find, gpointer user_data)
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
+  GstCaps *caps = NULL;
+  guint major, minor, micro, nano;
+  gboolean ret;
+
+  /* FIXME: GStreamer before 0.10.22.1 produced assertions
+   * when storing typefind factories with NULL caps */
+  gst_version (&major, &minor, &micro, &nano);
+  if (major <= 0 && minor <= 10 && micro <= 22 && nano <= 0)
+    caps = gst_caps_new_empty ();
+
   GST_DEBUG_CATEGORY_INIT (xdgmime_debug, "xdgmime", 0, "XDG-MIME");
 
-  return gst_type_find_register (plugin,
-      "xdgmime", GST_RANK_MARGINAL, xdgmime_typefind, NULL, NULL, NULL, NULL);
+  ret = gst_type_find_register (plugin,
+      "xdgmime", GST_RANK_MARGINAL, xdgmime_typefind, NULL, caps, NULL, NULL);
+
+  if (caps)
+    gst_caps_unref (caps);
+
+  return ret;
 }
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,





More information about the Gstreamer-commits mailing list