From: George Kiagiadakis Date: Mon, 10 Mar 2014 11:50:06 +0000 (+0200) Subject: waylandsink: Set external surfaces and their child objects to use our own event queue X-Git-Tag: 1.19.3~507^2~10841 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=12444ec84e6b2790a8f8a05be4254e3bfd1a42f4;p=platform%2Fupstream%2Fgstreamer.git 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. --- 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); }