commit | 41ed7e1715e91818cb70727f9169a24984b070ed | [log] [tgz] |
---|---|---|
author | henrika <henrika@webrtc.org> | Tue Jun 21 09:41:07 2016 |
committer | henrika <henrika@webrtc.org> | Tue Jun 21 09:41:15 2016 |
tree | ba0ac1cd1f60f22cdd5d624e8548e409ef6b58e0 | |
parent | 86eff72eecb16ddff3004a5b3a4c31375f8d597f [diff] |
Avoid race when stopping audio unit on iOS BUG=webrtc:5993 R=tkchin@webrtc.org Review URL: https://codereview.webrtc.org/2079383002 . Cr-Commit-Position: refs/heads/master@{#13234}
diff --git a/webrtc/modules/audio_device/ios/audio_device_ios.mm b/webrtc/modules/audio_device/ios/audio_device_ios.mm index 4c1b41d..0a8da0f 100644 --- a/webrtc/modules/audio_device/ios/audio_device_ios.mm +++ b/webrtc/modules/audio_device/ios/audio_device_ios.mm
@@ -829,6 +829,9 @@ void AudioDeviceIOS::ShutdownPlayOrRecord() { LOGI() << "ShutdownPlayOrRecord"; + // Stop the audio unit to prevent any additional audio callbacks. + audio_unit_->Stop(); + // Close and delete the voice-processing I/O unit. audio_unit_.reset();
diff --git a/webrtc/modules/audio_device/ios/voice_processing_audio_unit.mm b/webrtc/modules/audio_device/ios/voice_processing_audio_unit.mm index a9d599a..d8805a1 100644 --- a/webrtc/modules/audio_device/ios/voice_processing_audio_unit.mm +++ b/webrtc/modules/audio_device/ios/voice_processing_audio_unit.mm
@@ -380,6 +380,7 @@ break; } + RTCLog(@"Disposing audio unit."); OSStatus result = AudioComponentInstanceDispose(vpio_unit_); if (result != noErr) { RTCLogError(@"AudioComponentInstanceDispose failed. Error=%ld.",