summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2019-11-16 11:49:23 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2019-11-20 22:20:41 +0100
commitbb3337783ed47ebf099beeb28e378c2651ddc0ec (patch)
tree8cbe465e1aa2feda949e9a4ea20a5936e60e8fc6 /dev-qt/qtmultimedia/files
parentdev-python/passlib: Revbump to 1.7.1-r2, EAPI=7, add py38 (diff)
downloadgentoo-bb3337783ed47ebf099beeb28e378c2651ddc0ec.tar.gz
gentoo-bb3337783ed47ebf099beeb28e378c2651ddc0ec.tar.bz2
gentoo-bb3337783ed47ebf099beeb28e378c2651ddc0ec.zip
dev-qt/qtmultimedia: Fix crash if video sink is used when destroyed
Package-Manager: Portage-2.3.79, Repoman-2.3.17 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'dev-qt/qtmultimedia/files')
-rw-r--r--dev-qt/qtmultimedia/files/qtmultimedia-5.13.2-gstreamer-crash.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/dev-qt/qtmultimedia/files/qtmultimedia-5.13.2-gstreamer-crash.patch b/dev-qt/qtmultimedia/files/qtmultimedia-5.13.2-gstreamer-crash.patch
new file mode 100644
index 00000000000..ffcdc89c1d3
--- /dev/null
+++ b/dev-qt/qtmultimedia/files/qtmultimedia-5.13.2-gstreamer-crash.patch
@@ -0,0 +1,40 @@
+From 4d251f072c6f97b4cf4618103e4e857e499c5ed7 Mon Sep 17 00:00:00 2001
+From: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
+Date: Tue, 5 Nov 2019 13:39:55 +0100
+Subject: [PATCH] GStreamer: Fix crash when video sink is used when it has been
+ destroyed
+
+When custom pipeline is requested, all playbin related elements must be cleared.
+
+Also when QMediaPlayer is destroying, it disables showing preroll frames,
+property of the video sink, which was already destroyed.
+
+Destroying of m_videoOutputBin decreases refcounter for m_videoSink,
+since the video sink is owned by m_videoOutputBin.
+
+Fixes: QTBUG-79753
+Change-Id: I2fcbd19372caf46adf2ae1ed2e5a7d0ee70040ad
+Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
+---
+ src/gsttools/qgstreamerplayersession.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/gsttools/qgstreamerplayersession.cpp b/src/gsttools/qgstreamerplayersession.cpp
+index c0998d7ae..05e419b10 100644
+--- a/src/gsttools/qgstreamerplayersession.cpp
++++ b/src/gsttools/qgstreamerplayersession.cpp
+@@ -252,8 +252,11 @@ void QGstreamerPlayerSession::resetElements()
+ resetGstObject(m_nullVideoSink);
+ resetGstObject(m_videoOutputBin);
+
++ m_audioSink = nullptr;
+ m_volumeElement = nullptr;
+ m_videoIdentity = nullptr;
++ m_pendingVideoSink = nullptr;
++ m_videoSink = nullptr;
+ }
+
+ GstElement *QGstreamerPlayerSession::playbin() const
+--
+2.16.3
+