Hello community,

here is the log from the commit of package gstreamer-plugins-vaapi for 
openSUSE:Factory checked in at 2018-02-13 10:32:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-plugins-vaapi"

Tue Feb 13 10:32:30 2018 rev:22 rq:575961 version:1.12.4

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi/gstreamer-plugins-vaapi.changes
  2017-12-19 10:52:11.987562365 +0100
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new/gstreamer-plugins-vaapi.changes
     2018-02-13 10:32:44.665870527 +0100
@@ -1,0 +2,12 @@
+Mon Feb 12 11:35:03 UTC 2018 - bjorn....@gmail.com
+
+- Add upstream bug fix patches:
+  + gst-vaapi-vaapipostproc-lock-ensure_filter.patch.
+  + gst-vaapi-add-NULL-sentinel-to-kernel_names.patch.
+  + gst-vaapi-vaapivideomemory-remove-unused-macro.patch.
+  + gst-vaapi-plugins-handle-vaapi-allocator.patch.
+- Drop non built devel subpackage, and do a minor spec clean.
+- Drop no longer needed obsoletes, no current version of openSUSE
+  have ever had them, do minor spec cleanup, use autosetup macro.
+
+-------------------------------------------------------------------

New:
----
  gst-vaapi-add-NULL-sentinel-to-kernel_names.patch
  gst-vaapi-plugins-handle-vaapi-allocator.patch
  gst-vaapi-vaapipostproc-lock-ensure_filter.patch
  gst-vaapi-vaapivideomemory-remove-unused-macro.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gstreamer-plugins-vaapi.spec ++++++
--- /var/tmp/diff_new_pack.AuBUYl/_old  2018-02-13 10:32:45.457841989 +0100
+++ /var/tmp/diff_new_pack.AuBUYl/_new  2018-02-13 10:32:45.461841845 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package gstreamer-plugins-vaapi
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -26,6 +26,16 @@
 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-vaapipostproc-lock-ensure_filter.patch 
bjorn....@gmail.com
+Patch0:         gst-vaapi-vaapipostproc-lock-ensure_filter.patch
+# PATCH-FIX-UPSTREAM gst-vaapi-add-NULL-sentinel-to-kernel_names.patch 
bjorn....@gmail.com
+Patch1:         gst-vaapi-add-NULL-sentinel-to-kernel_names.patch
+# PATCH-FIX-UPSTREAM gst-vaapi-vaapivideomemory-remove-unused-macro.patch 
bjorn....@gmail.com
+Patch2:         gst-vaapi-vaapivideomemory-remove-unused-macro.patch
+# PATCH-FIX-UPSTREAM gst-vaapi-plugins-handle-vaapi-allocator.patch 
bjorn....@gmail.com
+Patch3:         gst-vaapi-plugins-handle-vaapi-allocator.patch
+
 BuildRequires:  Mesa-devel
 BuildRequires:  Mesa-libGLESv3-devel
 BuildRequires:  gtk-doc
@@ -54,28 +64,10 @@
 BuildRequires:  pkgconfig(xrandr)
 BuildRequires:  pkgconfig(xrender)
 ExclusiveArch:  %ix86 x86_64
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-# Drop obsoletes when Leap 42.2 is out of support
-Obsoletes:      libgstcodecparsers_vpx0
-Obsoletes:      libgstvaapi-1_6-1
-Obsoletes:      libgstvaapi-drm
-Obsoletes:      libgstvaapi-egl
-Obsoletes:      libgstvaapi-glx
-Obsoletes:      libgstvaapi-wayland
-Obsoletes:      libgstvaapi-x11
 
 %description
 gstreamer-vaapi is a collection of GStreamer plugins and helper libraries that 
allow hardware accelerated video decoding through VA-API.
 
-%package devel
-Summary:        Include Files and Libraries mandatory for Development
-Group:          Development/Libraries/C and C++
-Requires:       %{name} = %{version}
-
-%description devel
-This package contains all necessary include files and libraries needed
-to develop applications that require these.
-
 %package doc
 Summary:        Documentation for gstreamer-plugins-vaapi
 Group:          Development/Libraries/C and C++
