diff options
author | henrika <henrika@chromium.org> | 2014-09-03 10:45:52 +0200 |
---|---|---|
committer | henrika <henrika@chromium.org> | 2014-09-03 08:51:48 +0000 |
commit | 03573630c9619e21c299eef4fd41c8704421d2a6 (patch) | |
tree | be3bc1cdccfef682830d2e04663902e2ed11925c /content/browser | |
parent | 0db57093f55bcbdfb3a02d65315b20cbf4d49162 (diff) | |
download | chromium_src-03573630c9619e21c299eef4fd41c8704421d2a6.zip chromium_src-03573630c9619e21c299eef4fd41c8704421d2a6.tar.gz chromium_src-03573630c9619e21c299eef4fd41c8704421d2a6.tar.bz2 |
Adding more detailed UMA histogram for detection of output audio glitches.
BUG=NONE
TEST=Manual test of WebRTC clients under heavy load.
R=asvitkine@chromium.org, tommi@chromium.org
Review URL: https://codereview.chromium.org/534533002
Cr-Commit-Position: refs/heads/master@{#293099}
Diffstat (limited to 'content/browser')
-rw-r--r-- | content/browser/renderer_host/media/audio_sync_reader.cc | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/content/browser/renderer_host/media/audio_sync_reader.cc b/content/browser/renderer_host/media/audio_sync_reader.cc index 3daacca..79613da 100644 --- a/content/browser/renderer_host/media/audio_sync_reader.cc +++ b/content/browser/renderer_host/media/audio_sync_reader.cc @@ -9,12 +9,32 @@ #include "base/command_line.h" #include "base/memory/shared_memory.h" #include "base/metrics/histogram.h" +#include "base/strings/stringprintf.h" +#include "content/browser/renderer_host/media/media_stream_manager.h" #include "content/public/common/content_switches.h" #include "media/audio/audio_buffers_state.h" #include "media/audio/audio_parameters.h" using media::AudioBus; +namespace { + +// Used to log if any audio glitches have been detected during an audio session. +// Elements in this enum should not be added, deleted or rearranged. +enum AudioGlitchResult { + AUDIO_RENDERER_NO_AUDIO_GLITCHES = 0, + AUDIO_RENDERER_AUDIO_GLITCHES = 1, + AUDIO_RENDERER_AUDIO_GLITCHES_MAX = AUDIO_RENDERER_AUDIO_GLITCHES +}; + +void LogAudioGlitchResult(AudioGlitchResult result) { + UMA_HISTOGRAM_ENUMERATION("Media.AudioRendererAudioGlitches", + result, + AUDIO_RENDERER_AUDIO_GLITCHES_MAX + 1); +} + +} // namespace + namespace content { AudioSyncReader::AudioSyncReader(base::SharedMemory* shared_memory, @@ -47,6 +67,18 @@ AudioSyncReader::~AudioSyncReader() { 100.0 * renderer_missed_callback_count_ / renderer_callback_count_; UMA_HISTOGRAM_PERCENTAGE( "Media.AudioRendererMissedDeadline", percentage_missed); + + // Add more detailed information regarding detected audio glitches where + // a non-zero value of |renderer_missed_callback_count_| is added to the + // AUDIO_RENDERER_AUDIO_GLITCHES bin. + renderer_missed_callback_count_ > 0 ? + LogAudioGlitchResult(AUDIO_RENDERER_AUDIO_GLITCHES) : + LogAudioGlitchResult(AUDIO_RENDERER_NO_AUDIO_GLITCHES); + std::string log_string = base::StringPrintf( + "ASR: number of detected audio glitches=%ld", + renderer_missed_callback_count_); + MediaStreamManager::SendMessageToNativeLog(log_string); + DVLOG(1) << log_string; } // media::AudioOutputController::SyncReader implementations. |