File gst-vaapi-wayland-dont-poll-no-pending-frames.patch of Package gstreamer-plugins-vaapi

From 1dc3c9e183669c2b23ab0428109a6e107ace6e25 Mon Sep 17 00:00:00 2001
From: Michael Olbrich <m.olbrich@pengutronix.de>
Date: Fri, 13 Apr 2018 09:28:53 +0200
Subject: 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 3d77e45..bd2d89d 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;
-- 
cgit v1.1
openSUSE Build Service is sponsored by