diff --git a/modules/audio_device/win/core_audio_input_win.cc b/modules/audio_device/win/core_audio_input_win.cc index 8405e6d61e..91a1d1646e 100644 --- a/modules/audio_device/win/core_audio_input_win.cc +++ b/modules/audio_device/win/core_audio_input_win.cc @@ -160,7 +160,9 @@ int CoreAudioInput::StartRecording() { } fine_audio_buffer_->ResetRecord(); - audio_device_buffer_->StartRecording(); + if (!IsRestarting()) { + audio_device_buffer_->StartRecording(); + } if (!Start()) { return -1; @@ -190,8 +192,10 @@ int CoreAudioInput::StopRecording() { return -1; } - RTC_DCHECK(audio_device_buffer_); - audio_device_buffer_->StopRecording(); + if (!IsRestarting()) { + RTC_DCHECK(audio_device_buffer_); + audio_device_buffer_->StopRecording(); + } // Release all allocated resources to allow for a restart without // intermediate destruction. diff --git a/modules/audio_device/win/core_audio_output_win.cc b/modules/audio_device/win/core_audio_output_win.cc index 6921805395..f3b01511ee 100644 --- a/modules/audio_device/win/core_audio_output_win.cc +++ b/modules/audio_device/win/core_audio_output_win.cc @@ -156,7 +156,9 @@ int CoreAudioOutput::StartPlayout() { } fine_audio_buffer_->ResetPlayout(); - audio_device_buffer_->StartPlayout(); + if (!IsRestarting()) { + audio_device_buffer_->StartPlayout(); + } if (!core_audio_utility::FillRenderEndpointBufferWithSilence( audio_client_.Get(), audio_render_client_.Get())) { @@ -193,8 +195,10 @@ int CoreAudioOutput::StopPlayout() { return -1; } - RTC_DCHECK(audio_device_buffer_); - audio_device_buffer_->StopPlayout(); + if (!IsRestarting()) { + RTC_DCHECK(audio_device_buffer_); + audio_device_buffer_->StopPlayout(); + } // Release all allocated resources to allow for a restart without // intermediate destruction.