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); |