summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-01-17 09:24:50 +0100
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-03-25 14:39:13 +0000
commitc296df781d9fa445bb4b1fcbb6f340e0d1db0c3a (patch)
tree771a30414f2ea876335b768f4530cb1cf4fa12e8
parent226f802fb04de6b135a0214674ce77643ba479c4 (diff)
downloadqtmultimedia-c296df781d9fa445bb4b1fcbb6f340e0d1db0c3a.tar.gz
Fix QCameraInfo to be invalid if camera failed to find device
Since QCameraInfo uses deviceControl and infoControl to get info about camera, it needs to clear these controls if the camera failed to find a device by name. Change-Id: I1404f70234f978fa4568b6c883a5676f61e08145 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 42932e1a9dfd6699763b336f552e46f9b1ff30c9)
-rw-r--r--src/multimedia/camera/qcamera.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp
index c7d64155c..bd3f30739 100644
--- a/src/multimedia/camera/qcamera.cpp
+++ b/src/multimedia/camera/qcamera.cpp
@@ -362,9 +362,17 @@ QCamera::QCamera(const QByteArray& deviceName, QObject *parent):
// The camera should not be used if device with requested name does not exist.
if (!found) {
- if (d->service && d->control)
- d->service->releaseControl(d->control);
+ if (d->service) {
+ if (d->control)
+ d->service->releaseControl(d->control);
+ if (d->deviceControl)
+ d->service->releaseControl(d->deviceControl);
+ if (d->infoControl)
+ d->service->releaseControl(d->infoControl);
+ }
d->control = nullptr;
+ d->deviceControl = nullptr;
+ d->infoControl = nullptr;
d->error = QCamera::ServiceMissingError;
d->errorString = QCamera::tr("The camera service is missing");
}