diff options
author | Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com> | 2012-09-18 00:51:36 -0300 |
---|---|---|
committer | Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com> | 2012-09-18 00:51:36 -0300 |
commit | 833d6d63b274fb93a71152c211dc4c054f910344 (patch) | |
tree | 48557659f969db3a7c3068152eac64e94f44df03 | |
parent | 745d2c7fcccc8fb6ac17d3d8c04fb4940936cc3d (diff) |
Add test on usable eglconfigs returned
-rw-r--r-- | ext/eglgles/gsteglglessink.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/ext/eglgles/gsteglglessink.c b/ext/eglgles/gsteglglessink.c index dfd0f1fca..24986618f 100644 --- a/ext/eglgles/gsteglglessink.c +++ b/ext/eglgles/gsteglglessink.c @@ -772,6 +772,9 @@ gst_eglglessink_fill_supported_fbuffer_configs (GstEglGlesSink * eglglessink) EGLint cfg_number; GstEglGlesImageFmt *format; + GST_DEBUG_OBJECT (eglglessink, + "Building initial list of wanted eglattribs per format"); + /* Init supported format/caps list */ g_mutex_lock (eglglessink->flow_lock); @@ -1360,13 +1363,19 @@ gst_eglglessink_choose_config (GstEglGlesSink * eglglessink) EGLint con_attribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE }; GLint egl_configs; - if (!eglChooseConfig (eglglessink->display, eglglessink->selected_fmt->eglcfg, - &eglglessink->config, 1, &egl_configs)) { + if ((eglChooseConfig (eglglessink->display, eglglessink->selected_fmt->eglcfg, + &eglglessink->config, 1, &egl_configs)) == EGL_FALSE) { show_egl_error ("eglChooseConfig"); - GST_ERROR_OBJECT (eglglessink, "Could not choose EGL config"); + GST_ERROR_OBJECT (eglglessink, "eglChooseConfig failed"); goto HANDLE_EGL_ERROR; } + if (egl_configs < 1) { + GST_ERROR_OBJECT (eglglessink, + "Could not find matching framebuffer config"); + goto HANDLE_ERROR; + } + eglglessink->context = eglCreateContext (eglglessink->display, eglglessink->config, EGL_NO_CONTEXT, con_attribs); @@ -1382,7 +1391,8 @@ gst_eglglessink_choose_config (GstEglGlesSink * eglglessink) /* Errors */ HANDLE_EGL_ERROR: GST_ERROR_OBJECT (eglglessink, "EGL call returned error %x", eglGetError ()); - GST_ERROR_OBJECT (eglglessink, "Couldn't choose config"); +HANDLE_ERROR: + GST_ERROR_OBJECT (eglglessink, "Couldn't choose an usable config"); return FALSE; } |