diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-10-06 12:15:17 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-10-11 11:49:01 +0200 |
commit | 3c215df0155189083cd8921f1c4fd9c3147c7c11 (patch) | |
tree | 6c9df3e104c06c8452129ea1c69f457fc00b97b1 | |
parent | e89aa13f27c09105148fcc725f619eb85bdb6bb4 (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.cpp | 8 |
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; |