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}
This commit is contained in:
Per Åhgren
2017-09-15 10:36:44 +02:00
committed by Commit Bot
parent 6ef2002246
commit 262d4ff882

View File

@ -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 @@ void BlockProcessorImpl::ProcessCapture(
// 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 @@ void BlockProcessorImpl::ProcessCapture(
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 @@ void BlockProcessorImpl::BufferRender(
// 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_);