| Index: media/audio/mac/audio_low_latency_input_mac.cc
|
| diff --git a/media/audio/mac/audio_low_latency_input_mac.cc b/media/audio/mac/audio_low_latency_input_mac.cc
|
| index 34dbf745606e7fd859b0ffc9fda527b79bab26f4..00236fa9722f66afde6b4a6ca2d7f3525446ad6a 100644
|
| --- a/media/audio/mac/audio_low_latency_input_mac.cc
|
| +++ b/media/audio/mac/audio_low_latency_input_mac.cc
|
| @@ -29,11 +29,12 @@ static std::ostream& operator<<(std::ostream& os,
|
| // for more details and background regarding this implementation.
|
|
|
| AUAudioInputStream::AUAudioInputStream(
|
| - AudioManagerMac* manager, const AudioParameters& params)
|
| + AudioManagerMac* manager, const AudioParameters& params,
|
| + AudioDeviceID audio_device_id)
|
| : manager_(manager),
|
| sink_(NULL),
|
| audio_unit_(0),
|
| - input_device_id_(kAudioObjectUnknown),
|
| + input_device_id_(audio_device_id),
|
| started_(false),
|
| hardware_latency_frames_(0) {
|
| DCHECK(manager_);
|
| @@ -81,6 +82,10 @@ bool AUAudioInputStream::Open() {
|
| if (audio_unit_)
|
| return false;
|
|
|
| + // Verify that we have a valid device.
|
| + if (input_device_id_ == kAudioObjectUnknown)
|
| + return false;
|
| +
|
| // Start by obtaining an AudioOuputUnit using an AUHAL component description.
|
|
|
| Component comp;
|
| @@ -137,29 +142,6 @@ bool AUAudioInputStream::Open() {
|
| return false;
|
| }
|
|
|
| - // Set the current device of the AudioOuputUnit to default input device.
|
| -
|
| - // First, obtain the current input device selected by the user.
|
| - AudioObjectPropertyAddress default_intput_device_address = {
|
| - kAudioHardwarePropertyDefaultInputDevice,
|
| - kAudioObjectPropertyScopeGlobal,
|
| - kAudioObjectPropertyElementMaster
|
| - };
|
| - AudioDeviceID input_device = kAudioObjectUnknown;
|
| - UInt32 size = sizeof(input_device);
|
| - result = AudioObjectGetPropertyData(kAudioObjectSystemObject,
|
| - &default_intput_device_address,
|
| - 0,
|
| - 0,
|
| - &size,
|
| - &input_device);
|
| - if (result) {
|
| - HandleError(result);
|
| - return false;
|
| - }
|
| -
|
| - input_device_id_ = input_device;
|
| -
|
| // Next, set the audio device to be the Audio Unit's current device.
|
| // Note that, devices can only be set to the AUHAL after enabling IO.
|
| result = AudioUnitSetProperty(audio_unit_,
|
| @@ -167,7 +149,7 @@ bool AUAudioInputStream::Open() {
|
| kAudioUnitScope_Global,
|
| 0,
|
| &input_device_id_,
|
| - sizeof(input_device));
|
| + sizeof(input_device_id_));
|
| if (result) {
|
| HandleError(result);
|
| return false;
|
|
|