summaryrefslogtreecommitdiffstats
path: root/src/gsttools
diff options
context:
space:
mode:
authorVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-11-05 13:39:55 +0100
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-11-05 13:03:51 +0000
commit4d251f072c6f97b4cf4618103e4e857e499c5ed7 (patch)
treebe1d14ee95e12f4c015edb5027a9c08c92b52c07 /src/gsttools
parentf422fbde120f791b29d01cf76079599c68ffa868 (diff)
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>
Diffstat (limited to 'src/gsttools')
-rw-r--r--src/gsttools/qgstreamerplayersession.cpp3
1 files changed, 3 insertions, 0 deletions
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