From bb3337783ed47ebf099beeb28e378c2651ddc0ec Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Sat, 16 Nov 2019 11:49:23 +0100 Subject: 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 --- .../qtmultimedia-5.13.2-gstreamer-crash.patch | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 dev-qt/qtmultimedia/files/qtmultimedia-5.13.2-gstreamer-crash.patch (limited to 'dev-qt/qtmultimedia/files/qtmultimedia-5.13.2-gstreamer-crash.patch') 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 000000000000..ffcdc89c1d3a --- /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 +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 +--- + 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 + -- cgit v1.2.3-65-gdbad