summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Isorce <julien.isorce@collabora.co.uk>2013-08-16 15:26:28 +0100
committerJulien Isorce <julien.isorce@collabora.co.uk>2013-08-16 15:26:28 +0100
commit960f3e84e29d6b2179d2ef631b2d5ccd4cee157d (patch)
tree350d80fc21372565195ea2f38461673c69d259ba
parent105527f012476654ac915836cf31664ad4fa97fa (diff)
glimagesink: retrieve window only when clientDrawCallback return true
-rw-r--r--gst/gl/gstglimagesink.c9
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 {