| Index: media/filters/video_renderer_impl.cc
|
| diff --git a/media/filters/video_renderer_impl.cc b/media/filters/video_renderer_impl.cc
|
| index 25099ca0f84a7a06a6761af150cc01c17f022b4d..ac21c3a4e73f81e2d07a224a47a791bee2eaa427 100644
|
| --- a/media/filters/video_renderer_impl.cc
|
| +++ b/media/filters/video_renderer_impl.cc
|
| @@ -42,6 +42,7 @@ VideoRendererImpl::VideoRendererImpl(
|
| last_painted_timestamp_(kNoTimestamp()),
|
| frames_decoded_(0),
|
| frames_dropped_(0),
|
| + frames_delay_time_(0),
|
| is_shutting_down_(false),
|
| weak_factory_(this) {
|
| DCHECK(!paint_cb_.is_null());
|
| @@ -270,6 +271,9 @@ void VideoRendererImpl::PaintNextReadyFrame_Locked() {
|
|
|
| paint_cb_.Run(next_frame);
|
|
|
| + base::TimeDelta now = get_time_cb_.Run();
|
| + frames_delay_time_ += (now - last_painted_timestamp_).InSecondsF();
|
| +
|
| task_runner_->PostTask(
|
| FROM_HERE,
|
| base::Bind(&VideoRendererImpl::AttemptRead, weak_factory_.GetWeakPtr()));
|
| @@ -466,10 +470,12 @@ void VideoRendererImpl::UpdateStatsAndWait_Locked(
|
| PipelineStatistics statistics;
|
| statistics.video_frames_decoded = frames_decoded_;
|
| statistics.video_frames_dropped = frames_dropped_;
|
| + statistics.total_frame_delay = frames_delay_time_;
|
| task_runner_->PostTask(FROM_HERE, base::Bind(statistics_cb_, statistics));
|
|
|
| frames_decoded_ = 0;
|
| frames_dropped_ = 0;
|
| + frames_delay_time_ = 0;
|
| }
|
|
|
| frame_available_.TimedWait(wait_duration);
|
|
|