From 1f71b5a57d4dff4cb6ad21d6a55eef77ed6a3dbe Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Fri, 13 Apr 2018 09:28:53 +0200 Subject: [PATCH] wayland: don't poll if there are no pending frames Otherwise the following poll may not return for an arbitrary amount of time. This can happen if another wayland event queue has flushed and read our events. https://bugzilla.gnome.org/show_bug.cgi?id=795224 --- gst-libs/gst/vaapi/gstvaapiwindow_wayland.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gst-libs/gst/vaapi/gstvaapiwindow_wayland.c b/gst-libs/gst/vaapi/gstvaapiwindow_wayland.c index 3d77e45668..bd2d89d836 100644 --- a/gst-libs/gst/vaapi/gstvaapiwindow_wayland.c +++ b/gst-libs/gst/vaapi/gstvaapiwindow_wayland.c @@ -185,6 +185,11 @@ gst_vaapi_window_wayland_sync (GstVaapiWindow * window) if (wl_display_flush (wl_display) < 0) goto error; + if (g_atomic_int_get (&priv->num_frames_pending) == 0) { + wl_display_cancel_read (wl_display); + return TRUE; + } + again: if (gst_poll_wait (priv->poll, GST_CLOCK_TIME_NONE) < 0) { int saved_errno = errno;