Index: content/browser/renderer_host/media/audio_sync_reader.cc |
diff --git a/content/browser/renderer_host/media/audio_sync_reader.cc b/content/browser/renderer_host/media/audio_sync_reader.cc |
index 3daacca566ea499a15e294cd3ffffd3ef3a06917..e6daeeca76bdd0b0eb4f409e02ca3b4b960efac9 100644 |
--- a/content/browser/renderer_host/media/audio_sync_reader.cc |
+++ b/content/browser/renderer_host/media/audio_sync_reader.cc |
@@ -9,12 +9,31 @@ |
#include "base/command_line.h" |
#include "base/memory/shared_memory.h" |
#include "base/metrics/histogram.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 content { |
AudioSyncReader::AudioSyncReader(base::SharedMemory* shared_memory, |
@@ -47,6 +66,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::ostringstream oss; |
tommi (sloooow) - chröme
2014/09/02 11:08:45
nit: use StringPrintf since the style guide allows
henrika (OOO until Aug 14)
2014/09/02 11:28:46
Done.
|
+ oss << "ASR: number of detected audio glitches=" |
+ << renderer_missed_callback_count_; |
+ MediaStreamManager::SendMessageToNativeLog(oss.str()); |
+ DVLOG(1) << oss.str(); |
} |
// media::AudioOutputController::SyncReader implementations. |