From: Alessandro Decina Date: Thu, 26 Aug 2010 11:46:34 +0000 (+0200) Subject: gstplugin: load the gst-python plugin loader with G_MODULE_BIND_LAZY. X-Git-Tag: RELEASE-0.10.31~178 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=94a314eaeed4439d67049f7b60c5a07416f53ef2;p=platform%2Fupstream%2Fgstreamer.git gstplugin: load the gst-python plugin loader with G_MODULE_BIND_LAZY. --- diff --git a/gst/gstplugin.c b/gst/gstplugin.c index 599af83..c16e624 100644 --- a/gst/gstplugin.c +++ b/gst/gstplugin.c @@ -711,6 +711,7 @@ gst_plugin_load_file (const gchar * filename, GError ** error) GStatBuf file_status; GstRegistry *registry; gboolean new_plugin = TRUE; + GModuleFlags flags; g_return_val_if_fail (filename != NULL, NULL); @@ -749,7 +750,16 @@ gst_plugin_load_file (const gchar * filename, GError ** error) goto return_error; } - module = g_module_open (filename, G_MODULE_BIND_LOCAL); + flags = G_MODULE_BIND_LOCAL; + /* libgstpython.so is the gst-python plugin loader. It needs to be loaded with + * G_MODULE_BIND_LAZY. + * + * Ideally there should be a generic way for plugins to specify that they + * need to be loaded with _LAZY. + * */ + if (g_strstr_len (filename, strlen (filename), "libgstpython")) + flags |= G_MODULE_BIND_LAZY; + module = g_module_open (filename, flags); if (module == NULL) { GST_CAT_WARNING (GST_CAT_PLUGIN_LOADING, "module_open failed: %s", g_module_error ());