qtmobility/plugins/multimedia/gstreamer/qgstreamervideorenderer.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
--- a/qtmobility/plugins/multimedia/gstreamer/qgstreamervideorenderer.cpp	Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/plugins/multimedia/gstreamer/qgstreamervideorenderer.cpp	Wed Jun 23 19:08:38 2010 +0300
@@ -48,7 +48,7 @@
 #include <gst/gst.h>
 
 QGstreamerVideoRenderer::QGstreamerVideoRenderer(QObject *parent)
-    :QVideoRendererControl(parent),m_videoSink(0)
+    :QVideoRendererControl(parent),m_videoSink(0), m_surface(0)
 {
 }
 
@@ -77,6 +77,15 @@
 
 void QGstreamerVideoRenderer::setSurface(QAbstractVideoSurface *surface)
 {
-    m_surface = surface;
+    if (m_surface != surface) {
+        if (m_videoSink)
+            gst_object_unref(GST_OBJECT(m_videoSink));
+
+        m_videoSink = 0;
+        
+        m_surface = surface;
+
+        emit sinkChanged();
+    }
 }