diff options
Diffstat (limited to 'src/multimedia/platform/darwin/camera/avfmediaencoder.mm')
-rw-r--r-- | src/multimedia/platform/darwin/camera/avfmediaencoder.mm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/multimedia/platform/darwin/camera/avfmediaencoder.mm b/src/multimedia/platform/darwin/camera/avfmediaencoder.mm index 2e081108e..c02bdfe46 100644 --- a/src/multimedia/platform/darwin/camera/avfmediaencoder.mm +++ b/src/multimedia/platform/darwin/camera/avfmediaencoder.mm @@ -484,13 +484,21 @@ void AVFMediaEncoder::record(QMediaEncoderSettings &settings) if (QMediaRecorder::RecordingState == m_state) return; + AVFCamera *cameraControl = m_service->avfCameraControl(); + auto audioInput = m_service->audioInput(); + + if (!cameraControl && !audioInput) { + qWarning() << Q_FUNC_INFO << "Cannot record without any inputs"; + Q_EMIT error(QMediaRecorder::ResourceError, tr("No inputs specified")); + return; + } + m_service->session()->setActive(true); const bool audioOnly = settings.videoCodec() == QMediaFormat::VideoCodec::Unspecified; AVCaptureSession *session = m_service->session()->captureSession(); float rotation = 0; if (!audioOnly) { - AVFCamera *cameraControl = m_service->avfCameraControl(); if (!cameraControl || !cameraControl->isActive()) { qDebugCamera() << Q_FUNC_INFO << "can not start record while camera is not active"; Q_EMIT error(QMediaRecorder::ResourceError, |