Index: media/audio/win/audio_manager_win.cc |
diff --git a/media/audio/win/audio_manager_win.cc b/media/audio/win/audio_manager_win.cc |
index 7ee2a769f169fe4545c3e3ca922852df50a12009..58d994898940aa55b116df729d291dc29608e8d4 100644 |
--- a/media/audio/win/audio_manager_win.cc |
+++ b/media/audio/win/audio_manager_win.cc |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -166,14 +166,12 @@ AudioInputStream* AudioManagerWin::MakeAudioInputStream( |
if (params.format == AudioParameters::AUDIO_MOCK) { |
return FakeAudioInputStream::MakeFakeStream(params); |
} else if (params.format == AudioParameters::AUDIO_PCM_LINEAR) { |
- return new PCMWaveInAudioInputStream(this, params, kNumInputBuffers, |
- AudioManagerBase::kDefaultDeviceId); |
+ return CreatePCMWaveInAudioInputStream(params, device_id); |
} else if (params.format == AudioParameters::AUDIO_PCM_LOW_LATENCY) { |
if (!media::IsWASAPISupported()) { |
// Fall back to Windows Wave implementation on Windows XP or lower. |
DLOG(INFO) << "Using WaveIn since WASAPI requires at least Vista."; |
- return new PCMWaveInAudioInputStream(this, params, kNumInputBuffers, |
- device_id); |
+ return CreatePCMWaveInAudioInputStream(params, device_id); |
} else { |
return new WASAPIAudioInputStream(this, params, device_id); |
} |
@@ -305,6 +303,24 @@ void AudioManagerWin::GetAudioInputDeviceNames( |
} |
} |
+AudioInputStream* AudioManagerWin::CreatePCMWaveInAudioInputStream( |
+ const AudioParameters& params, |
+ const std::string& device_id) { |
+ if (device_id != AudioManagerBase::kDefaultDeviceId && |
+ enumeration_type_ == kMMDeviceEnumeration) { |
+ std::string xp_device_id = ConvertToWinXPDeviceId(device_id); |
+ if (!xp_device_id.empty()) { |
+ return new PCMWaveInAudioInputStream(this, params, kNumInputBuffers, |
+ xp_device_id); |
+ } else { |
+ return NULL; |
no longer working on chromium
2012/03/05 09:58:39
It looks like an unexpected error to me, adding a
yzshen1
2012/03/13 21:09:23
Done.
|
+ } |
+ } |
+ |
+ return new PCMWaveInAudioInputStream(this, params, kNumInputBuffers, |
+ device_id); |
no longer working on chromium
2012/03/05 09:58:39
Just a personal preference, feel free to ignore if
yzshen1
2012/03/13 21:09:23
Done.
|
+} |
+ |
/// static |
AudioManager* CreateAudioManager() { |
return new AudioManagerWin(); |