From 7b649027bc72a0033d5f55c3dd209f2e54810545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 11 Jul 2013 16:21:00 +0200 Subject: [PATCH] [737/906] glimagesink: Request and set the window handle much earlier --- gst/gl/gstglimagesink.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gst/gl/gstglimagesink.c b/gst/gl/gstglimagesink.c index 7ee85e1139..b2dcebc04f 100644 --- a/gst/gl/gstglimagesink.c +++ b/gst/gl/gstglimagesink.c @@ -422,6 +422,15 @@ gst_glimage_sink_change_state (GstElement * element, GstStateChange transition) window = gst_gl_window_new (glimage_sink->display); gst_gl_display_set_window (glimage_sink->display, window); + if (!glimage_sink->window_id && !glimage_sink->new_window_id) + gst_video_overlay_prepare_window_handle (GST_VIDEO_OVERLAY + (glimage_sink)); + + if (glimage_sink->window_id != glimage_sink->new_window_id) { + glimage_sink->window_id = glimage_sink->new_window_id; + gst_gl_window_set_window_handle (window, glimage_sink->window_id); + } + if (!gst_gl_window_create_context (window, 0, &error)) { GST_ELEMENT_ERROR (glimage_sink, RESOURCE, NOT_FOUND, ("%s", error->message), (NULL)); @@ -596,9 +605,6 @@ gst_glimage_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) glimage_sink->info = vinfo; - if (!glimage_sink->window_id && !glimage_sink->new_window_id) - gst_video_overlay_prepare_window_handle (GST_VIDEO_OVERLAY (glimage_sink)); - return TRUE; }