Index: media/renderers/video_renderer_impl.cc |
diff --git a/media/renderers/video_renderer_impl.cc b/media/renderers/video_renderer_impl.cc |
index 2c13377bd0519218571104f9a3559dbc8932ca14..2a762fc24afd727fd18ae3be4c0e408ba9c25386 100644 |
--- a/media/renderers/video_renderer_impl.cc |
+++ b/media/renderers/video_renderer_impl.cc |
@@ -129,6 +129,7 @@ void VideoRendererImpl::StartPlayingFrom(base::TimeDelta timestamp) { |
state_ = kPlaying; |
start_timestamp_ = timestamp; |
painted_first_frame_ = false; |
+ start_rendering_time_ = tick_clock_->NowTicks(); |
AttemptRead_Locked(); |
} |
@@ -210,6 +211,7 @@ scoped_refptr<VideoFrame> VideoRendererImpl::Render( |
if (!background_rendering && !was_background_rendering_) |
frames_dropped_ += frames_dropped; |
UpdateStats_Locked(); |
+ |
was_background_rendering_ = background_rendering; |
// Always post this task, it will acquire new frames if necessary and since it |
@@ -422,6 +424,13 @@ void VideoRendererImpl::FrameReady(VideoFrameStream::Status status, |
first_frame->natural_size()); |
sink_->PaintSingleFrame(first_frame); |
painted_first_frame_ = true; |
+ |
+ if (!start_rendering_time_.is_null()) { |
+ UMA_HISTOGRAM_MEDIUM_TIMES( |
+ "Media.Video.FirstRenderTime", |
+ tick_clock_->NowTicks() - start_rendering_time_); |
+ start_rendering_time_ = base::TimeTicks(); |
+ } |
} |
} |