Added logging inside AEC3 for render API buffer under/overruns
Bug: webrtc:8250
Change-Id: Ib9ce26419b8961a33869d2f24cc4248fe10039b8
Reviewed-on: https://webrtc-review.googlesource.com/1562
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19856}
diff --git a/modules/audio_processing/aec3/block_processor.cc b/modules/audio_processing/aec3/block_processor.cc
index 1d4d46a..672e336 100644
--- a/modules/audio_processing/aec3/block_processor.cc
+++ b/modules/audio_processing/aec3/block_processor.cc
@@ -16,6 +16,7 @@
#include "modules/audio_processing/logging/apm_data_dumper.h"
#include "rtc_base/atomicops.h"
#include "rtc_base/constructormagic.h"
+#include "rtc_base/logging.h"
namespace webrtc {
namespace {
@@ -101,11 +102,15 @@
// been a render buffer overrun as the buffer alignment may be noncausal.
delay_controller_->Reset();
render_buffer_->Reset();
+ LOG(LS_WARNING) << "Reset due to detected render buffer overrun.";
}
// Update the render buffers with new render data, filling the buffers with
// empty blocks when there is no render data available.
render_buffer_underrun = !render_buffer_->UpdateBuffers();
+ if (render_buffer_underrun) {
+ LOG(LS_WARNING) << "Render API jitter buffer underrun.";
+ }
// Compute and and apply the render delay required to achieve proper signal
// alignment.
@@ -127,6 +132,7 @@
delay_controller_->Reset();
render_buffer_->Reset();
delay_change = true;
+ LOG(LS_WARNING) << "Reset due to noncausal delay.";
}
// Remove the echo from the capture signal.
@@ -164,6 +170,9 @@
// Buffer the render data.
render_buffer_overrun_occurred_ = !render_buffer_->Insert(block);
+ if (render_buffer_overrun_occurred_) {
+ LOG(LS_WARNING) << "Render API jitter buffer overrun.";
+ }
// Update the metrics.
metrics_.UpdateRender(render_buffer_overrun_occurred_);