gst/gstplugin.c: Make some error messages more end-user friendly.
authorDavid Schleef <ds@schleef.org>
Thu, 29 Sep 2005 19:45:27 +0000 (19:45 +0000)
committerDavid Schleef <ds@schleef.org>
Thu, 29 Sep 2005 19:45:27 +0000 (19:45 +0000)
Original commit message from CVS:
* 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.

ChangeLog
gst/gstplugin.c
tools/gst-inspect.c

index 41e3999..8c72cf5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-09-29  David Schleef  <ds@schleef.org>
+
+       * 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  <thomas at apestaart dot org>
 
        * check/gst/gstbin.c:
index 1a9dde4..1066447 100644 (file)
@@ -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;
   }
index 126e782..0088189 100644 (file)
@@ -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;
+        }
       }
     }
   }