Chromium Code Reviews| Index: media/audio/audio_util.cc |
| =================================================================== |
| --- media/audio/audio_util.cc (revision 105774) |
| +++ media/audio/audio_util.cc (working copy) |
| @@ -14,10 +14,17 @@ |
| #include "base/basictypes.h" |
| #include "base/logging.h" |
| #include "base/shared_memory.h" |
| +#if defined(OS_WIN) |
| +#include "base/win/windows_version.h" |
| +#endif |
| #include "media/audio/audio_util.h" |
| #if defined(OS_MACOSX) |
| +#include "media/audio/mac/audio_low_latency_input_mac.h" |
| #include "media/audio/mac/audio_low_latency_output_mac.h" |
| #endif |
| +#if defined(OS_WIN) |
| +#include "media/audio/win/audio_low_latency_input_win.h" |
| +#endif |
| using base::subtle::Atomic32; |
| @@ -230,8 +237,7 @@ |
| } |
| } |
| -double GetAudioHardwareSampleRate() |
| -{ |
| +double GetAudioHardwareSampleRate() { |
| #if defined(OS_MACOSX) |
| // Hardware sample-rate on the Mac can be configured, so we must query. |
| return AUAudioOutputStream::HardwareSampleRate(); |
| @@ -242,6 +248,28 @@ |
| #endif |
| } |
| +double GetAudioInputHardwareSampleRate() { |
| +#if defined(OS_MACOSX) |
| + // Hardware sample-rate on the Mac can be configured, so we must query. |
| + return AUAudioInputStream::HardwareSampleRate(); |
| +#elif defined(OS_WIN) |
| + if (base::win::GetVersion() <= base::win::VERSION_XP) { |
| + // Fall back to Windows Wave implementation on Windows XP or lower |
| + // and use 48kHz as default input sample rate. |
| + return 48000.0; |
| + } else { |
| + // Hardware sample-rate on Windows can be configured, so we must query. |
| + // TODO(henrika): improve possibility to specify audio endpoint. |
| + // Use the default device (same as for Wave) for now to be compatible. |
| + return WASAPIAudioInputStream::HardwareSampleRate(eConsole); |
| + } |
| +#else |
| + // Hardware for Linux is nearly always 48KHz. |
| + // TODO(henrika) : return correct value in rare non-48KHz cases. |
|
scherkus (not reviewing)
2011/10/18 21:12:30
nit: remove space between ) and :
henrika (OOO until Aug 14)
2011/10/19 15:42:43
Done.
|
| + return 48000.0; |
| +#endif |
| +} |
| + |
| size_t GetAudioHardwareBufferSize() { |
| // The sizes here were determined by experimentation and are roughly |
| // the lowest value (for low latency) that still allowed glitch-free |