From 4bdced5d937ae121ea5157558ba29434c54165f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=85hgren?= Date: Tue, 27 Jun 2017 16:00:38 +0200 Subject: [PATCH] Corrected the initialization of the AEC3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This CL corrects the initialization of the AEC3, as well as for the other submodules in the whole audio processing module in the sense that it properly update the submodule states also for the case when reinitialization is trigger from the render side of the audio processing module. Bug: chromium:736889,webrtc:7879 Change-Id: I423e963835d0c3227caa8e186b29031bcb912515 Reviewed-on: https://chromium-review.googlesource.com/549315 Commit-Queue: Per Ã…hgren Reviewed-by: Ivo Creusen Cr-Commit-Position: refs/heads/master@{#18784} --- resources/audio_processing/output_data_fixed.pb.sha1 | 2 +- resources/audio_processing/output_data_float.pb.sha1 | 2 +- resources/audio_processing/output_data_mac.pb.sha1 | 2 +- webrtc/modules/audio_processing/audio_processing_impl.cc | 4 ++++ .../audio_processing/audio_processing_impl_unittest.cc | 3 +-- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/resources/audio_processing/output_data_fixed.pb.sha1 b/resources/audio_processing/output_data_fixed.pb.sha1 index a790bb5da0..db3cbf4303 100644 --- a/resources/audio_processing/output_data_fixed.pb.sha1 +++ b/resources/audio_processing/output_data_fixed.pb.sha1 @@ -1 +1 @@ -31f83357d6f5a78c7eb828c8073ce35f7cd2b1fa \ No newline at end of file +19e4b68ee2fecd4652fde54d43b6331ef90f3ef1 \ No newline at end of file diff --git a/resources/audio_processing/output_data_float.pb.sha1 b/resources/audio_processing/output_data_float.pb.sha1 index dd2e4d33e4..e86cb376ce 100644 --- a/resources/audio_processing/output_data_float.pb.sha1 +++ b/resources/audio_processing/output_data_float.pb.sha1 @@ -1 +1 @@ -c2907879eee3f1abeeb1fe2e29dd25bdb4ef5961 \ No newline at end of file +64802f0a924f23b86a91d8d9d181bffe3f02c308 \ No newline at end of file diff --git a/resources/audio_processing/output_data_mac.pb.sha1 b/resources/audio_processing/output_data_mac.pb.sha1 index f2efccd300..cf4a89657d 100644 --- a/resources/audio_processing/output_data_mac.pb.sha1 +++ b/resources/audio_processing/output_data_mac.pb.sha1 @@ -1 +1 @@ -eb0db8379eb703a49cd08d6c5c53a15a6cfc6b9f \ No newline at end of file +98249662a7ba79579a199a8b9ef9f6fc26ff33aa \ No newline at end of file diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc index 9ece91fa9b..f3c55576cb 100644 --- a/webrtc/modules/audio_processing/audio_processing_impl.cc +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc @@ -470,6 +470,8 @@ int AudioProcessingImpl::MaybeInitialize( } int AudioProcessingImpl::InitializeLocked() { + UpdateActiveSubmoduleStates(); + const int capture_audiobuffer_num_channels = capture_nonlocked_.beamformer_enabled ? formats_.api_format.input_stream().num_channels() @@ -565,6 +567,8 @@ int AudioProcessingImpl::InitializeLocked() { } int AudioProcessingImpl::InitializeLocked(const ProcessingConfig& config) { + UpdateActiveSubmoduleStates(); + for (const auto& stream : config.streams) { if (stream.num_channels() > 0 && stream.sample_rate_hz() <= 0) { return kBadSampleRateError; diff --git a/webrtc/modules/audio_processing/audio_processing_impl_unittest.cc b/webrtc/modules/audio_processing/audio_processing_impl_unittest.cc index a68da2f50f..ca6b7f6ff8 100644 --- a/webrtc/modules/audio_processing/audio_processing_impl_unittest.cc +++ b/webrtc/modules/audio_processing/audio_processing_impl_unittest.cc @@ -45,8 +45,7 @@ TEST(AudioProcessingImplTest, AudioParameterChangeTriggersInit) { // Call with the default parameters; there should be an init. frame.num_channels_ = 1; SetFrameSampleRate(&frame, 16000); - EXPECT_CALL(mock, InitializeLocked()) - .Times(1); + EXPECT_CALL(mock, InitializeLocked()).Times(0); EXPECT_NOERR(mock.ProcessStream(&frame)); EXPECT_NOERR(mock.ProcessReverseStream(&frame));