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

Side by Side Diff: content/renderer/media/webmediaplayer_ms_compositor.cc

Issue 1895233003: Bug Fix: Resize Event Trigger (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Unittest Created 4 years, 8 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/webmediaplayer_ms_compositor.h" 5 #include "content/renderer/media/webmediaplayer_ms_compositor.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <string> 8 #include <string>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 const auto& begin = timestamps_to_clock_times_.begin(); 388 const auto& begin = timestamps_to_clock_times_.begin();
389 auto iterator = begin; 389 auto iterator = begin;
390 while (iterator != end && iterator->first < frame->timestamp()) 390 while (iterator != end && iterator->first < frame->timestamp())
391 ++iterator; 391 ++iterator;
392 timestamps_to_clock_times_.erase(begin, iterator); 392 timestamps_to_clock_times_.erase(begin, iterator);
393 } 393 }
394 394
395 void WebMediaPlayerMSCompositor::SetCurrentFrame( 395 void WebMediaPlayerMSCompositor::SetCurrentFrame(
396 const scoped_refptr<media::VideoFrame>& frame) { 396 const scoped_refptr<media::VideoFrame>& frame) {
397 current_frame_lock_.AssertAcquired(); 397 current_frame_lock_.AssertAcquired();
398
398 if (!current_frame_used_by_compositor_) 399 if (!current_frame_used_by_compositor_)
399 ++dropped_frame_count_; 400 ++dropped_frame_count_;
400 current_frame_used_by_compositor_ = false; 401 current_frame_used_by_compositor_ = false;
402
403 const bool size_changed =
404 !current_frame_ ||
405 current_frame_->natural_size() != frame->natural_size();
401 current_frame_ = frame; 406 current_frame_ = frame;
407 if (size_changed) {
408 main_message_loop_->PostTask(
409 FROM_HERE, base::Bind(&WebMediaPlayerMS::TriggerResize, player_));
410 }
402 main_message_loop_->PostTask( 411 main_message_loop_->PostTask(
403 FROM_HERE, base::Bind(&WebMediaPlayerMS::ResetCanvasCache, player_)); 412 FROM_HERE, base::Bind(&WebMediaPlayerMS::ResetCanvasCache, player_));
404 } 413 }
405 414
406 void WebMediaPlayerMSCompositor::SetAlgorithmEnabledForTesting( 415 void WebMediaPlayerMSCompositor::SetAlgorithmEnabledForTesting(
407 bool algorithm_enabled) { 416 bool algorithm_enabled) {
408 if (!algorithm_enabled) { 417 if (!algorithm_enabled) {
409 rendering_frame_buffer_.reset(); 418 rendering_frame_buffer_.reset();
410 return; 419 return;
411 } 420 }
412 421
413 if (!rendering_frame_buffer_) { 422 if (!rendering_frame_buffer_) {
414 rendering_frame_buffer_.reset(new media::VideoRendererAlgorithm( 423 rendering_frame_buffer_.reset(new media::VideoRendererAlgorithm(
415 base::Bind(&WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks, 424 base::Bind(&WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks,
416 base::Unretained(this)))); 425 base::Unretained(this))));
417 } 426 }
418 } 427 }
419 428
420 } // namespace content 429 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/webmediaplayer_ms.cc ('k') | content/renderer/media/webmediaplayer_ms_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698