summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-11-01 15:06:50 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-11-01 17:48:21 +0000
commitd37cfb7df83add1b1e619e61bd5dfd1ae85eebc0 (patch)
treeb348fb388c8577608bf47adb02b87dc7c2dbb692
parent2635fcdc8ca0c5ebdf34fd5ce67a6cf255933bb0 (diff)
downloadqtmultimedia-d37cfb7df83add1b1e619e61bd5dfd1ae85eebc0.tar.gz
Camera example: Don't crash is the system doesn't have a camera
Don't assume the list of camera formats is non empty. Change-Id: Id64772b8db165357d350456df9174a6659f7c8d8 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 315dff497c78526888121c7f84e0074208261129) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--examples/multimediawidgets/camera/camera.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp
index 3ddb78597..e87ef47f1 100644
--- a/examples/multimediawidgets/camera/camera.cpp
+++ b/examples/multimediawidgets/camera/camera.cpp
@@ -136,18 +136,20 @@ void Camera::setCamera(const QCameraDevice &cameraDevice)
// Setting default settings.
// The biggest resolution and the max framerate
auto formats = cameraDevice.videoFormats();
- auto defaultFormat = formats.first();
+ if (!formats.isEmpty()) {
+ auto defaultFormat = formats.first();
- for (const auto &format : formats) {
+ for (const auto &format : formats) {
- bool isFormatBigger = format.resolution().width() > defaultFormat.resolution().width()
- && format.resolution().height() > defaultFormat.resolution().height();
+ bool isFormatBigger = format.resolution().width() > defaultFormat.resolution().width()
+ && format.resolution().height() > defaultFormat.resolution().height();
- defaultFormat = isFormatBigger ? format : defaultFormat;
- }
+ defaultFormat = isFormatBigger ? format : defaultFormat;
+ }
- m_camera->setCameraFormat(defaultFormat);
- m_mediaRecorder->setVideoFrameRate(defaultFormat.maxFrameRate());
+ m_camera->setCameraFormat(defaultFormat);
+ m_mediaRecorder->setVideoFrameRate(defaultFormat.maxFrameRate());
+ }
}
m_camera->start();