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

Unified Diff: media/renderers/renderer_impl.cc

Issue 2552493002: [Media] Record time it takes to start rendering audio and video (Closed)
Patch Set: Compute preroll time for both audio and video renderers Created 4 years 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: media/renderers/renderer_impl.cc
diff --git a/media/renderers/renderer_impl.cc b/media/renderers/renderer_impl.cc
index 87212d8214423f6ed38b7cd4344feca1ae16476e..9af325ee66461af57726b30d5a6d56c30bbbd68a 100644
--- a/media/renderers/renderer_impl.cc
+++ b/media/renderers/renderer_impl.cc
@@ -12,6 +12,7 @@
#include "base/command_line.h"
#include "base/compiler_specific.h"
#include "base/location.h"
+#include "base/metrics/histogram_macros.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/string_number_conversions.h"
#include "media/base/audio_decoder_config.h"
@@ -215,10 +216,14 @@ void RendererImpl::StartPlayingFrom(base::TimeDelta time) {
time_source_->SetMediaTime(time);
- if (audio_renderer_)
+ if (audio_renderer_) {
+ audio_preroll_start_time_ = base::TimeTicks::Now();
audio_renderer_->StartPlaying();
- if (video_renderer_)
+ }
+ if (video_renderer_) {
+ video_preroll_start_time_ = base::TimeTicks::Now();
video_renderer_->StartPlayingFrom(time);
+ }
}
void RendererImpl::RestartStreamPlayback(DemuxerStream* stream,
@@ -694,6 +699,18 @@ void RendererImpl::OnBufferingStateChange(DemuxerStream::Type type,
// Renderer prerolled.
if (was_waiting_for_enough_data && !WaitingForEnoughData()) {
+ if (type == DemuxerStream::AUDIO && !audio_preroll_start_time_.is_null()) {
+ UMA_HISTOGRAM_MEDIUM_TIMES(
+ "Media.Audio.PrerollTime",
+ base::TimeTicks::Now() - audio_preroll_start_time_);
+ } else if (type == DemuxerStream::VIDEO &&
+ !video_preroll_start_time_.is_null()) {
+ UMA_HISTOGRAM_MEDIUM_TIMES(
+ "Media.Video.PrerollTime",
+ base::TimeTicks::Now() - video_preroll_start_time_);
+ video_preroll_start_time_ = base::TimeTicks();
+ }
+
StartPlayback();
client_->OnBufferingStateChange(BUFFERING_HAVE_ENOUGH);
return;

Powered by Google App Engine
This is Rietveld 408576698