| 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); |