Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(506)

Unified Diff: webrtc/modules/audio_processing/audio_processing_impl.cc

Issue 1229443003: audio_processing: Adds two UMA histograms logging delay jumps in AEC (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Changed to use ENUMERATION Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 fd6b2581413138bd5080f874be9df0cf35e6fb1c..87b82a6a3509131adae9ed698cc0f896fd01d4c0 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
@@ -177,6 +177,8 @@ AudioProcessingImpl::AudioProcessingImpl(const Config& config,
was_stream_delay_set_(false),
last_stream_delay_ms_(0),
last_aec_system_delay_ms_(0),
+ stream_delay_jumps_(-1),
+ aec_system_delay_jumps_(-1),
output_will_be_muted_(false),
key_pressed_(false),
#if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS)
@@ -1003,11 +1005,25 @@ void AudioProcessingImpl::MaybeUpdateHistograms() {
static const int kMinDiffDelayMs = 60;
if (echo_cancellation()->is_enabled()) {
+ // Activate delay_jumps_ counters if we know echo_cancellation is runnning.
+ // If a stream has echo we know that the echo_cancellation is in process.
+ if (stream_delay_jumps_ == -1 && echo_cancellation()->stream_has_echo()) {
+ stream_delay_jumps_ = 0;
+ }
+ if (aec_system_delay_jumps_ == -1 &&
+ echo_cancellation()->stream_has_echo()) {
+ aec_system_delay_jumps_ = 0;
+ }
+
// Detect a jump in platform reported system delay and log the difference.
const int diff_stream_delay_ms = stream_delay_ms_ - last_stream_delay_ms_;
if (diff_stream_delay_ms > kMinDiffDelayMs && last_stream_delay_ms_ != 0) {
RTC_HISTOGRAM_COUNTS("WebRTC.Audio.PlatformReportedStreamDelayJump",
diff_stream_delay_ms, kMinDiffDelayMs, 1000, 100);
+ if (stream_delay_jumps_ == -1) {
+ stream_delay_jumps_ = 0; // Activate counter if needed.
+ }
+ stream_delay_jumps_++;
}
last_stream_delay_ms_ = stream_delay_ms_;
@@ -1022,13 +1038,33 @@ void AudioProcessingImpl::MaybeUpdateHistograms() {
RTC_HISTOGRAM_COUNTS("WebRTC.Audio.AecSystemDelayJump",
diff_aec_system_delay_ms, kMinDiffDelayMs, 1000,
100);
+ if (aec_system_delay_jumps_ == -1) {
+ aec_system_delay_jumps_ = 0; // Activate counter if needed.
+ }
+ aec_system_delay_jumps_++;
}
last_aec_system_delay_ms_ = aec_system_delay_ms;
- // TODO(bjornv): Consider also logging amount of jumps. This gives a better
- // indication of how frequent jumps are.
}
}
+void AudioProcessingImpl::UpdateHistogramsOnCallEnd() {
+ CriticalSectionScoped crit_scoped(crit_);
+ if (stream_delay_jumps_ > -1) {
+ RTC_HISTOGRAM_ENUMERATION(
+ "WebRTC.Audio.NumOfPlatformReportedStreamDelayJumps",
+ stream_delay_jumps_, 51);
+ }
+ stream_delay_jumps_ = -1;
+ last_stream_delay_ms_ = 0;
+
+ if (aec_system_delay_jumps_ > -1) {
+ RTC_HISTOGRAM_ENUMERATION("WebRTC.Audio.NumOfAecSystemDelayJumps",
+ aec_system_delay_jumps_, 51);
+ }
+ aec_system_delay_jumps_ = -1;
+ last_aec_system_delay_ms_ = 0;
+}
+
#ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP
int AudioProcessingImpl::WriteMessageToDebugFile() {
int32_t size = event_msg_->ByteSize();
« no previous file with comments | « webrtc/modules/audio_processing/audio_processing_impl.h ('k') | webrtc/modules/audio_processing/include/audio_processing.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698