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 <henrik.lundin@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22958}
This commit is contained in:
Alessio Bazzica
2018-04-20 13:16:55 +02:00
committed by Commit Bot
parent a16ac58a5e
commit 33444dc835
2 changed files with 10 additions and 11 deletions

View File

@ -384,8 +384,8 @@ AudioProcessingImpl::AudioProcessingImpl(
NonlinearBeamformer* beamformer) NonlinearBeamformer* beamformer)
: data_dumper_( : data_dumper_(
new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))), new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))),
runtime_settings_(new SwapQueue<RuntimeSetting>(100)), runtime_settings_(100),
runtime_settings_enqueuer_(runtime_settings_.get()), runtime_settings_enqueuer_(&runtime_settings_),
high_pass_filter_impl_(new HighPassFilterImpl(this)), high_pass_filter_impl_(new HighPassFilterImpl(this)),
echo_control_factory_(std::move(echo_control_factory)), echo_control_factory_(std::move(echo_control_factory)),
submodule_states_(!!capture_post_processor, !!render_pre_processor), submodule_states_(!!capture_post_processor, !!render_pre_processor),
@ -812,8 +812,8 @@ void AudioProcessingImpl::SetRuntimeSetting(RuntimeSetting setting) {
AudioProcessingImpl::RuntimeSettingEnqueuer::RuntimeSettingEnqueuer( AudioProcessingImpl::RuntimeSettingEnqueuer::RuntimeSettingEnqueuer(
SwapQueue<RuntimeSetting>* runtime_settings) SwapQueue<RuntimeSetting>* runtime_settings)
: runtime_settings_(runtime_settings) { : runtime_settings_(*runtime_settings) {
RTC_DCHECK(runtime_settings_); RTC_DCHECK(runtime_settings);
} }
AudioProcessingImpl::RuntimeSettingEnqueuer::~RuntimeSettingEnqueuer() = AudioProcessingImpl::RuntimeSettingEnqueuer::~RuntimeSettingEnqueuer() =
@ -822,9 +822,9 @@ AudioProcessingImpl::RuntimeSettingEnqueuer::~RuntimeSettingEnqueuer() =
void AudioProcessingImpl::RuntimeSettingEnqueuer::Enqueue( void AudioProcessingImpl::RuntimeSettingEnqueuer::Enqueue(
RuntimeSetting setting) { RuntimeSetting setting) {
size_t remaining_attempts = 10; 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; RuntimeSetting setting_to_discard;
if (runtime_settings_->Remove(&setting_to_discard)) if (runtime_settings_.Remove(&setting_to_discard))
RTC_LOG(LS_ERROR) RTC_LOG(LS_ERROR)
<< "The runtime settings queue is full. Oldest setting discarded."; << "The runtime settings queue is full. Oldest setting discarded.";
} }
@ -915,8 +915,7 @@ int AudioProcessingImpl::ProcessStream(const float* const* src,
void AudioProcessingImpl::HandleRuntimeSettings() { void AudioProcessingImpl::HandleRuntimeSettings() {
RuntimeSetting setting; RuntimeSetting setting;
while (runtime_settings_->Remove(&setting)) { while (runtime_settings_.Remove(&setting)) {
RTC_DCHECK(setting.type() != RuntimeSetting::Type::kNotSpecified);
switch (setting.type()) { switch (setting.type()) {
case RuntimeSetting::Type::kCapturePreGain: case RuntimeSetting::Type::kCapturePreGain:
if (config_.pre_amplifier.enabled) { if (config_.pre_amplifier.enabled) {
@ -926,7 +925,7 @@ void AudioProcessingImpl::HandleRuntimeSettings() {
} }
// TODO(bugs.chromium.org/9138): Log setting handling by Aec Dump. // TODO(bugs.chromium.org/9138): Log setting handling by Aec Dump.
break; break;
default: case RuntimeSetting::Type::kNotSpecified:
RTC_NOTREACHED(); RTC_NOTREACHED();
break; break;
} }

View File

@ -149,7 +149,7 @@ class AudioProcessingImpl : public AudioProcessing {
std::unique_ptr<ApmDataDumper> data_dumper_; std::unique_ptr<ApmDataDumper> data_dumper_;
static int instance_count_; static int instance_count_;
std::unique_ptr<SwapQueue<RuntimeSetting>> runtime_settings_; SwapQueue<RuntimeSetting> runtime_settings_;
// Class providing thread-safe message pipe functionality for // Class providing thread-safe message pipe functionality for
// |runtime_settings_|. // |runtime_settings_|.
@ -161,7 +161,7 @@ class AudioProcessingImpl : public AudioProcessing {
void Enqueue(RuntimeSetting setting); void Enqueue(RuntimeSetting setting);
private: private:
SwapQueue<RuntimeSetting>* runtime_settings_; SwapQueue<RuntimeSetting>& runtime_settings_;
} runtime_settings_enqueuer_; } runtime_settings_enqueuer_;
// Submodule interface implementations. // Submodule interface implementations.