summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-10-06 12:15:17 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-10-11 13:18:36 +0000
commit68a6ec5d1dbb4e75edd0ffd4777191cc0602f43f (patch)
tree87a2e7e254bf689562e3c8ff0377ccd343238402
parentd0e8e2577bba9b507b272c28df9175f3c24e1d41 (diff)
downloadqtmultimedia-68a6ec5d1dbb4e75edd0ffd4777191cc0602f43f.tar.gz
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. Change-Id: Ie9da9fdd7e0aaae59564c19c20f001c54c150786 Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 3c215df0155189083cd8921f1c4fd9c3147c7c11) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-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;