--- 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();
+ }
}