diff --git a/src/plugins/gstreamer/qgstreamervideorenderer.cpp b/src/plugins/gstreamer/qgstreamervideorenderer.cpp index ead0bdcc..ac3d4a19 100644 --- a/src/plugins/gstreamer/qgstreamervideorenderer.cpp +++ b/src/plugins/gstreamer/qgstreamervideorenderer.cpp @@ -90,20 +90,19 @@ void QGstreamerVideoRenderer::setSurface(QAbstractVideoSurface *surface) disconnect(m_surface, SIGNAL(supportedFormatsChanged()), this, SLOT(handleFormatChange())); } - + + bool wasReady = isReady(); + m_surface = surface; - if (surface && !m_surface) - emit readyChanged(true); - - if (!surface && m_surface) - emit readyChanged(false); - if (m_surface) { connect(m_surface, SIGNAL(supportedFormatsChanged()), this, SLOT(handleFormatChange())); } + if (wasReady != isReady()) + emit readyChanged(isReady()); + emit sinkChanged(); } }