summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp')
-rw-r--r--src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
index 99a44b70e..02a2214cf 100644
--- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
+++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
@@ -101,10 +101,7 @@ void QGstreamerCamera::setCamera(const QCameraDevice &camera)
m_cameraDevice = camera;
- bool havePipeline = !gstPipeline.isNull();
-
- if (havePipeline)
- gstPipeline.setStateSync(GST_STATE_PAUSED);
+ gstPipeline.beginConfig();
Q_ASSERT(!gstCamera.isNull());
@@ -128,10 +125,8 @@ void QGstreamerCamera::setCamera(const QCameraDevice &camera)
gstCamera.setState(GST_STATE_PAUSED);
- if (havePipeline) {
- gstPipeline.dumpGraph("setCamera");
- gstPipeline.setState(GST_STATE_PLAYING);
- }
+ gstPipeline.endConfig();
+ gstPipeline.dumpGraph("setCamera");
updateCameraProperties();
}
@@ -170,13 +165,9 @@ bool QGstreamerCamera::setCameraFormat(const QCameraFormat &format)
{
if (!m_cameraDevice.videoFormats().contains(format))
return false;
- bool havePipeline = !gstPipeline.isNull();
- auto state = havePipeline ? gstPipeline.state() : GST_STATE_NULL;
- if (havePipeline)
- gstPipeline.setStateSync(GST_STATE_PAUSED);
+ gstPipeline.beginConfig();
setCameraFormatInternal(format);
- if (havePipeline)
- gstPipeline.setStateSync(state);
+ gstPipeline.endConfig();
return true;
}