| Index: webrtc/modules/audio_processing/gain_control_impl.cc
|
| diff --git a/webrtc/modules/audio_processing/gain_control_impl.cc b/webrtc/modules/audio_processing/gain_control_impl.cc
|
| index c353b2aaf934b6b61e0ffd635046c9ea9ea6f796..bdd34e3ff904476e7d4ea938f0199df9c20de621 100644
|
| --- a/webrtc/modules/audio_processing/gain_control_impl.cc
|
| +++ b/webrtc/modules/audio_processing/gain_control_impl.cc
|
| @@ -12,9 +12,9 @@
|
|
|
| #include <assert.h>
|
|
|
| +#include "webrtc/base/criticalsection.h"
|
| #include "webrtc/modules/audio_processing/audio_buffer.h"
|
| #include "webrtc/modules/audio_processing/agc/legacy/gain_control.h"
|
| -#include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
|
|
|
| namespace webrtc {
|
|
|
| @@ -39,12 +39,14 @@ const size_t GainControlImpl::kAllowedValuesOfSamplesPerFrame1;
|
| const size_t GainControlImpl::kAllowedValuesOfSamplesPerFrame2;
|
|
|
| GainControlImpl::GainControlImpl(const AudioProcessing* apm,
|
| - CriticalSectionWrapper* crit,
|
| + rtc::CriticalSection* crit_render,
|
| + rtc::CriticalSection* crit_capture,
|
| rtc::ThreadChecker* render_thread,
|
| rtc::ThreadChecker* capture_thread)
|
| : ProcessingComponent(),
|
| apm_(apm),
|
| - crit_(crit),
|
| + crit_render_(crit_render),
|
| + crit_capture_(crit_capture),
|
| render_thread_(render_thread),
|
| capture_thread_(capture_thread),
|
| mode_(kAdaptiveAnalog),
|
| @@ -64,6 +66,7 @@ GainControlImpl::~GainControlImpl() {}
|
|
|
| int GainControlImpl::ProcessRenderAudio(AudioBuffer* audio) {
|
| RTC_DCHECK(render_thread_->CalledOnValidThread());
|
| + rtc::CritScope cs(crit_render_);
|
| if (!is_component_enabled()) {
|
| return apm_->kNoError;
|
| }
|
| @@ -234,7 +237,7 @@ int GainControlImpl::set_stream_analog_level(int level) {
|
| // places if not needed.
|
| ReadQueuedRenderData();
|
|
|
| - CriticalSectionScoped crit_scoped(crit_);
|
| + rtc::CritScope cs(crit_capture_);
|
| was_analog_level_set_ = true;
|
| if (level < minimum_capture_level_ || level > maximum_capture_level_) {
|
| return apm_->kBadParameterError;
|
| @@ -245,6 +248,7 @@ int GainControlImpl::set_stream_analog_level(int level) {
|
| }
|
|
|
| int GainControlImpl::stream_analog_level() {
|
| + rtc::CritScope cs(crit_capture_);
|
| RTC_DCHECK(capture_thread_->CalledOnValidThread());
|
| // TODO(ajm): enable this assertion?
|
| //assert(mode_ == kAdaptiveAnalog);
|
| @@ -253,16 +257,17 @@ int GainControlImpl::stream_analog_level() {
|
| }
|
|
|
| int GainControlImpl::Enable(bool enable) {
|
| - CriticalSectionScoped crit_scoped(crit_);
|
| + rtc::CritScope cs(crit_capture_);
|
| return EnableComponent(enable);
|
| }
|
|
|
| bool GainControlImpl::is_enabled() const {
|
| + rtc::CritScope cs(crit_capture_);
|
| return is_component_enabled();
|
| }
|
|
|
| int GainControlImpl::set_mode(Mode mode) {
|
| - CriticalSectionScoped crit_scoped(crit_);
|
| + rtc::CritScope cs(crit_capture_);
|
| if (MapSetting(mode) == -1) {
|
| return apm_->kBadParameterError;
|
| }
|
| @@ -272,12 +277,13 @@ int GainControlImpl::set_mode(Mode mode) {
|
| }
|
|
|
| GainControl::Mode GainControlImpl::mode() const {
|
| + rtc::CritScope cs(crit_capture_);
|
| return mode_;
|
| }
|
|
|
| int GainControlImpl::set_analog_level_limits(int minimum,
|
| int maximum) {
|
| - CriticalSectionScoped crit_scoped(crit_);
|
| + rtc::CritScope cs(crit_capture_);
|
| if (minimum < 0) {
|
| return apm_->kBadParameterError;
|
| }
|
| @@ -297,19 +303,22 @@ int GainControlImpl::set_analog_level_limits(int minimum,
|
| }
|
|
|
| int GainControlImpl::analog_level_minimum() const {
|
| + rtc::CritScope cs(crit_capture_);
|
| return minimum_capture_level_;
|
| }
|
|
|
| int GainControlImpl::analog_level_maximum() const {
|
| + rtc::CritScope cs(crit_capture_);
|
| return maximum_capture_level_;
|
| }
|
|
|
| bool GainControlImpl::stream_is_saturated() const {
|
| + rtc::CritScope cs(crit_capture_);
|
| return stream_is_saturated_;
|
| }
|
|
|
| int GainControlImpl::set_target_level_dbfs(int level) {
|
| - CriticalSectionScoped crit_scoped(crit_);
|
| + rtc::CritScope cs(crit_capture_);
|
| if (level > 31 || level < 0) {
|
| return apm_->kBadParameterError;
|
| }
|
| @@ -319,11 +328,12 @@ int GainControlImpl::set_target_level_dbfs(int level) {
|
| }
|
|
|
| int GainControlImpl::target_level_dbfs() const {
|
| + rtc::CritScope cs(crit_capture_);
|
| return target_level_dbfs_;
|
| }
|
|
|
| int GainControlImpl::set_compression_gain_db(int gain) {
|
| - CriticalSectionScoped crit_scoped(crit_);
|
| + rtc::CritScope cs(crit_capture_);
|
| if (gain < 0 || gain > 90) {
|
| return apm_->kBadParameterError;
|
| }
|
| @@ -333,16 +343,18 @@ int GainControlImpl::set_compression_gain_db(int gain) {
|
| }
|
|
|
| int GainControlImpl::compression_gain_db() const {
|
| + rtc::CritScope cs(crit_capture_);
|
| return compression_gain_db_;
|
| }
|
|
|
| int GainControlImpl::enable_limiter(bool enable) {
|
| - CriticalSectionScoped crit_scoped(crit_);
|
| + rtc::CritScope cs(crit_capture_);
|
| limiter_enabled_ = enable;
|
| return Configure();
|
| }
|
|
|
| bool GainControlImpl::is_limiter_enabled() const {
|
| + rtc::CritScope cs(crit_capture_);
|
| return limiter_enabled_;
|
| }
|
|
|
|
|