From 5c8f9a292c2b3352373c7c9833519e06fc4bff0a Mon Sep 17 00:00:00 2001
From: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Date: Thu, 21 Jun 2018 10:28:35 +0200
Subject: [PATCH] AVFoundation: Fix crash when no video capture device

No need to configure anything if there is no video capture device.

Task-number: QTBUG-65740
Change-Id: I8de7dced14b00ab3eba560f395d7e1a4a5de1682
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
---
 src/plugins/avfoundation/camera/avfimagecapturecontrol.mm  | 3 ++-
 src/plugins/avfoundation/camera/avfmediarecordercontrol.mm | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/plugins/avfoundation/camera/avfimagecapturecontrol.mm b/src/plugins/avfoundation/camera/avfimagecapturecontrol.mm
index bad1b362b..dbaf3ed41 100644
--- a/src/plugins/avfoundation/camera/avfimagecapturecontrol.mm
+++ b/src/plugins/avfoundation/camera/avfimagecapturecontrol.mm
@@ -226,7 +226,8 @@ void AVFImageCaptureControl::cancelCapture()
 
 void AVFImageCaptureControl::updateCaptureConnection()
 {
-    if (m_cameraControl->captureMode().testFlag(QCamera::CaptureStillImage)) {
+    if (m_session->videoCaptureDevice()
+        && m_cameraControl->captureMode().testFlag(QCamera::CaptureStillImage)) {
         qDebugCamera() << Q_FUNC_INFO;
         AVCaptureSession *captureSession = m_session->captureSession();
 
diff --git a/src/plugins/avfoundation/camera/avfmediarecordercontrol.mm b/src/plugins/avfoundation/camera/avfmediarecordercontrol.mm
index 02261027d..546eabf89 100644
--- a/src/plugins/avfoundation/camera/avfmediarecordercontrol.mm
+++ b/src/plugins/avfoundation/camera/avfmediarecordercontrol.mm
@@ -364,6 +364,9 @@ void AVFMediaRecorderControl::handleRecordingFailed(const QString &message)
 
 void AVFMediaRecorderControl::setupSessionForCapture()
 {
+    if (!m_session->videoCaptureDevice())
+        return;
+
     //adding movie output causes high CPU usage even when while recording is not active,
     //connect it only while video capture mode is enabled.
     // Similarly, connect the Audio input only in that mode, since it's only necessary
-- 
GitLab