From 12444ec84e6b2790a8f8a05be4254e3bfd1a42f4 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Mon, 10 Mar 2014 13:50:06 +0200 Subject: [PATCH] waylandsink: Set external surfaces and their child objects to use our own event queue This fixes weird freezes because of frame_redraw_callback() not being called from the main thread when it should with weston's toy toolkit. It's also safer to know that frame_redraw_callback() will always be called from our display thread... Otherwise it could be called after the sink has been destroyed for example. --- ext/wayland/gstwaylandsink.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c index db2c2e6..06e6fd9 100644 --- a/ext/wayland/gstwaylandsink.c +++ b/ext/wayland/gstwaylandsink.c @@ -652,6 +652,8 @@ gst_wayland_sink_set_window_handle (GstVideoOverlay * overlay, guintptr handle) ("Failed to use the external wayland display: '%s'", error->message)); g_error_free (error); } else { + wl_proxy_set_queue ((struct wl_proxy *) whandle->surface, + sink->display->queue); sink->window = gst_wl_window_new_from_surface (sink->display, whandle->surface, whandle->width, whandle->height); } -- 2.7.4