Chromium Code Reviews| Index: media/audio/mac/audio_manager_mac.cc |
| diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc |
| index 79ebe609ea9f4daba77e89c0dcc4354e5bb3c0e5..c24e9a50d45c5e61d38881f07a63124304a63e9b 100644 |
| --- a/media/audio/mac/audio_manager_mac.cc |
| +++ b/media/audio/mac/audio_manager_mac.cc |
| @@ -566,8 +566,9 @@ AudioOutputStream* AudioManagerMac::MakeLowLatencyOutputStream( |
| // Lazily create the audio device listener on the first stream creation. |
| if (!output_device_listener_) { |
| - output_device_listener_.reset(new AudioDeviceListenerMac(base::Bind( |
| - &AudioManagerMac::HandleDeviceChanges, base::Unretained(this)))); |
| + output_device_listener_.reset( |
|
wolenetz
2014/03/06 16:01:42
nit: add comment about why BTCL is required here v
DaleCurtis
2014/03/06 19:27:37
Done.
|
| + new AudioDeviceListenerMac(BindToCurrentLoop(base::Bind( |
|
wolenetz
2014/03/06 16:01:42
I'm not too familiar with audio pipeline. Is it po
DaleCurtis
2014/03/06 19:27:37
No, in most cases AM shutdown blocks on the audio
|
| + &AudioManagerMac::HandleDeviceChanges, base::Unretained(this))))); |
| // Only set the current output device for the default device. |
| if (device_id == AudioManagerBase::kDefaultDeviceId || device_id.empty()) |
| current_output_device_ = device; |
| @@ -698,13 +699,8 @@ void AudioManagerMac::ShutdownOnAudioThread() { |
| } |
| void AudioManagerMac::HandleDeviceChanges() { |
| - if (!GetTaskRunner()->BelongsToCurrentThread()) { |
| - GetTaskRunner()->PostTask(FROM_HERE, base::Bind( |
| - &AudioManagerMac::HandleDeviceChanges, base::Unretained(this))); |
| - return; |
| - } |
| - |
| - int new_sample_rate = HardwareSampleRate(); |
| + DCHECK(GetTaskRunner()->BelongsToCurrentThread()); |
| + const int new_sample_rate = HardwareSampleRate(); |
| AudioDeviceID new_output_device; |
| GetDefaultOutputDevice(&new_output_device); |