summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@gmail.com>2023-05-01 07:54:06 +1000
committerLorn Potter <lorn.potter@gmail.com>2023-05-23 04:54:17 +1000
commitda90f218005e9f2acae2bf8cce721b01c1a98598 (patch)
tree51a8792e3bb9b24086425d3abb15a0d450596e7c /src
parent64fd645a840db88b77e7ec6348e16b8bf06bdb78 (diff)
wasm: fix switching cameras
Pick-to: 6.5 Fixes: QTBUG-113263 Change-Id: If2a740b4224e6f618896f23ce28dc2b02aa2d6d1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/multimedia/wasm/mediacapture/qwasmmediacapturesession.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/plugins/multimedia/wasm/mediacapture/qwasmmediacapturesession.cpp b/src/plugins/multimedia/wasm/mediacapture/qwasmmediacapturesession.cpp
index 926952e67..975c0182d 100644
--- a/src/plugins/multimedia/wasm/mediacapture/qwasmmediacapturesession.cpp
+++ b/src/plugins/multimedia/wasm/mediacapture/qwasmmediacapturesession.cpp
@@ -25,14 +25,18 @@ QPlatformCamera *QWasmMediaCaptureSession::camera()
void QWasmMediaCaptureSession::setCamera(QPlatformCamera *camera)
{
- if (!camera)
- return;
- QWasmCamera *wasmCamera = static_cast<QWasmCamera *>(camera);
- if (!wasmCamera || m_camera.data() == wasmCamera)
- return;
- m_camera.reset(wasmCamera);
+ if (!camera) {
+ if (m_camera == nullptr)
+ return;
+ m_camera.reset(nullptr);
+ } else {
+ QWasmCamera *wasmCamera = static_cast<QWasmCamera *>(camera);
+ if (m_camera.data() == wasmCamera)
+ return;
+ m_camera.reset(wasmCamera);
+ m_camera->setCaptureSession(this);
+ }
emit cameraChanged();
- m_camera->setCaptureSession(this);
}
QPlatformImageCapture *QWasmMediaCaptureSession::imageCapture()