summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp')
-rw-r--r--src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp b/src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp
index f9bf9f6c2..982cdfc9c 100644
--- a/src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp
+++ b/src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp
@@ -80,7 +80,12 @@ void QGstreamerVideoOutput::setVideoSink(QVideoSink *sink)
if (m_videoWindow) {
connect(m_videoWindow, SIGNAL(sinkChanged()), this, SLOT(sinkChanged()));
}
+ auto state = gstPipeline.state();
+ if (state == GST_STATE_PLAYING)
+ gstPipeline.setStateSync(GST_STATE_PAUSED);
sinkChanged();
+ if (state == GST_STATE_PLAYING)
+ gstPipeline.setState(GST_STATE_PLAYING);
}
void QGstreamerVideoOutput::setPipeline(const QGstPipeline &pipeline)