@@ -85,7 +77,7 @@
 This package contains documentation for gstreamer-plugins-vaapi.
 
 %prep
-%setup -q -n gstreamer-vaapi-%{version}
+%autosetup -n gstreamer-vaapi-%{version} -p1
 
 %build
 %configure \
@@ -96,7 +88,7 @@
        --enable-glx \
        --enable-wayland \
        --enable-x11 \
-
+       %{nil}
 make %{?_smp_mflags}
 
 %install
@@ -107,12 +99,10 @@
 %postun -p /sbin/ldconfig
 
 %files
-%defattr(-,root,root,0755)
 %doc COPYING.LIB
 %{_libdir}/gstreamer-%{gst_branch}/libgstvaapi.so
 
 %files doc
-%defattr(-, root, root)
 %doc AUTHORS NEWS README
 %{_datadir}/gtk-doc/html/gstreamer-vaapi-plugins-1.0
 

++++++ gst-vaapi-add-NULL-sentinel-to-kernel_names.patch ++++++
>From aaf64a273635ce0697a0ce9b8d289244a3c1649b Mon Sep 17 00:00:00 2001
From: Philippe Normand <ph...@igalia.com>
Date: Tue, 30 Jan 2018 12:56:49 +0000
Subject: vaapi: add NULL-sentinel to kernel_names

The array needs to be NULL-terminated according to the
gst_plugin_add_dependency() documentation.
---
 gst/vaapi/gstvaapi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gst/vaapi/gstvaapi.c b/gst/vaapi/gstvaapi.c
index f060f8e..625a9c3 100644
--- a/gst/vaapi/gstvaapi.c
+++ b/gst/vaapi/gstvaapi.c
@@ -60,7 +60,7 @@ plugin_add_dependencies (GstPlugin * plugin)
     "DISPLAY", "WAYLAND_DISPLAY", NULL
   };
   const gchar *kernel_paths[] = { "/dev/dri", NULL };
-  const gchar *kernel_names[] = { "card", "render" };
+  const gchar *kernel_names[] = { "card", "render", NULL };
 
   /* features get updated upon changes in /dev/dri/card* */
   gst_plugin_add_dependency (plugin, NULL, kernel_paths, kernel_names,
-- 
cgit v1.1

++++++ gst-vaapi-plugins-handle-vaapi-allocator.patch ++++++
>From c0826fdc96d9fca6d0e203e8c23c2b400be5c31a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?=
 <vjaq...@igalia.com>
Date: Thu, 8 Feb 2018 11:33:26 +0100
Subject: plugins: handle vaapi allocator in allocation query

In propose_allocation() if the numer of allocation params is zero, the
system's allocator is added first, and lastly the native VA-API
allocator.

https://bugzilla.gnome.org/show_bug.cgi?id=789476
---
 gst/vaapi/gstvaapipluginbase.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/gst/vaapi/gstvaapipluginbase.c b/gst/vaapi/gstvaapipluginbase.c
index 4f43b6c..738f8b6 100644
--- a/gst/vaapi/gstvaapipluginbase.c
+++ b/gst/vaapi/gstvaapipluginbase.c
@@ -819,14 +819,28 @@ gst_vaapi_plugin_base_propose_allocation 
(GstVaapiPluginBase * plugin,
   if (!caps)
     goto error_no_caps;
 
+  if (!ensure_sinkpad_buffer_pool (plugin, caps))
+    return FALSE;
+
   if (need_pool) {
-    if (!ensure_sinkpad_buffer_pool (plugin, caps))
-      return FALSE;
     gst_query_add_allocation_pool (query, plugin->sinkpad_buffer_pool,
         plugin->sinkpad_buffer_size, BUFFER_POOL_SINK_MIN_BUFFERS, 0);
-    gst_query_add_allocation_param (query, plugin->sinkpad_allocator, NULL);
   }
 
+  /* Set sinkpad allocator as the last allocation param.
+   *
+   * If there's none, set system's allocator first and VAAPI allocator
+   * second
+   */
+  if (gst_query_get_n_allocation_params (query) == 0) {
+    GstAllocator *allocator;
+
+    allocator = gst_allocator_find (GST_ALLOCATOR_SYSMEM);
+    gst_query_add_allocation_param (query, allocator, NULL);
+    gst_object_unref (allocator);
+  }
+  gst_query_add_allocation_param (query, plugin->sinkpad_allocator, NULL);
+
   gst_query_add_allocation_meta (query, GST_VAAPI_VIDEO_META_API_TYPE, NULL);
   gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL);
   return TRUE;
-- 
cgit v1.1

++++++ gst-vaapi-vaapipostproc-lock-ensure_filter.patch ++++++
>From fdf70ba1ab6b412040441d0011bf4d56dae6188e Mon Sep 17 00:00:00 2001
From: Michael Tretter <m.tret...@pengutronix.de>
Date: Fri, 8 Dec 2017 14:46:02 +0100
Subject: vaapipostproc: lock ensure_filter with postproc_lock

gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
and allowed_sinkpad_caps. This can race with copying these caps in
gst_vaapipostproc_transform_caps and lead to segfaults.

The gst_vaapipostproc_transform_caps function already locks
postproc_lock before copying the caps. Make sure that calls to
gst_vaapipostproc_ensure_filter also acquire this lock.
---
 gst/vaapi/gstvaapipostproc.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/gst/vaapi/gstvaapipostproc.c b/gst/vaapi/gstvaapipostproc.c
index d67cdfc..deaf23c 100644
--- a/gst/vaapi/gstvaapipostproc.c
+++ b/gst/vaapi/gstvaapipostproc.c
@@ -305,8 +305,13 @@ gst_vaapipostproc_start (GstBaseTransform * trans)
   ds_reset (&postproc->deinterlace_state);
   if (!gst_vaapi_plugin_base_open (GST_VAAPI_PLUGIN_BASE (postproc)))
     return FALSE;
-  if (!gst_vaapipostproc_ensure_filter (postproc))
+  g_mutex_lock (&postproc->postproc_lock);
+  if (!gst_vaapipostproc_ensure_filter (postproc)) {
+    g_mutex_unlock (&postproc->postproc_lock);
     return FALSE;
+  }
+  g_mutex_unlock (&postproc->postproc_lock);
+
   return TRUE;
 }
 
