From: Sebastian Dröge Date: Wed, 13 Mar 2019 07:28:58 +0000 (+0100) Subject: examples/sdlshare: Initialize GL as part of the event loop X-Git-Tag: 1.19.3~511^2~922 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e750ea40b6eac03657f88b4adccaf503593dfa40;p=platform%2Fupstream%2Fgstreamer.git examples/sdlshare: Initialize GL as part of the event loop And unref additional buffers we never use for rendering directly instead of going via the output queue. --- diff --git a/tests/examples/gl/sdl/sdlshare.c b/tests/examples/gl/sdl/sdlshare.c index 8a5512f..441c1d6 100644 --- a/tests/examples/gl/sdl/sdlshare.c +++ b/tests/examples/gl/sdl/sdlshare.c @@ -216,6 +216,8 @@ sdl_event_loop (GstBus * bus) SDL_GL_MakeCurrent (sdl_window, sdl_gl_context); SDL_GL_SetSwapInterval (1); + InitGL (640, 480); + while (!quit) { SDL_Event event; @@ -270,9 +272,14 @@ sdl_event_loop (GstBus * bus) } } + if (buf) { + g_async_queue_push (queue_output_buf, buf); + buf = NULL; + } + while (g_async_queue_length (queue_input_buf) > 3) { if (buf) - g_async_queue_push (queue_output_buf, buf); + gst_buffer_unref (buf); buf = (GstBuffer *) g_async_queue_pop (queue_input_buf); } @@ -329,13 +336,11 @@ main (int argc, char **argv) return -1; } + /* Create GL context and a wrapped GStreamer context around it */ sdl_gl_context = SDL_GL_CreateContext (sdl_window); SDL_GL_MakeCurrent (sdl_window, sdl_gl_context); - /* Loop, drawing and checking events */ - InitGL (640, 480); - #ifdef WIN32 gl_context = wglGetCurrentContext (); sdl_dc = wglGetCurrentDC ();