From: Nicolas Dufresne Date: Wed, 30 Apr 2014 17:37:27 +0000 (+0100) Subject: gl: no need to provide full lib path to load symbols X-Git-Tag: 1.19.3~511^2~1989^2~1533 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1e8fc49203e8aad7f754e7f547c5469da0918917;p=platform%2Fupstream%2Fgstreamer.git gl: no need to provide full lib path to load symbols - Make gstgl work on Mali - Keep it work on RPI - fallback to NULL name module if fails with usual lib name https://bugzilla.gnome.org/show_bug.cgi?id=728753 --- diff --git a/gst-libs/gst/gl/gstglcontext.c b/gst-libs/gst/gl/gstglcontext.c index 432d8bd..2b397f9 100644 --- a/gst-libs/gst/gl/gstglcontext.c +++ b/gst-libs/gst/gl/gstglcontext.c @@ -412,17 +412,18 @@ gst_gl_context_default_get_proc_address (GstGLContext * context, const gchar * name) { gpointer ret = NULL; + static GModule *module = NULL; -#ifdef USE_EGL_RPI - - //FIXME: Can't understand why default does not work - // so for now retrieve proc addressed manually - +#if GST_GL_HAVE_PLATFORM_EGL static GModule *module_egl = NULL; - static GModule *module_glesv2 = NULL; - if (!module_egl) - module_egl = g_module_open ("/opt/vc/lib/libEGL.so", G_MODULE_BIND_LAZY); + if (!module_egl) { + module_egl = g_module_open ("libEGL.so.1", G_MODULE_BIND_LAZY); + + /* fallback */ + if (!module_egl) + module_egl = g_module_open (NULL, G_MODULE_BIND_LAZY); + } if (module_egl) { if (!g_module_symbol (module_egl, name, &ret)) { @@ -432,28 +433,25 @@ gst_gl_context_default_get_proc_address (GstGLContext * context, if (ret) return ret; +#endif - if (!module_glesv2) - module_glesv2 = - g_module_open ("/opt/vc/lib/libGLESv2.so", G_MODULE_BIND_LAZY); + if (!module) { + const gchar *name = NULL; +#if GST_GL_HAVE_GLES2 + name = "libGLESv2.so.2"; +#endif + module = g_module_open (name, G_MODULE_BIND_LAZY); - if (module_glesv2) { - if (!g_module_symbol (module_glesv2, name, &ret)) { - return NULL; - } + /* fallback */ + if (!module) + module = g_module_open (NULL, G_MODULE_BIND_LAZY); } -#else - static GModule *module = NULL; - - if (!module) - module = g_module_open (NULL, G_MODULE_BIND_LAZY); if (module) { if (!g_module_symbol (module, name, &ret)) { return NULL; } } -#endif return ret; }