Reset VideoSurface pointer when deleted
authorDominik Holland <dominik.holland@pelagicore.com>
Thu, 18 Apr 2013 15:16:38 +0000 (17:16 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 23 Apr 2013 09:17:34 +0000 (11:17 +0200)
Change-Id: Iec74c8a8b914d2c2765e0e1f319d89f3daedfe3f
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
src/gsttools/qgstreamervideorenderer.cpp
src/multimedia/gsttools_headers/qgstreamervideorenderer_p.h

index 4bc92a1..5b0b0d7 100644 (file)
@@ -90,7 +90,7 @@ void QGstreamerVideoRenderer::setSurface(QAbstractVideoSurface *surface)
         m_videoSink = 0;
 
         if (m_surface) {
-            disconnect(m_surface, SIGNAL(supportedFormatsChanged()),
+            disconnect(m_surface.data(), SIGNAL(supportedFormatsChanged()),
                        this, SLOT(handleFormatChange()));
         }
 
@@ -99,7 +99,7 @@ void QGstreamerVideoRenderer::setSurface(QAbstractVideoSurface *surface)
         m_surface = surface;
 
         if (m_surface) {
-            connect(m_surface, SIGNAL(supportedFormatsChanged()),
+            connect(m_surface.data(), SIGNAL(supportedFormatsChanged()),
                     this, SLOT(handleFormatChange()));
         }
 
index b7121e0..42ce913 100644 (file)
@@ -44,6 +44,7 @@
 
 #include <qvideorenderercontrol.h>
 #include <private/qvideosurfacegstsink_p.h>
+#include <qabstractvideosurface.h>
 
 #include "qgstreamervideorendererinterface_p.h"
 
@@ -74,7 +75,7 @@ private slots:
 
 private:    
     QVideoSurfaceGstSink *m_videoSink;
-    QAbstractVideoSurface *m_surface;
+    QPointer<QAbstractVideoSurface> m_surface;
 };
 
 QT_END_NAMESPACE