Index: content/renderer/media/webmediaplayer_ms_compositor.cc |
diff --git a/content/renderer/media/webmediaplayer_ms_compositor.cc b/content/renderer/media/webmediaplayer_ms_compositor.cc |
index 1cd01e8377290c02e8ad4ff0d7447ff8741f8a8b..a95357b97bb202718fe22fc650e1406806ac70d6 100644 |
--- a/content/renderer/media/webmediaplayer_ms_compositor.cc |
+++ b/content/renderer/media/webmediaplayer_ms_compositor.cc |
@@ -395,10 +395,19 @@ void WebMediaPlayerMSCompositor::Render(base::TimeTicks deadline_min, |
void WebMediaPlayerMSCompositor::SetCurrentFrame( |
const scoped_refptr<media::VideoFrame>& frame) { |
current_frame_lock_.AssertAcquired(); |
+ |
if (!current_frame_used_by_compositor_) |
++dropped_frame_count_; |
current_frame_used_by_compositor_ = false; |
+ |
+ const bool size_changed = |
+ !current_frame_ || |
+ current_frame_->natural_size() != frame->natural_size(); |
current_frame_ = frame; |
+ if (size_changed) { |
+ main_message_loop_->PostTask( |
+ FROM_HERE, base::Bind(&WebMediaPlayerMS::TriggerResize, player_)); |
+ } |
main_message_loop_->PostTask( |
FROM_HERE, base::Bind(&WebMediaPlayerMS::ResetCanvasCache, player_)); |
} |