mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 15:27:07 +00:00
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
This commit is contained in:
parent
d8fb89e4e6
commit
441ac82d7f
1 changed files with 19 additions and 21 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue