| 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 |
| { |