summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@theqtcompany.com>2015-04-21 18:49:29 +0200
committerYoann Lopes <yoann.lopes@theqtcompany.com>2015-04-23 12:57:49 +0000
commitd910b6d63ff0ca74b5af004a83c437fa4db190c0 (patch)
treefde9a61b97a5558233f5de45c3c898989a1f9526
parent483da26351b6b62a73785b592673bce9577d1a88 (diff)
downloadqtmultimedia-d910b6d63ff0ca74b5af004a83c437fa4db190c0.tar.gz
AVFoundation: correctly detect the default audio capture device.
Use AVCaptureDevice::defaultDeviceWithMediaType instead of the first device in the list of available devices. Change-Id: I436921f99280a28d7158d345cd977a874cfb8968 Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com> Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
-rw-r--r--src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.h1
-rw-r--r--src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.mm9
2 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.h b/src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.h
index 28188e274..2f499f0ab 100644
--- a/src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.h
+++ b/src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.h
@@ -69,6 +69,7 @@ private:
QString m_activeInput;
bool m_dirty;
+ QString m_defaultDevice;
QStringList m_devices;
QMap<QString, QString> m_deviceDescriptions;
};
diff --git a/src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.mm b/src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.mm
index 4a2f068f5..51a4eb4e6 100644
--- a/src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.mm
+++ b/src/plugins/avfoundation/camera/avfaudioinputselectorcontrol.mm
@@ -60,8 +60,11 @@ AVFAudioInputSelectorControl::AVFAudioInputSelectorControl(AVFCameraService *ser
QString::fromUtf8([[device localizedName] UTF8String]));
}
- if (m_devices.size() > 0)
- m_activeInput = m_devices.first();
+ AVCaptureDevice *defaultDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
+ if (defaultDevice) {
+ m_defaultDevice = QString::fromUtf8([defaultDevice.uniqueID UTF8String]);
+ m_activeInput = m_defaultDevice;
+ }
}
AVFAudioInputSelectorControl::~AVFAudioInputSelectorControl()
@@ -80,7 +83,7 @@ QString AVFAudioInputSelectorControl::inputDescription(const QString &name) cons
QString AVFAudioInputSelectorControl::defaultInput() const
{
- return m_devices.size() > 0 ? m_devices.first() : QString();
+ return m_defaultDevice;
}
QString AVFAudioInputSelectorControl::activeInput() const