diff options
author | Doris Verria <doris.verria@qt.io> | 2021-05-10 23:12:08 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-05-12 07:33:04 +0000 |
commit | 3c80567d0e00b43992ce355509cca0d72749a84b (patch) | |
tree | a1c8bfad83c98712b4131bc6e073ba244ded38e7 | |
parent | 3e913c0814464bd9b09307d2e3d7c6763a1481b3 (diff) |
Support WAV format recordings on macOS
Apple supports recording to a wav file so we can add the WAV container
and audio codec to the list of supported encoding formats for macOS/iOS.
Change-Id: Ic161d8ef1184d2d6040da6c07995b51b821b7bf1
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/multimedia/platform/darwin/camera/avfmediaencoder.mm | 4 | ||||
-rw-r--r-- | src/multimedia/platform/darwin/qdarwinformatsinfo.mm | 6 | ||||
-rw-r--r-- | src/multimedia/qmediaformat.cpp | 2 |
3 files changed, 8 insertions, 4 deletions
diff --git a/src/multimedia/platform/darwin/camera/avfmediaencoder.mm b/src/multimedia/platform/darwin/camera/avfmediaencoder.mm index 88dfba449..263ffb068 100644 --- a/src/multimedia/platform/darwin/camera/avfmediaencoder.mm +++ b/src/multimedia/platform/darwin/camera/avfmediaencoder.mm @@ -163,8 +163,8 @@ static NSDictionary *avfAudioSettings(const QMediaEncoderSettings &encoderSettin [settings setObject:[NSNumber numberWithInt:codecId] forKey:AVFormatIDKey]; #ifdef Q_OS_MACOS - // Setting AVEncoderQualityKey is not allowed when format ID is 'alac' - if (codecId != kAudioFormatAppleLossless + // Setting AVEncoderQualityKey is not allowed when format ID is alac or lpcm + if (codecId != kAudioFormatAppleLossless && codecId != kAudioFormatLinearPCM && encoderSettings.encodingMode() == QMediaEncoderSettings::ConstantQualityEncoding) { int quality; switch (encoderSettings.quality()) { diff --git a/src/multimedia/platform/darwin/qdarwinformatsinfo.mm b/src/multimedia/platform/darwin/qdarwinformatsinfo.mm index 0aa976a24..1cbbee939 100644 --- a/src/multimedia/platform/darwin/qdarwinformatsinfo.mm +++ b/src/multimedia/platform/darwin/qdarwinformatsinfo.mm @@ -159,6 +159,9 @@ QDarwinFormatInfo::QDarwinFormatInfo() { QMediaFormat::Mpeg4Audio, { QMediaFormat::AudioCodec::AAC }, {} }, + { QMediaFormat::Wave, + { QMediaFormat::AudioCodec::Wave }, + {} }, }; // #endif @@ -177,7 +180,6 @@ int QDarwinFormatInfo::audioFormatForCodec(QMediaFormat::AudioCodec codec) case QMediaFormat::AudioCodec::Unspecified: case QMediaFormat::AudioCodec::DolbyTrueHD: case QMediaFormat::AudioCodec::Vorbis: - case QMediaFormat::AudioCodec::Wave: // Unsupported, shouldn't happen. Fall back to AAC case QMediaFormat::AudioCodec::AAC: codecId = kAudioFormatMPEG4AAC; @@ -200,6 +202,8 @@ int QDarwinFormatInfo::audioFormatForCodec(QMediaFormat::AudioCodec codec) case QMediaFormat::AudioCodec::Opus: codecId = kAudioFormatOpus; break; + case QMediaFormat::AudioCodec::Wave: + codecId = kAudioFormatLinearPCM; } return codecId; } diff --git a/src/multimedia/qmediaformat.cpp b/src/multimedia/qmediaformat.cpp index bcb246be9..4c239e78f 100644 --- a/src/multimedia/qmediaformat.cpp +++ b/src/multimedia/qmediaformat.cpp @@ -62,7 +62,7 @@ const char *mimeTypeForFormat[QMediaFormat::LastFileFormat + 2] = "audio/mpeg", "audio/mp4", "audio/alac", - "audio/wave", + "audio/wav", }; } |