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.