diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-11-01 15:06:50 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-11-01 17:48:21 +0000 |
commit | d37cfb7df83add1b1e619e61bd5dfd1ae85eebc0 (patch) | |
tree | b348fb388c8577608bf47adb02b87dc7c2dbb692 | |
parent | 2635fcdc8ca0c5ebdf34fd5ce67a6cf255933bb0 (diff) | |
download | qtmultimedia-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.cpp | 18 |
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(); |