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.
This commit is contained in:
George Kiagiadakis 2014-03-10 13:50:06 +02:00
parent fabc5305be
commit 12444ec84e

View file

@ -652,6 +652,8 @@ gst_wayland_sink_set_window_handle (GstVideoOverlay * overlay, guintptr handle)
("Failed to use the external wayland display: '%s'", error->message)); ("Failed to use the external wayland display: '%s'", error->message));
g_error_free (error); g_error_free (error);
} else { } else {
wl_proxy_set_queue ((struct wl_proxy *) whandle->surface,
sink->display->queue);
sink->window = gst_wl_window_new_from_surface (sink->display, sink->window = gst_wl_window_new_from_surface (sink->display,
whandle->surface, whandle->width, whandle->height); whandle->surface, whandle->width, whandle->height);
} }