Index: webrtc/modules/audio_processing/audio_processing_impl.h |
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.h b/webrtc/modules/audio_processing/audio_processing_impl.h |
index 15c6f7572f9a6e5a8fedebd2308676b1b166be43..ecf70957efaac839887054d56719965f492c4b0f 100644 |
--- a/webrtc/modules/audio_processing/audio_processing_impl.h |
+++ b/webrtc/modules/audio_processing/audio_processing_impl.h |
@@ -163,13 +163,64 @@ class AudioProcessingImpl : public AudioProcessing { |
rtc::scoped_ptr<AudioBuffer> capture_audio_; |
rtc::scoped_ptr<AudioConverter> render_converter_; |
#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
+ struct ApmConfig { |
Andrew MacDonald
2015/09/26 02:36:19
Why do you need this thing?
minyue-webrtc
2015/09/26 16:26:44
Ivo had a good suggestion. It is now removed
|
+ bool operator!=(const ApmConfig &rhs) const { |
+ return ( |
+ // AEC |
peah-webrtc
2015/09/25 10:27:38
I think the style guide says that comments should
|
+ this->aec_enabled != rhs.aec_enabled || |
+ this->aec_delay_agnostic != rhs.aec_delay_agnostic || |
+ this->aec_drift_compensation != rhs.aec_drift_compensation || |
+ this->aec_extended_filter != rhs.aec_extended_filter || |
+ this->aec_suppression_level != rhs.aec_suppression_level || |
+ // AEC mobile |
+ this->aecm_enabled != rhs.aecm_enabled || |
+ this->aecm_comfort_noise != rhs.aecm_comfort_noise || |
+ this->aecm_routing_mode != rhs.aecm_routing_mode || |
+ /// AGC |
+ this->agc_enabled != rhs.agc_enabled || |
+ this->agc_experiment != rhs.agc_experiment || |
+ this->agc_mode != rhs.agc_mode || |
+ this->agc_limiter != rhs.agc_limiter || |
+ // HPF |
+ this->hpf_enabled != rhs.hpf_enabled || |
+ // NS |
+ this->ns_enabled != rhs.ns_enabled || |
+ this->ns_experiment != rhs.ns_experiment || |
+ this->ns_level != rhs.ns_level); |
+ } |
+ // Acoustic echo canceler |
+ bool aec_enabled; |
+ bool aec_delay_agnostic; |
+ bool aec_drift_compensation; |
+ bool aec_extended_filter; |
+ EchoCancellation::SuppressionLevel aec_suppression_level; |
+ // Mobile AEC |
+ bool aecm_enabled; |
+ bool aecm_comfort_noise; |
+ EchoControlMobile::RoutingMode aecm_routing_mode; |
+ // Automatic gain controller |
+ bool agc_enabled; |
+ bool agc_experiment; |
+ GainControl::Mode agc_mode; |
+ bool agc_limiter; |
+ // High pass filter |
+ bool hpf_enabled; |
+ // Noise suppression |
+ bool ns_enabled; |
+ bool ns_experiment; |
+ NoiseSuppression::Level ns_level; |
+ }; // Configurations of APM components. |
+ |
// TODO(andrew): make this more graceful. Ideally we would split this stuff |
// out into a separate class with an "enabled" and "disabled" implementation. |
int WriteMessageToDebugFile(); |
int WriteInitMessage(); |
+ int WriteConfigMessage(); |
+ ApmConfig GetCurrentConfig() const; |
rtc::scoped_ptr<FileWrapper> debug_file_; |
rtc::scoped_ptr<audioproc::Event> event_msg_; // Protobuf message. |
std::string event_str_; // Memory for protobuf serialization. |
+ ApmConfig config_; |
#endif |
// Format of processing streams at input/output call sites. |