diff options
author | Julien Isorce <julien.isorce@collabora.co.uk> | 2013-08-16 15:26:28 +0100 |
---|---|---|
committer | Julien Isorce <julien.isorce@collabora.co.uk> | 2013-08-16 15:26:28 +0100 |
commit | 960f3e84e29d6b2179d2ef631b2d5ccd4cee157d (patch) | |
tree | 350d80fc21372565195ea2f38461673c69d259ba | |
parent | 105527f012476654ac915836cf31664ad4fa97fa (diff) |
glimagesink: retrieve window only when clientDrawCallback return true
-rw-r--r-- | gst/gl/gstglimagesink.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gst/gl/gstglimagesink.c b/gst/gl/gstglimagesink.c index 3cae93e..5aede43 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 { |