Hello community, here is the log from the commit of package gstreamer-plugins-vaapi for openSUSE:Factory checked in at 2018-05-03 12:34:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi (Old) and /work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "gstreamer-plugins-vaapi" Thu May 3 12:34:38 2018 rev:27 rq:603351 version:1.12.5 Changes: -------- --- /work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi/gstreamer-plugins-vaapi.changes 2018-04-03 12:12:02.991492767 +0200 +++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new/gstreamer-plugins-vaapi.changes 2018-05-03 12:34:40.911365530 +0200 @@ -1,0 +2,13 @@ +Wed May 2 06:33:17 UTC 2018 - bjorn.lie@gmail.com + +- Add upstream bug fix patches: + + gst-vaapi-egl-mark-context-wrapped.patch: libs: egl: utils: + mark context as wrapped when it is. The returning egl context + may be null, so we should check the return value (bgo#795391). + + gst-vaapi-wayland-dont-poll-no-pending-frames.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 (bgo#795224). + +------------------------------------------------------------------- New: ---- gst-vaapi-egl-mark-context-wrapped.patch gst-vaapi-wayland-dont-poll-no-pending-frames.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gstreamer-plugins-vaapi.spec ++++++ --- /var/tmp/diff_new_pack.VAyvLL/_old 2018-05-03 12:34:41.499344582 +0200 +++ /var/tmp/diff_new_pack.VAyvLL/_new 2018-05-03 12:34:41.499344582 +0200 @@ -26,6 +26,10 @@ Group: Productivity/Multimedia/Other URL: https://gstreamer.freedesktop.org/ Source0: https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-%{version}.tar.xz +# PATCH-FIX-UPSTREAM gst-vaapi-wayland-dont-poll-no-pending-frames.patch bgo#795224 -- wayland: don't poll if there are no pending frames +Patch0: gst-vaapi-wayland-dont-poll-no-pending-frames.patch +# PATCH-FIX-UPSTREAM gst-vaapi-egl-mark-context-wrapped.patch bgo#795391 -- libs: egl: utils: mark context as wrapped when it is +Patch1: gst-vaapi-egl-mark-context-wrapped.patch BuildRequires: Mesa-devel BuildRequires: Mesa-libGLESv3-devel ++++++ gst-vaapi-egl-mark-context-wrapped.patch ++++++
From 1660bd0df1817f2232328c41bb2f5fc54ff41f6b Mon Sep 17 00:00:00 2001 From: Hyunjun Ko
Date: Tue, 24 Apr 2018 18:12:44 +0900 Subject: libs: egl: utils: mark context as wrapped when it is
The returning egl context may be null, so we should check the return value. https://bugzilla.gnome.org/show_bug.cgi?id=795391 --- gst-libs/gst/vaapi/gstvaapiutils_egl.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gst-libs/gst/vaapi/gstvaapiutils_egl.c b/gst-libs/gst/vaapi/gstvaapiutils_egl.c index 0f03909..00b9124 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_egl.c +++ b/gst-libs/gst/vaapi/gstvaapiutils_egl.c @@ -1083,11 +1083,15 @@ egl_context_new_wrapped (EglDisplay * display, EGLContext gl_context) args.display = display; args.config = config; args.gl_parent_context = gl_context; + args.context = NULL; success = egl_display_run (display, (EglContextRunFunc) do_egl_context_new, &args); egl_object_unref (config); if (!success) return NULL; + + if (args.context) + args.context->base.is_wrapped = TRUE; return args.context; } -- cgit v1.1 ++++++ gst-vaapi-wayland-dont-poll-no-pending-frames.patch ++++++
From 1dc3c9e183669c2b23ab0428109a6e107ace6e25 Mon Sep 17 00:00:00 2001 From: Michael Olbrich
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