From 8da5811cdc4b07c3a4737c3f6039949fd1853721 Mon Sep 17 00:00:00 2001 From: Simon Farnsworth Date: Fri, 7 Feb 2014 14:57:35 +0000 Subject: [PATCH] Fix vaapipostproc crash in live pipelines --- ...eate-filter-surface-pool-if-it-does-.patch | 33 +++++++++++++++++++ gstreamer1-vaapi.spec | 8 ++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 0001-vaapipostproc-Create-filter-surface-pool-if-it-does-.patch diff --git a/0001-vaapipostproc-Create-filter-surface-pool-if-it-does-.patch b/0001-vaapipostproc-Create-filter-surface-pool-if-it-does-.patch new file mode 100644 index 0000000..ced901e --- /dev/null +++ b/0001-vaapipostproc-Create-filter-surface-pool-if-it-does-.patch @@ -0,0 +1,33 @@ +From 4998c53c8775f79b7e19a93ed47a0e7e65f6be03 Mon Sep 17 00:00:00 2001 +From: Simon Farnsworth +Date: Fri, 7 Feb 2014 12:27:50 +0000 +Subject: [PATCH] vaapipostproc: Create filter surface pool if it does not + exist + +ensure_srcpad_buffer_pool tries to avoid unnecessarily deleting and +recreating filter_pool. Unfortunately, this also meant it didn't create it +if it did not exist. + +Fix it to always create the buffer pool if it does not exist. + +Signed-off-by: Simon Farnsworth +--- + gst/vaapi/gstvaapipostproc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst/vaapi/gstvaapipostproc.c b/gst/vaapi/gstvaapipostproc.c +index f1be89c..70cc411 100644 +--- a/gst/vaapi/gstvaapipostproc.c ++++ b/gst/vaapi/gstvaapipostproc.c +@@ -1126,7 +1126,7 @@ ensure_srcpad_buffer_pool(GstVaapiPostproc *postproc, GstCaps *caps) + gst_video_info_set_format(&vi, postproc->format, + GST_VIDEO_INFO_WIDTH(&vi), GST_VIDEO_INFO_HEIGHT(&vi)); + +- if (!video_info_changed(&vi, &postproc->filter_pool_info)) ++ if (postproc->filter_pool && !video_info_changed(&vi, &postproc->filter_pool_info)) + return TRUE; + postproc->filter_pool_info = vi; + +-- +1.8.5.3 + diff --git a/gstreamer1-vaapi.spec b/gstreamer1-vaapi.spec index 939f86c..5fd3780 100644 --- a/gstreamer1-vaapi.spec +++ b/gstreamer1-vaapi.spec @@ -1,11 +1,13 @@ Name: gstreamer1-vaapi Version: 0.5.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GStreamer plugins to use VA API video acceleration License: LGPLv2+ URL: https://gitorious.org/vaapi/gstreamer-vaapi/ Source0: http://www.freedesktop.org/software/vaapi/releases/gstreamer-vaapi/gstreamer-vaapi-%{version}.tar.bz2 +# Fix for https://bugzilla.gnome.org/show_bug.cgi?id=723834 +Patch1: 0001-vaapipostproc-Create-filter-surface-pool-if-it-does-.patch BuildRequires: glib2-devel >= 2.28 BuildRequires: gstreamer1-devel >= 1.0.0 @@ -35,6 +37,7 @@ developing applications that use %{name}. %prep %setup -q -n gstreamer-vaapi-%{version} +%patch0 -p1 %build @@ -73,5 +76,8 @@ find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' %{_libdir}/pkgconfig/gstreamer-vaapi*.pc %changelog +* Fri Feb 7 2014 Simon Farnsworth - 0.5.8-2 +- Fix vaapipostproc crash in live pipelines + * Wed Feb 5 2014 Simon Farnsworth - 0.5.8-1 - initial release