Chromium Code Reviews| Index: webrtc/modules/audio_processing/audio_processing_impl.cc | 
| diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc | 
| index 4ef4e6da6a307e6533e8ac9ddf39e888c2c52713..f19be9243911815dd27334d3a05d061e57832764 100644 | 
| --- a/webrtc/modules/audio_processing/audio_processing_impl.cc | 
| +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc | 
| @@ -561,6 +561,8 @@ int AudioProcessingImpl::ProcessStream(const float* const* src, | 
| #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 
| if (debug_file_->Open()) { | 
| + RETURN_ON_ERR(WriteConfigMessage(false)); | 
| + | 
| event_msg_->set_type(audioproc::Event::STREAM); | 
| audioproc::Stream* msg = event_msg_->mutable_stream(); | 
| const size_t channel_size = | 
| @@ -946,10 +948,8 @@ int AudioProcessingImpl::StartDebugRecording( | 
| return kFileError; | 
| } | 
| - int err = WriteInitMessage(); | 
| - if (err != kNoError) { | 
| - return err; | 
| - } | 
| + RETURN_ON_ERR(WriteConfigMessage(true)); | 
| + RETURN_ON_ERR(WriteInitMessage()); | 
| return kNoError; | 
| #else | 
| return kUnsupportedFunctionError; | 
| @@ -975,10 +975,8 @@ int AudioProcessingImpl::StartDebugRecording(FILE* handle) { | 
| return kFileError; | 
| } | 
| - int err = WriteInitMessage(); | 
| - if (err != kNoError) { | 
| - return err; | 
| - } | 
| + RETURN_ON_ERR(WriteConfigMessage(true)); | 
| + RETURN_ON_ERR(WriteInitMessage()); | 
| return kNoError; | 
| #else | 
| return kUnsupportedFunctionError; | 
| @@ -1248,11 +1246,52 @@ int AudioProcessingImpl::WriteInitMessage() { | 
| msg->set_output_sample_rate(api_format_.output_stream().sample_rate_hz()); | 
| // TODO(ekmeyerson): Add reverse output fields to event_msg_. | 
| - int err = WriteMessageToDebugFile(); | 
| - if (err != kNoError) { | 
| - return err; | 
| + RETURN_ON_ERR(WriteMessageToDebugFile()); | 
| + return kNoError; | 
| +} | 
| + | 
| +int AudioProcessingImpl::WriteConfigMessage(bool forced) { | 
| + audioproc::Config config; | 
| + | 
| + config.set_aec_enabled(echo_cancellation_->is_enabled()); | 
| + config.set_aec_delay_agnostic_enabled( | 
| + echo_cancellation_->is_delay_agnostic_enabled()); | 
| + config.set_aec_drift_compensation_enabled( | 
| + echo_cancellation_->is_drift_compensation_enabled()); | 
| + config.set_aec_extended_filter_enabled( | 
| + echo_cancellation_->is_extended_filter_enabled()); | 
| + config.set_aec_suppression_level( | 
| + static_cast<int>(echo_cancellation_->suppression_level())); | 
| + | 
| + config.set_aecm_enabled(echo_control_mobile_->is_enabled()); | 
| + config.set_aecm_comfort_noise_enabled( | 
| + echo_control_mobile_->is_comfort_noise_enabled()); | 
| + config.set_aecm_routing_mode( | 
| + static_cast<int>(echo_control_mobile_->routing_mode())); | 
| + | 
| + config.set_agc_enabled(gain_control_->is_enabled()); | 
| + config.set_agc_mode(static_cast<int>(gain_control_->mode())); | 
| + config.set_agc_limiter_enabled(gain_control_->is_limiter_enabled()); | 
| + config.set_noise_robust_enabled(use_new_agc_); | 
| 
 
Andrew MacDonald
2015/10/02 22:00:01
Did you build this? This is using the wrong field
 
minyue-webrtc
2015/10/02 22:01:41
oh, I thought I changed it. sorry, was too hasty.
 
 | 
| + | 
| + config.set_hpf_enabled(high_pass_filter_->is_enabled()); | 
| + | 
| + config.set_ns_enabled(noise_suppression_->is_enabled()); | 
| + config.set_ns_level(static_cast<int>(noise_suppression_->level())); | 
| + | 
| + config.set_transient_suppression_enabled(transient_suppressor_enabled_); | 
| + | 
| + std::string serialized_config = config.SerializeAsString(); | 
| + if (!forced && last_serialized_config_ == serialized_config) { | 
| + return kNoError; | 
| } | 
| + last_serialized_config_ = serialized_config; | 
| + | 
| + event_msg_->set_type(audioproc::Event::CONFIG); | 
| + event_msg_->mutable_config()->CopyFrom(config); | 
| + | 
| + RETURN_ON_ERR(WriteMessageToDebugFile()); | 
| return kNoError; | 
| } | 
| #endif // WEBRTC_AUDIOPROC_DEBUG_DUMP |