summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-10-06 12:15:17 +0200
committerLars Knoll <lars.knoll@qt.io>2021-10-11 11:49:01 +0200
commit3c215df0155189083cd8921f1c4fd9c3147c7c11 (patch)
tree6c9df3e104c06c8452129ea1c69f457fc00b97b1
parente89aa13f27c09105148fcc725f619eb85bdb6bb4 (diff)
Fix critical gstreamer warning
Remove the gstDecode element from the pipeline before setting its state to null. Otherwise we might end up with warnings as the state gets set back to running by the pipeline. Pick-to: 6.2 Change-Id: Ie9da9fdd7e0aaae59564c19c20f001c54c150786 Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
index a46af0c87..18e6862ff 100644
--- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
+++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercamera.cpp
@@ -116,9 +116,6 @@ void QGstreamerCamera::setCamera(const QCameraDevice &camera)
auto caps = QGstMutableCaps::fromCameraFormat(f);
auto gstNewDecode = QGstElement(f.pixelFormat() == QVideoFrameFormat::Format_Jpeg ? "jpegdec" : "identity");
- gstCamera.setStateSync(GST_STATE_NULL);
- gstDecode.setStateSync(GST_STATE_NULL);
-
gstCamera.unlink(gstCapsFilter);
gstCapsFilter.unlink(gstDecode);
gstDecode.unlink(gstVideoConvert);
@@ -126,6 +123,9 @@ void QGstreamerCamera::setCamera(const QCameraDevice &camera)
gstCameraBin.remove(gstCamera);
gstCameraBin.remove(gstDecode);
+ gstCamera.setStateSync(GST_STATE_NULL);
+ gstDecode.setStateSync(GST_STATE_NULL);
+
gstCapsFilter.set("caps", caps);
gstCameraBin.add(gstNewCamera, gstNewDecode);
@@ -176,8 +176,8 @@ bool QGstreamerCamera::setCameraFormat(const QCameraFormat &format)
qWarning() << "linking filtered camera to decoder failed" << gstCamera.name() << caps.toString();
});
- gstDecode.setStateSync(GST_STATE_NULL);
gstCameraBin.remove(gstDecode);
+ gstDecode.setStateSync(GST_STATE_NULL);
gstDecode = newGstDecode;