sdlshare: Destroy GL backend buffer before the GL Context
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 24 Nov 2017 22:06:22 +0000 (17:06 -0500)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:32:31 +0000 (19:32 +0000)
This was otherwise leading to a deadlock in the GL library.

tests/examples/gl/sdl/sdlshare.c

index 4cbac26..29272f2 100644 (file)
@@ -394,15 +394,6 @@ main (int argc, char **argv)
   gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
   gst_object_unref (pipeline);
 
-  /* turn on back sdl opengl context */
-#ifdef WIN32
-  wglMakeCurrent (sdl_dc, sdl_gl_context);
-#else
-  glXMakeCurrent (sdl_display, None, 0);
-#endif
-
-  SDL_Quit ();
-
   /* make sure there is no pending gst gl buffer in the communication queues 
    * between sdl and gst-gl
    */
@@ -416,5 +407,14 @@ main (int argc, char **argv)
     gst_buffer_unref (buf);
   }
 
+  /* turn on back sdl opengl context */
+#ifdef WIN32
+  wglMakeCurrent (sdl_dc, sdl_gl_context);
+#else
+  glXMakeCurrent (sdl_display, None, 0);
+#endif
+
+  SDL_Quit ();
+
   return 0;
 }