Chromium Code Reviews| Index: content/renderer/media/media_stream_audio_processor.cc |
| diff --git a/content/renderer/media/media_stream_audio_processor.cc b/content/renderer/media/media_stream_audio_processor.cc |
| index 46d742807bd5c20e4b6fba0bb13223cea158244d..631b0934bd0cb309759c6590bca7515244d13bfe 100644 |
| --- a/content/renderer/media/media_stream_audio_processor.cc |
| +++ b/content/renderer/media/media_stream_audio_processor.cc |
| @@ -486,6 +486,24 @@ void MediaStreamAudioProcessor::OnDisableAecDump() { |
| StopEchoCancellationDump(audio_processing_.get()); |
| } |
| +void MediaStreamAudioProcessor::OnAec3Enable(bool enable) { |
| + DCHECK(main_thread_runner_->BelongsToCurrentThread()); |
| + if (override_aec3_ == base::Optional<bool>(enable)) |
| + return; |
| + |
| + override_aec3_ = base::Optional<bool>(enable); |
| + if (has_echo_cancellation_) |
|
Henrik Grunell
2017/04/10 12:33:47
I suppose it should be !has_echo_cancellation_
hlundin-chromium
2017/04/10 13:03:17
Holy cow! I'm sloppy today... Good thing you are o
|
| + return; |
| + |
| + auto apm_config = audio_processing_->GetConfig(); |
| + if (apm_config.echo_canceller3.enabled != enable) { |
|
Henrik Grunell
2017/04/10 12:33:47
Here too.
if (apm_config.echo_canceller3.enabled
hlundin-chromium
2017/04/10 13:03:17
Done.
|
| + apm_config.echo_canceller3.enabled = enable; |
| + audio_processing_->ApplyConfig(apm_config); |
| + DCHECK(echo_information_); |
| + echo_information_.reset(new EchoInformation()); |
| + } |
| +} |
| + |
| void MediaStreamAudioProcessor::OnIpcClosing() { |
| DCHECK(main_thread_runner_->BelongsToCurrentThread()); |
| aec_dump_message_filter_ = NULL; |
| @@ -596,6 +614,7 @@ void MediaStreamAudioProcessor::InitializeAudioProcessingModule( |
| const bool echo_cancellation = |
| audio_constraints.GetEchoCancellationProperty(); |
| + has_echo_cancellation_ = echo_cancellation; |
| const bool goog_agc = audio_constraints.GetGoogAutoGainControl(); |
| #if defined(OS_ANDROID) |
| @@ -680,7 +699,9 @@ void MediaStreamAudioProcessor::InitializeAudioProcessingModule( |
| echo_information_.reset(new EchoInformation()); |
| apm_config.echo_canceller3.enabled = |
| - base::FeatureList::IsEnabled(features::kWebRtcUseEchoCanceller3); |
| + override_aec3_ |
| + ? *override_aec3_ |
| + : base::FeatureList::IsEnabled(features::kWebRtcUseEchoCanceller3); |
| } else { |
| apm_config.echo_canceller3.enabled = false; |
| } |