Index: media/renderers/video_renderer_impl.cc |
diff --git a/media/renderers/video_renderer_impl.cc b/media/renderers/video_renderer_impl.cc |
index 0ad19e4348d702bade9856c1b37682469d307d1d..9f57f130d07694aff694e2d997268a1f9cba47ec 100644 |
--- a/media/renderers/video_renderer_impl.cc |
+++ b/media/renderers/video_renderer_impl.cc |
@@ -246,11 +246,13 @@ void VideoRendererImpl::ThreadMain() { |
// Remain idle until we've reached our target paint window. |
if (now < target_paint_timestamp) { |
- UpdateStatsAndWait_Locked(kIdleTimeDelta); |
+ UpdateStatsAndWait_Locked( |
+ std::min(target_paint_timestamp - now, kIdleTimeDelta)); |
continue; |
} |
- if (now > latest_paint_timestamp && drop_frames_) { |
+ if (ready_frames_.size() > 1 && now > latest_paint_timestamp && |
+ drop_frames_) { |
DropNextReadyFrame_Locked(); |
continue; |
} |