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:
committed by
Commit Bot
parent
a16ac58a5e
commit
33444dc835
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user