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 - [email protected]
+
+- 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
[email protected]
+Patch0: gst-vaapi-vaapipostproc-lock-ensure_filter.patch
+# PATCH-FIX-UPSTREAM gst-vaapi-add-NULL-sentinel-to-kernel_names.patch
[email protected]
+Patch1: gst-vaapi-add-NULL-sentinel-to-kernel_names.patch
+# PATCH-FIX-UPSTREAM gst-vaapi-vaapivideomemory-remove-unused-macro.patch
[email protected]
+Patch2: gst-vaapi-vaapivideomemory-remove-unused-macro.patch
+# PATCH-FIX-UPSTREAM gst-vaapi-plugins-handle-vaapi-allocator.patch
[email protected]
+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 <[email protected]>
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?=
<[email protected]>
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 <[email protected]>
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?=
<[email protected]>
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