From aaeb7801e347500ed56f921242b6f90a01775379 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 16 Apr 2021 11:12:42 +0200 Subject: Various reliability bugfixes Fix crashes due to dangling pointers. On gstreamer avoid using message filters when we do not need them. Change-Id: I1bce271dda4b5efb3913954deb719542288b9b12 Reviewed-by: Doris Verria Reviewed-by: Lars Knoll --- src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp') diff --git a/src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp b/src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp index ef059c8b7..57753f53d 100644 --- a/src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp +++ b/src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp @@ -68,20 +68,16 @@ QGstreamerVideoOutput::~QGstreamerVideoOutput() void QGstreamerVideoOutput::setVideoSink(QVideoSink *sink) { - auto *videoSink = static_cast(sink->platformVideoSink()); + auto *videoSink = sink ? static_cast(sink->platformVideoSink()) : nullptr; if (videoSink == m_videoWindow) return; if (m_videoWindow) { - gstPipeline.removeMessageFilter(static_cast(m_videoWindow)); - gstPipeline.removeMessageFilter(static_cast(m_videoWindow)); disconnect(m_videoWindow, SIGNAL(sinkChanged()), this, SLOT(sinkChanged())); } m_videoWindow = videoSink; if (m_videoWindow) { - gstPipeline.installMessageFilter(static_cast(m_videoWindow)); - gstPipeline.installMessageFilter(static_cast(m_videoWindow)); connect(m_videoWindow, SIGNAL(sinkChanged()), this, SLOT(sinkChanged())); } sinkChanged(); -- cgit v1.2.3