diff options
Diffstat (limited to 'src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp')
-rw-r--r-- | src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp | 5 |
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) |