@@ -1878,8 +1883,12 @@ cb_channels_init (GstVaapiPostproc * postproc)
   if (postproc->cb_channels)
     return;
 
-  if (!gst_vaapipostproc_ensure_filter (postproc))
+  g_mutex_lock (&postproc->postproc_lock);
+  if (!gst_vaapipostproc_ensure_filter (postproc)) {
+    g_mutex_unlock (&postproc->postproc_lock);
     return;
+  }
+  g_mutex_unlock (&postproc->postproc_lock);
 
   filter_ops = postproc->filter_ops ? g_ptr_array_ref (postproc->filter_ops)
       : gst_vaapi_filter_get_operations (postproc->filter);
-- 
cgit v1.1

++++++ gst-vaapi-vaapivideomemory-remove-unused-macro.patch ++++++
>From b31b773af4ac301dd7a2a120b0152469866cd58a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?=
 <vjaq...@igalia.com>
Date: Wed, 7 Feb 2018 09:06:46 +0100
Subject: vaapivideomemory: remove unused macro

GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
was never used, since the native VA-API allocator name has been
GST_VAAPI_VIDEO_MEMORY_NAME.

This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.

https://bugzilla.gnome.org/show_bug.cgi?id=789476
---
 gst/vaapi/gstvaapivideomemory.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/gst/vaapi/gstvaapivideomemory.h b/gst/vaapi/gstvaapivideomemory.h
index 342ca65..9b0cb60 100644
--- a/gst/vaapi/gstvaapivideomemory.h
+++ b/gst/vaapi/gstvaapivideomemory.h
@@ -169,8 +169,6 @@ gst_vaapi_video_memory_sync (GstVaapiVideoMemory * mem);
 #define GST_VAAPI_IS_VIDEO_ALLOCATOR(obj) \
   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_VAAPI_TYPE_VIDEO_ALLOCATOR))
 
-#define GST_VAAPI_VIDEO_ALLOCATOR_NAME          "GstVaapiVideoAllocator"
-
 /**
  * GstVaapiVideoAllocator:
  *
-- 
cgit v1.1


Reply via email to