diff options
Diffstat (limited to 'src/multimedia/platform/darwin/camera')
-rw-r--r-- | src/multimedia/platform/darwin/camera/avfcameradebug_p.h | 2 | ||||
-rw-r--r-- | src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm | 17 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/multimedia/platform/darwin/camera/avfcameradebug_p.h b/src/multimedia/platform/darwin/camera/avfcameradebug_p.h index 616e53d99..cbb64b316 100644 --- a/src/multimedia/platform/darwin/camera/avfcameradebug_p.h +++ b/src/multimedia/platform/darwin/camera/avfcameradebug_p.h @@ -57,7 +57,7 @@ QT_USE_NAMESPACE -//#define AVF_DEBUG_CAMERA +#define AVF_DEBUG_CAMERA #ifdef AVF_DEBUG_CAMERA #define qDebugCamera qDebug diff --git a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm index 721f2c1fa..69c56d402 100644 --- a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm +++ b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm @@ -48,6 +48,7 @@ #include "avfcamerautility_p.h" #include <QtCore/qurl.h> +#include <QtCore/qmimetype.h> #include <QtCore/qfileinfo.h> #include <QtMultimedia/qcameracontrol.h> #include <CoreAudio/CoreAudio.h> @@ -469,9 +470,13 @@ void AVFMediaRecorderControl::applySettings() return; } - bool videoEnabled = m_cameraControl->captureMode().testFlag(QCamera::CaptureVideo); QMediaEncoderSettings resolved = m_settings; - resolved.resolveFormat(videoEnabled ? QMediaEncoderSettings::AudioAndVideo : QMediaEncoderSettings::AudioOnly); + resolved.resolveFormat(); + qDebug() << "file profile" << QMediaFormat::fileFormatName(resolved.format()); + qDebug() << "video profile" << QMediaFormat::videoCodecName(resolved.videoCodec()); + qDebug() << "audio profile" << QMediaFormat::audioCodecName(resolved.audioCodec()); + + const AVFConfigurationLock lock(m_session->videoCaptureDevice()); // prevents activeFormat from being overridden // Configure audio settings [m_movieOutput setOutputSettings:avfAudioSettings(resolved) @@ -483,8 +488,6 @@ void AVFMediaRecorderControl::applySettings() NSDictionary *videoSettings = avfVideoSettings(resolved, captureDevice, videoConnection); - const AVFConfigurationLock lock(m_session->videoCaptureDevice()); // prevents activeFormat from being overridden - [m_movieOutput setOutputSettings:videoSettings forConnection:videoConnection]; } @@ -540,7 +543,9 @@ void AVFMediaRecorderControl::setState(QMediaRecorder::State state) QString outputLocationPath = m_outputLocation.scheme() == QLatin1String("file") ? m_outputLocation.path() : m_outputLocation.toString(); - QString extension = "mov";// ######m_service->mediaContainerControl()->containerFormat(); + QMediaEncoderSettings resolved = m_settings; + resolved.resolveFormat(); + QString extension = resolved.mimeType().preferredSuffix(); QUrl actualLocation = QUrl::fromLocalFile( m_storageLocation.generateFileName(outputLocationPath, @@ -550,7 +555,7 @@ void AVFMediaRecorderControl::setState(QMediaRecorder::State state) qDebugCamera() << "Video capture location:" << actualLocation.toString(); - applySettings(); +// applySettings(); [m_movieOutput startRecordingToOutputFileURL:actualLocation.toNSURL() recordingDelegate:m_recorderDelagate]; |