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 |