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)
: data_dumper_(
new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))),
runtime_settings_(new SwapQueue<RuntimeSetting>(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<RuntimeSetting>* 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;
}

View File

@ -149,7 +149,7 @@ class AudioProcessingImpl : public AudioProcessing {
std::unique_ptr<ApmDataDumper> data_dumper_;
static int instance_count_;
std::unique_ptr<SwapQueue<RuntimeSetting>> runtime_settings_;
SwapQueue<RuntimeSetting> 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<RuntimeSetting>* runtime_settings_;
SwapQueue<RuntimeSetting>& runtime_settings_;
} runtime_settings_enqueuer_;
// Submodule interface implementations.