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