diff options
author | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2014-03-10 13:50:06 +0200 |
---|---|---|
committer | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2014-06-17 13:51:24 +0200 |
commit | 12444ec84e6b2790a8f8a05be4254e3bfd1a42f4 (patch) | |
tree | 87c19dd72962c57a0b619f52ec129ccc820fcdd0 | |
parent | fabc5305be5530e89ec351e9422918226185df89 (diff) | |
download | gstreamer-plugins-bad-12444ec84e6b2790a8f8a05be4254e3bfd1a42f4.tar.gz |
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.
-rw-r--r-- | ext/wayland/gstwaylandsink.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c index db2c2e64e..06e6fd9e7 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); } |