blob: b28fd10df648d0964f756651064f4c1feabf9113 [file] [log] [blame]
Index: gstreamer0.11/gst/gstregistry.c
===================================================================
--- gstreamer0.11.orig/gst/gstregistry.c 2011-12-12 11:50:39.093747189 +0100
+++ gstreamer0.11/gst/gstregistry.c 2011-12-12 11:50:41.941747231 +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>
@@ -1507,6 +1511,9 @@
* 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 *home_plugins, *backwards_compat_plugins;
GST_DEBUG ("GST_PLUGIN_SYSTEM_PATH not set");
@@ -1527,6 +1534,16 @@
/* finally, look in the /usr/lib backwards-compatibility path. */
backwards_compat_plugins = g_build_filename ("/usr/lib",
"gstreamer-" GST_API_VERSION, NULL);
+#if defined(__linux__) && defined (__i386__)
+ uname(&uts);
+ if (!strcmp("x86_64", uts.machine)
+ && !access("/usr/lib32/gstreamer-0.10", R_OK|X_OK))
+ {
+ g_free (backwards_compat_plugins);
+ backwards_compat_plugins = g_build_filename ("/usr/lib32",
+ "gstreamer-" GST_API_VERSION, NULL);
+ }
+#endif
GST_DEBUG ("scanning plugins %s", backwards_compat_plugins);
changed |= gst_registry_scan_path_internal (&context, backwards_compat_plugins);
g_free (backwards_compat_plugins);