summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/darwin/camera/avfmediaencoder.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/darwin/camera/avfmediaencoder.mm')
-rw-r--r--src/multimedia/platform/darwin/camera/avfmediaencoder.mm10
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,