Add offline logging of the system delay for AEC3
Bug: webrtc:8671 Change-Id: I8c1801673d9da05c4c5d5385ad455de4d225fff3 Reviewed-on: https://webrtc-review.googlesource.com/52100 Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org> Commit-Queue: Per Åhgren <peah@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22018}
This commit is contained in:
@ -28,6 +28,7 @@
|
|||||||
#include "modules/audio_processing/echo_control_mobile_impl.h"
|
#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_for_experimental_agc.h"
|
||||||
#include "modules/audio_processing/gain_control_impl.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/checks.h"
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/platform_file.h"
|
#include "rtc_base/platform_file.h"
|
||||||
@ -44,6 +45,7 @@
|
|||||||
#include "modules/audio_processing/transient/transient_suppressor.h"
|
#include "modules/audio_processing/transient/transient_suppressor.h"
|
||||||
#include "modules/audio_processing/voice_detection_impl.h"
|
#include "modules/audio_processing/voice_detection_impl.h"
|
||||||
#include "modules/include/module_common_types.h"
|
#include "modules/include/module_common_types.h"
|
||||||
|
#include "rtc_base/atomicops.h"
|
||||||
#include "system_wrappers/include/file_wrapper.h"
|
#include "system_wrappers/include/file_wrapper.h"
|
||||||
#include "system_wrappers/include/metrics.h"
|
#include "system_wrappers/include/metrics.h"
|
||||||
|
|
||||||
@ -373,6 +375,8 @@ AudioProcessingImpl::AudioProcessingImpl(const webrtc::Config& config)
|
|||||||
: AudioProcessingImpl(config, nullptr, nullptr, nullptr, nullptr, nullptr) {
|
: AudioProcessingImpl(config, nullptr, nullptr, nullptr, nullptr, nullptr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int AudioProcessingImpl::instance_count_ = 0;
|
||||||
|
|
||||||
AudioProcessingImpl::AudioProcessingImpl(
|
AudioProcessingImpl::AudioProcessingImpl(
|
||||||
const webrtc::Config& config,
|
const webrtc::Config& config,
|
||||||
std::unique_ptr<CustomProcessing> capture_post_processor,
|
std::unique_ptr<CustomProcessing> capture_post_processor,
|
||||||
@ -380,7 +384,9 @@ AudioProcessingImpl::AudioProcessingImpl(
|
|||||||
std::unique_ptr<EchoControlFactory> echo_control_factory,
|
std::unique_ptr<EchoControlFactory> echo_control_factory,
|
||||||
std::unique_ptr<EchoDetector> echo_detector,
|
std::unique_ptr<EchoDetector> echo_detector,
|
||||||
NonlinearBeamformer* beamformer)
|
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)),
|
echo_control_factory_(std::move(echo_control_factory)),
|
||||||
submodule_states_(!!capture_post_processor, !!render_pre_processor),
|
submodule_states_(!!capture_post_processor, !!render_pre_processor),
|
||||||
public_submodules_(new ApmPublicSubmodules()),
|
public_submodules_(new ApmPublicSubmodules()),
|
||||||
@ -1239,6 +1245,8 @@ int AudioProcessingImpl::ProcessCaptureStreamLocked() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (private_submodules_->echo_controller) {
|
if (private_submodules_->echo_controller) {
|
||||||
|
data_dumper_->DumpRaw("stream_delay", stream_delay_ms());
|
||||||
|
|
||||||
private_submodules_->echo_controller->ProcessCapture(
|
private_submodules_->echo_controller->ProcessCapture(
|
||||||
capture_buffer, capture_.echo_path_gain_change);
|
capture_buffer, capture_.echo_path_gain_change);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
class ApmDataDumper;
|
||||||
class AudioConverter;
|
class AudioConverter;
|
||||||
class NonlinearBeamformer;
|
class NonlinearBeamformer;
|
||||||
|
|
||||||
@ -142,6 +143,9 @@ class AudioProcessingImpl : public AudioProcessing {
|
|||||||
struct ApmPublicSubmodules;
|
struct ApmPublicSubmodules;
|
||||||
struct ApmPrivateSubmodules;
|
struct ApmPrivateSubmodules;
|
||||||
|
|
||||||
|
std::unique_ptr<ApmDataDumper> data_dumper_;
|
||||||
|
static int instance_count_;
|
||||||
|
|
||||||
// Submodule interface implementations.
|
// Submodule interface implementations.
|
||||||
std::unique_ptr<HighPassFilter> high_pass_filter_impl_;
|
std::unique_ptr<HighPassFilter> high_pass_filter_impl_;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user