qtmobility/plugins/multimedia/gstreamer/qgstreamervideorenderer.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    46 #include <QApplication>
    46 #include <QApplication>
    47 
    47 
    48 #include <gst/gst.h>
    48 #include <gst/gst.h>
    49 
    49 
    50 QGstreamerVideoRenderer::QGstreamerVideoRenderer(QObject *parent)
    50 QGstreamerVideoRenderer::QGstreamerVideoRenderer(QObject *parent)
    51     :QVideoRendererControl(parent),m_videoSink(0)
    51     :QVideoRendererControl(parent),m_videoSink(0), m_surface(0)
    52 {
    52 {
    53 }
    53 }
    54 
    54 
    55 QGstreamerVideoRenderer::~QGstreamerVideoRenderer()
    55 QGstreamerVideoRenderer::~QGstreamerVideoRenderer()
    56 {
    56 {
    75     return m_surface;
    75     return m_surface;
    76 }
    76 }
    77 
    77 
    78 void QGstreamerVideoRenderer::setSurface(QAbstractVideoSurface *surface)
    78 void QGstreamerVideoRenderer::setSurface(QAbstractVideoSurface *surface)
    79 {
    79 {
    80     m_surface = surface;
    80     if (m_surface != surface) {
       
    81         if (m_videoSink)
       
    82             gst_object_unref(GST_OBJECT(m_videoSink));
       
    83 
       
    84         m_videoSink = 0;
       
    85         
       
    86         m_surface = surface;
       
    87 
       
    88         emit sinkChanged();
       
    89     }
    81 }
    90 }
    82 
    91