From 13735821487ef00bfcf3f57f47e959010ad807a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=85hgren?= Date: Mon, 12 Feb 2018 21:42:56 +0100 Subject: [PATCH] Add offline logging of the system delay for AEC3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:8671 Change-Id: I8c1801673d9da05c4c5d5385ad455de4d225fff3 Reviewed-on: https://webrtc-review.googlesource.com/52100 Reviewed-by: Gustaf Ullberg Commit-Queue: Per Ã…hgren Cr-Commit-Position: refs/heads/master@{#22018} --- modules/audio_processing/audio_processing_impl.cc | 10 +++++++++- modules/audio_processing/audio_processing_impl.h | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/audio_processing/audio_processing_impl.cc b/modules/audio_processing/audio_processing_impl.cc index c7d59b84d5..240d663a61 100644 --- a/modules/audio_processing/audio_processing_impl.cc +++ b/modules/audio_processing/audio_processing_impl.cc @@ -28,6 +28,7 @@ #include "modules/audio_processing/echo_control_mobile_impl.h" #include "modules/audio_processing/gain_control_for_experimental_agc.h" #include "modules/audio_processing/gain_control_impl.h" +#include "modules/audio_processing/logging/apm_data_dumper.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" #include "rtc_base/platform_file.h" @@ -44,6 +45,7 @@ #include "modules/audio_processing/transient/transient_suppressor.h" #include "modules/audio_processing/voice_detection_impl.h" #include "modules/include/module_common_types.h" +#include "rtc_base/atomicops.h" #include "system_wrappers/include/file_wrapper.h" #include "system_wrappers/include/metrics.h" @@ -373,6 +375,8 @@ AudioProcessingImpl::AudioProcessingImpl(const webrtc::Config& config) : AudioProcessingImpl(config, nullptr, nullptr, nullptr, nullptr, nullptr) { } +int AudioProcessingImpl::instance_count_ = 0; + AudioProcessingImpl::AudioProcessingImpl( const webrtc::Config& config, std::unique_ptr capture_post_processor, @@ -380,7 +384,9 @@ AudioProcessingImpl::AudioProcessingImpl( std::unique_ptr echo_control_factory, std::unique_ptr echo_detector, NonlinearBeamformer* beamformer) - : high_pass_filter_impl_(new HighPassFilterImpl(this)), + : data_dumper_( + new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))), + high_pass_filter_impl_(new HighPassFilterImpl(this)), echo_control_factory_(std::move(echo_control_factory)), submodule_states_(!!capture_post_processor, !!render_pre_processor), public_submodules_(new ApmPublicSubmodules()), @@ -1239,6 +1245,8 @@ int AudioProcessingImpl::ProcessCaptureStreamLocked() { } if (private_submodules_->echo_controller) { + data_dumper_->DumpRaw("stream_delay", stream_delay_ms()); + private_submodules_->echo_controller->ProcessCapture( capture_buffer, capture_.echo_path_gain_change); } else { diff --git a/modules/audio_processing/audio_processing_impl.h b/modules/audio_processing/audio_processing_impl.h index 8ece029723..d0fa8cc240 100644 --- a/modules/audio_processing/audio_processing_impl.h +++ b/modules/audio_processing/audio_processing_impl.h @@ -31,6 +31,7 @@ namespace webrtc { +class ApmDataDumper; class AudioConverter; class NonlinearBeamformer; @@ -142,6 +143,9 @@ class AudioProcessingImpl : public AudioProcessing { struct ApmPublicSubmodules; struct ApmPrivateSubmodules; + std::unique_ptr data_dumper_; + static int instance_count_; + // Submodule interface implementations. std::unique_ptr high_pass_filter_impl_;