glcontext/egl: don't overwrite set GError
authorMatthew Waters <matthew@centricular.com>
Mon, 9 Jan 2017 14:00:12 +0000 (01:00 +1100)
committerMatthew Waters <matthew@centricular.com>
Fri, 13 Jan 2017 00:31:08 +0000 (11:31 +1100)
Doing so is an error and will cause a glib warning to be printed.

https://bugzilla.gnome.org/show_bug.cgi?id=776722

gst-libs/gst/gl/egl/gstglcontext_egl.c

index 057c6a9ba2a0cd4de146911817394d508e51eecd..7bc1207b63c620f98598d03d6f6c76b5fabed60e 100644 (file)
@@ -481,9 +481,13 @@ gst_gl_context_egl_create_context (GstGLContext * context,
     for (i = 0; i < G_N_ELEMENTS (gles2_versions); i++) {
       gint profileMask = 0;
       gint contextFlags = 0;
+      guint maj = gles2_versions[i].major;
+      guint min = gles2_versions[i].minor;
 
-      if (!gst_gl_context_egl_choose_config (egl, GST_GL_API_GLES2,
-              gles2_versions[i].major, error)) {
+      if (!gst_gl_context_egl_choose_config (egl, GST_GL_API_GLES2, maj, error)) {
+        GST_DEBUG_OBJECT (context, "Failed to choose a GLES%d config: %s",
+            maj, error && *error ? (*error)->message : "Unknown");
+        g_clear_error (error);
         continue;
       }
 #if defined(EGL_KHR_create_context)
@@ -492,8 +496,7 @@ gst_gl_context_egl_create_context (GstGLContext * context,
 
       egl->egl_context =
           _create_context_with_flags (egl, (EGLContext) external_gl_context,
-          GST_GL_API_GLES2, gles2_versions[i].major,
-          gles2_versions[i].minor, contextFlags, profileMask);
+          GST_GL_API_GLES2, maj, min, contextFlags, profileMask);
 
       if (egl->egl_context)
         break;
@@ -504,8 +507,7 @@ gst_gl_context_egl_create_context (GstGLContext * context,
 
       egl->egl_context =
           _create_context_with_flags (egl, (EGLContext) external_gl_context,
-          GST_GL_API_GLES2, gles2_versions[i].major,
-          gles2_versions[i].minor, contextFlags, profileMask);
+          GST_GL_API_GLES2, maj, min, contextFlags, profileMask);
 
       if (egl->egl_context)
         break;