diff --git a/gst/gsterror.c b/gst/gsterror.c index 9ccdd3a30a..1b4f1cc416 100644 --- a/gst/gsterror.c +++ b/gst/gsterror.c @@ -161,6 +161,7 @@ _gst_stream_errors_init (void) TABLE (t, STREAM, DEMUX, N_("Could not demultiplex stream.")); TABLE (t, STREAM, MUX, N_("Could not multiplex stream.")); TABLE (t, STREAM, FORMAT, N_("Stream is of the wrong format.")); + TABLE (t, STREAM, STOPPED, N_("Streaming stopped.")); return t; } diff --git a/gst/gstplugin.c b/gst/gstplugin.c index 1066447e5a..57fd70e189 100644 --- a/gst/gstplugin.c +++ b/gst/gstplugin.c @@ -846,7 +846,7 @@ gst_plugin_find_feature_by_name (GstPlugin * plugin, const gchar * name) * * Load the named plugin. Refs the plugin. * - * Returns: whether the plugin was loaded or not + * Returns: A reference to a loaded plugin, or NULL on error. */ GstPlugin * gst_plugin_load_by_name (const gchar * name) diff --git a/gst/gstpluginfeature.c b/gst/gstpluginfeature.c index ac5a27807f..78b47346d7 100644 --- a/gst/gstpluginfeature.c +++ b/gst/gstpluginfeature.c @@ -118,9 +118,13 @@ gst_plugin_feature_load (GstPluginFeature * feature) gst_registry_lookup_feature (gst_registry_get_default (), feature->name); if (real_feature == NULL) { - g_critical + GST_INFO ("Loaded plugin containing feature '%s', but feature disappeared.", feature->name); + } else if (!real_feature->loaded) { + GST_INFO ("Tried to load plugin containing feature '%s', but feature was " + "not found.", real_feature->name); + return NULL; } return real_feature; diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c index 0088189959..2baa23c961 100644 --- a/tools/gst-inspect.c +++ b/tools/gst-inspect.c @@ -1033,6 +1033,11 @@ print_element_info (GstElementFactory * factory, gboolean print_names) GST_ELEMENT_FACTORY (gst_plugin_feature_load (GST_PLUGIN_FEATURE (factory))); + if (!factory) { + g_print ("element plugin couldn't be loaded\n"); + return -1; + } + element = gst_element_factory_create (factory, NULL); if (!element) { g_print ("couldn't construct element for some reason\n");