diff --git a/ChangeLog b/ChangeLog index 41e3999025..8c72cf5de8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-09-29 David Schleef + + * gst/gstplugin.c: (gst_plugin_load_file): Make some error messages + more end-user friendly. + * tools/gst-inspect.c: (main): Check if command-line argument is + a file and attempt to load that file as a plugin. + 2005-09-29 Thomas Vander Stichele * check/gst/gstbin.c: diff --git a/gst/gstplugin.c b/gst/gstplugin.c index 1a9dde4d1b..1066447e5a 100644 --- a/gst/gstplugin.c +++ b/gst/gstplugin.c @@ -422,7 +422,7 @@ gst_plugin_load_file (const gchar * filename, GError ** error) g_set_error (error, GST_PLUGIN_ERROR, GST_PLUGIN_ERROR_MODULE, - "Could not find plugin entry point in \"%s\"", filename); + "File \"%s\" is not a GStreamer plugin", filename); goto return_error; } plugin->orig_desc = (GstPluginDesc *) ptr; @@ -445,7 +445,8 @@ gst_plugin_load_file (const gchar * filename, GError ** error) g_set_error (error, GST_PLUGIN_ERROR, GST_PLUGIN_ERROR_MODULE, - "gst_plugin_register_func failed for plugin \"%s\"", filename); + "File \"%s\" appears to be a GStreamer plugin, but it failed to initialize", + filename); g_module_close (module); goto return_error; } diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c index 126e782624..0088189959 100644 --- a/tools/gst-inspect.c +++ b/tools/gst-inspect.c @@ -1126,8 +1126,23 @@ main (int argc, char *argv[]) print_plugin_info (plugin); print_plugin_features (plugin); } else { - g_print ("No such element or plugin '%s'\n", arg); - return -1; + GError *error = NULL; + + if (g_file_test (arg, G_FILE_TEST_EXISTS)) { + plugin = gst_plugin_load_file (arg, &error); + + if (plugin) { + print_plugin_info (plugin); + print_plugin_features (plugin); + } else { + g_print ("Error loading plugin file: %s\n", error->message); + g_error_free (error); + return -1; + } + } else { + g_print ("No such element or plugin '%s'\n", arg); + return -1; + } } } }