From 33444dc835b0d2b64d1d2b3dd406ace1d1264230 Mon Sep 17 00:00:00 2001 From: Alessio Bazzica Date: Fri, 20 Apr 2018 13:16:55 +0200 Subject: [PATCH] APM pre-gain sub-module: code improvements. - No need to have a unique ptr for the swap queue - Remove default case from the switch in AudioProcessingImpl::HandleRuntimeSettings() Bug: webrtc:9138 Change-Id: I346ba1db6510b5caa637510298b67ead07197b81 Reviewed-on: https://webrtc-review.googlesource.com/71164 Reviewed-by: Henrik Lundin Commit-Queue: Alessio Bazzica Cr-Commit-Position: refs/heads/master@{#22958} --- .../audio_processing/audio_processing_impl.cc | 17 ++++++++--------- .../audio_processing/audio_processing_impl.h | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/modules/audio_processing/audio_processing_impl.cc b/modules/audio_processing/audio_processing_impl.cc index 0077c598ae..8d1cceeb02 100644 --- a/modules/audio_processing/audio_processing_impl.cc +++ b/modules/audio_processing/audio_processing_impl.cc @@ -384,8 +384,8 @@ AudioProcessingImpl::AudioProcessingImpl( NonlinearBeamformer* beamformer) : data_dumper_( new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))), - runtime_settings_(new SwapQueue(100)), - runtime_settings_enqueuer_(runtime_settings_.get()), + runtime_settings_(100), + runtime_settings_enqueuer_(&runtime_settings_), high_pass_filter_impl_(new HighPassFilterImpl(this)), echo_control_factory_(std::move(echo_control_factory)), submodule_states_(!!capture_post_processor, !!render_pre_processor), @@ -812,8 +812,8 @@ void AudioProcessingImpl::SetRuntimeSetting(RuntimeSetting setting) { AudioProcessingImpl::RuntimeSettingEnqueuer::RuntimeSettingEnqueuer( SwapQueue* runtime_settings) - : runtime_settings_(runtime_settings) { - RTC_DCHECK(runtime_settings_); + : runtime_settings_(*runtime_settings) { + RTC_DCHECK(runtime_settings); } AudioProcessingImpl::RuntimeSettingEnqueuer::~RuntimeSettingEnqueuer() = @@ -822,9 +822,9 @@ AudioProcessingImpl::RuntimeSettingEnqueuer::~RuntimeSettingEnqueuer() = void AudioProcessingImpl::RuntimeSettingEnqueuer::Enqueue( RuntimeSetting setting) { size_t remaining_attempts = 10; - while (!runtime_settings_->Insert(&setting) && remaining_attempts-- > 0) { + while (!runtime_settings_.Insert(&setting) && remaining_attempts-- > 0) { RuntimeSetting setting_to_discard; - if (runtime_settings_->Remove(&setting_to_discard)) + if (runtime_settings_.Remove(&setting_to_discard)) RTC_LOG(LS_ERROR) << "The runtime settings queue is full. Oldest setting discarded."; } @@ -915,8 +915,7 @@ int AudioProcessingImpl::ProcessStream(const float* const* src, void AudioProcessingImpl::HandleRuntimeSettings() { RuntimeSetting setting; - while (runtime_settings_->Remove(&setting)) { - RTC_DCHECK(setting.type() != RuntimeSetting::Type::kNotSpecified); + while (runtime_settings_.Remove(&setting)) { switch (setting.type()) { case RuntimeSetting::Type::kCapturePreGain: if (config_.pre_amplifier.enabled) { @@ -926,7 +925,7 @@ void AudioProcessingImpl::HandleRuntimeSettings() { } // TODO(bugs.chromium.org/9138): Log setting handling by Aec Dump. break; - default: + case RuntimeSetting::Type::kNotSpecified: RTC_NOTREACHED(); break; } diff --git a/modules/audio_processing/audio_processing_impl.h b/modules/audio_processing/audio_processing_impl.h index ff563b8226..a49924ddd9 100644 --- a/modules/audio_processing/audio_processing_impl.h +++ b/modules/audio_processing/audio_processing_impl.h @@ -149,7 +149,7 @@ class AudioProcessingImpl : public AudioProcessing { std::unique_ptr data_dumper_; static int instance_count_; - std::unique_ptr> runtime_settings_; + SwapQueue runtime_settings_; // Class providing thread-safe message pipe functionality for // |runtime_settings_|. @@ -161,7 +161,7 @@ class AudioProcessingImpl : public AudioProcessing { void Enqueue(RuntimeSetting setting); private: - SwapQueue* runtime_settings_; + SwapQueue& runtime_settings_; } runtime_settings_enqueuer_; // Submodule interface implementations.