blob: d5bb9b3c670cae2cc1dd33b5284b00871dd76887 [file] [log] [blame]
Index: gstreamer0.10-0.10.31.2/gst/gstregistry.c
===================================================================
--- gstreamer0.10-0.10.31.2.orig/gst/gstregistry.c 2011-01-06 20:35:59.000000000 +0100
+++ gstreamer0.10-0.10.31.2/gst/gstregistry.c 2011-01-08 17:05:28.959841191 +0100
@@ -121,6 +121,10 @@
#include <stdio.h>
#include <string.h>
+#ifdef HAVE_SYS_UTSNAME_H
+#include <sys/utsname.h>
+#endif
+
/* For g_stat () */
#include <glib/gstdio.h>
@@ -1493,6 +1497,10 @@
* path, and the plugins installed in the user's home directory */
plugin_path = g_getenv ("GST_PLUGIN_SYSTEM_PATH");
if (plugin_path == NULL) {
+#if defined(__linux__) && defined (__i386__)
+ struct utsname uts;
+#endif
+ char *plugindir = PLUGINDIR;
char *home_plugins;
GST_DEBUG ("GST_PLUGIN_SYSTEM_PATH not set");
@@ -1506,8 +1514,14 @@
g_free (home_plugins);
/* add the main (installed) library path */
- GST_DEBUG ("scanning main plugins %s", PLUGINDIR);
- changed |= gst_registry_scan_path_internal (&context, PLUGINDIR);
+#if defined(__linux__) && defined (__i386__)
+ uname(&uts);
+ if (!strcmp("x86_64", uts.machine)
+ && !access("/usr/lib32/gstreamer-0.10", R_OK|X_OK))
+ plugindir = "/usr/lib32/gstreamer-0.10";
+#endif
+ GST_DEBUG ("scanning main plugins %s", plugindir);
+ changed |= gst_registry_scan_path_internal (&context, plugindir);
#ifdef G_OS_WIN32
{