summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReynaldo H. Verdejo Pinochet <reynaldo@collabora.com>2012-09-18 00:51:36 -0300
committerReynaldo H. Verdejo Pinochet <reynaldo@collabora.com>2012-09-18 00:51:36 -0300
commit833d6d63b274fb93a71152c211dc4c054f910344 (patch)
tree48557659f969db3a7c3068152eac64e94f44df03
parent745d2c7fcccc8fb6ac17d3d8c04fb4940936cc3d (diff)
Add test on usable eglconfigs returned
-rw-r--r--ext/eglgles/gsteglglessink.c18
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;
}