Skip to content
Snippets Groups Projects
Commit 896a836f authored by Jagyum Koo's avatar Jagyum Koo Committed by Víctor Manuel Jáquez Leal
Browse files

libs: window: wayland: rt event queue at destroy()

The proxy object of wl_buffer for the last frame remains in the
wl_map. Even though we call wl_buffer_destroy() in
frame_release_callback(), the proxy object remains without being
removed, since proxy object is deleted when wayland server sees the
delete request and sends 'delete_id' event.

We need to call roundtrip before destroying event_queue so that the
proxy object is removed. Otherwise, it would be mess up as receiving
'delete_id' event from previous play, when playing in the next
va/wayland window with the same wl_display connection.

https://bugzilla.gnome.org/show_bug.cgi?id=773689



Signed-off-by: default avatarVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
parent 9c3a4edf
No related branches found
No related tags found
No related merge requests found
......@@ -313,10 +313,15 @@ gst_vaapi_window_wayland_destroy (GstVaapiWindow * window)
{
GstVaapiWindowWaylandPrivate *const priv =
GST_VAAPI_WINDOW_WAYLAND_GET_PRIVATE (window);
struct wl_display *const wl_display =
GST_VAAPI_OBJECT_NATIVE_DISPLAY (window);
/* Wait for the last frame to complete redraw */
gst_vaapi_window_wayland_sync (window);
if (priv->event_queue)
wl_display_roundtrip_queue (wl_display, priv->event_queue);
if (priv->last_frame) {
frame_state_free (priv->last_frame);
priv->last_frame = NULL;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment