| Index: media/audio/win/audio_low_latency_output_win.cc
|
| diff --git a/media/audio/win/audio_low_latency_output_win.cc b/media/audio/win/audio_low_latency_output_win.cc
|
| index b2098b02094c4864ba7f3f9d6fded9fe28bd253f..f2214707762f0fb0286f645e67decf9ad93f4bca 100644
|
| --- a/media/audio/win/audio_low_latency_output_win.cc
|
| +++ b/media/audio/win/audio_low_latency_output_win.cc
|
| @@ -111,11 +111,22 @@ ChannelLayout WASAPIAudioOutputStream::HardwareChannelLayout() {
|
| }
|
|
|
| // static
|
| -int WASAPIAudioOutputStream::HardwareSampleRate() {
|
| +int WASAPIAudioOutputStream::HardwareSampleRate(const std::string& device_id) {
|
| WAVEFORMATPCMEX format;
|
| - return SUCCEEDED(CoreAudioUtil::GetDefaultSharedModeMixFormat(
|
| - eRender, eConsole, &format)) ?
|
| - static_cast<int>(format.Format.nSamplesPerSec) : 0;
|
| + ScopedComPtr<IAudioClient> client;
|
| + if (device_id.empty()) {
|
| + client = CoreAudioUtil::CreateDefaultClient(eRender, eConsole);
|
| + } else {
|
| + ScopedComPtr<IMMDevice> device(CoreAudioUtil::CreateDevice(device_id));
|
| + if (!device)
|
| + return 0;
|
| + client = CoreAudioUtil::CreateClient(device);
|
| + }
|
| +
|
| + if (!client || FAILED(CoreAudioUtil::GetSharedModeMixFormat(client, &format)))
|
| + return 0;
|
| +
|
| + return static_cast<int>(format.Format.nSamplesPerSec);
|
| }
|
|
|
| WASAPIAudioOutputStream::WASAPIAudioOutputStream(AudioManagerWin* manager,
|
|
|