summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/imports/multimedia/qmldir1
-rw-r--r--src/multimedia/platform/gstreamer/common/qgstreamervideooutput.cpp5
2 files changed, 6 insertions, 0 deletions
diff --git a/src/imports/multimedia/qmldir b/src/imports/multimedia/qmldir
index 028587088..387cb3c14 100644
--- a/src/imports/multimedia/qmldir
+++ b/src/imports/multimedia/qmldir
@@ -4,3 +4,4 @@ classname QMultimediaDeclarativeModule
typeinfo plugins.qmltypes
prefer :/qt-project.org/imports/QtMultimedia/
Video 5.0 Video.qml
+
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)