diff --git a/ChangeLog b/ChangeLog index 95d246888b..c80c97f78e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-06-16 Benjamin Otte + + * gst/gstelementfactory.c: (gst_element_factory_create): + make the freakin "elementfactory bla has no type" message more + useful. So we actually can do something when someone shows up + complaining about it. + 2004-06-15 Johan Dahlin * tools/gst-inspect.c (main): Fallback to plugin if no element is @@ -81,7 +88,7 @@ 2004-06-12 Steve Lhomme * win32/config.h: - * gst/gst-i18n-app.h: + * gst/gst-i18n-app.h: enable NLS under Windows 2004-06-12 Jan Schmidt diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c index 857e1091a2..64305e66a1 100644 --- a/gst/gstelementfactory.c +++ b/gst/gstelementfactory.c @@ -27,6 +27,7 @@ #include "gstregistrypool.h" #include "gstinfo.h" #include "gsturi.h" +#include "registries/gstxmlregistry.h" /* g_critical in gst_element_factory_create */ GST_DEBUG_CATEGORY_STATIC (element_factory_debug); #define GST_CAT_DEFAULT element_factory_debug @@ -283,8 +284,14 @@ gst_element_factory_create (GstElementFactory * factory, const gchar * name) GST_INFO ("creating \"%s\"", GST_PLUGIN_FEATURE_NAME (factory)); if (factory->type == 0) { - g_critical ("Factory for `%s' has no type", - GST_PLUGIN_FEATURE_NAME (factory)); + GstPlugin *plugin = GST_PLUGIN_FEATURE (factory)->manager; + + g_critical + ("Factory for `%s' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named '%s' and is expected in file '%s'. The registry for this plugin is located at '%s'", + GST_PLUGIN_FEATURE_NAME (factory), + gst_plugin_get_name (plugin), gst_plugin_get_filename (plugin), + GST_IS_XML_REGISTRY (plugin->manager) ? GST_XML_REGISTRY (plugin-> + manager)->location : "Unknown"); return NULL; }