From 44d82d6aad0e53e2c451f032c9a04959c084fb16 Mon Sep 17 00:00:00 2001 From: Julien Isorce Date: Fri, 16 Aug 2013 15:26:28 +0100 Subject: [PATCH] [790/906] glimagesink: retrieve window only when clientDrawCallback return true --- gst/gl/gstglimagesink.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gst/gl/gstglimagesink.c b/gst/gl/gstglimagesink.c index 3cae93ec15..5aede4329b 100644 --- a/gst/gl/gstglimagesink.c +++ b/gst/gl/gstglimagesink.c @@ -959,19 +959,20 @@ gst_glimage_sink_on_draw (GstGLImageSink * gl_sink) /* check if a client draw callback is registered */ if (gl_sink->clientDrawCallback) { - GstGLWindow *window = gst_gl_display_get_window (gl_sink->display); - gboolean doRedisplay = gl_sink->clientDrawCallback (gl_sink->redisplay_texture, gl_sink->redisplay_texture_width, gl_sink->redisplay_texture_height, gl_sink->client_data); - if (doRedisplay && window) + if (doRedisplay) { + GstGLWindow *window = gst_gl_display_get_window (gl_sink->display); + gst_gl_window_draw_unlocked (window, gl_sink->redisplay_texture_width, gl_sink->redisplay_texture_height); - gst_object_unref (window); + gst_object_unref (window); + } } /* default opengl scene */ else {