Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/hash.h" | 8 #include "base/hash.h" |
| 9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
| 10 #include "cc/blink/context_provider_web_context.h" | 10 #include "cc/blink/context_provider_web_context.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 101 current_frame_used_by_compositor_(false), | 101 current_frame_used_by_compositor_(false), |
| 102 last_render_length_(base::TimeDelta::FromSecondsD(1.0 / 60.0)), | 102 last_render_length_(base::TimeDelta::FromSecondsD(1.0 / 60.0)), |
| 103 total_frame_count_(0), | 103 total_frame_count_(0), |
| 104 dropped_frame_count_(0), | 104 dropped_frame_count_(0), |
| 105 stopped_(true) { | 105 stopped_(true) { |
| 106 main_message_loop_ = base::MessageLoop::current(); | 106 main_message_loop_ = base::MessageLoop::current(); |
| 107 | 107 |
| 108 const blink::WebMediaStream web_stream( | 108 const blink::WebMediaStream web_stream( |
| 109 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); | 109 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); |
| 110 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; | 110 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
| 111 web_stream.videoTracks(video_tracks); | 111 if (!web_stream.isNull()) |
| 112 web_stream.videoTracks(video_tracks); | |
| 112 | 113 |
| 113 const bool remote_video = | 114 const bool remote_video = |
| 114 video_tracks.size() && video_tracks[0].source().remote(); | 115 video_tracks.size() && video_tracks[0].source().remote(); |
| 115 | 116 |
| 116 if (remote_video && | 117 if (remote_video && |
| 117 !base::CommandLine::ForCurrentProcess()->HasSwitch( | 118 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 118 switches::kDisableRTCSmoothnessAlgorithm)) { | 119 switches::kDisableRTCSmoothnessAlgorithm)) { |
| 119 base::AutoLock auto_lock(current_frame_lock_); | 120 base::AutoLock auto_lock(current_frame_lock_); |
| 120 rendering_frame_buffer_.reset(new media::VideoRendererAlgorithm( | 121 rendering_frame_buffer_.reset(new media::VideoRendererAlgorithm( |
| 121 base::Bind(&WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks, | 122 base::Bind(&WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks, |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 364 void WebMediaPlayerMSCompositor::SetCurrentFrame( | 365 void WebMediaPlayerMSCompositor::SetCurrentFrame( |
| 365 const scoped_refptr<media::VideoFrame>& frame) { | 366 const scoped_refptr<media::VideoFrame>& frame) { |
| 366 current_frame_lock_.AssertAcquired(); | 367 current_frame_lock_.AssertAcquired(); |
| 367 if (!current_frame_used_by_compositor_) | 368 if (!current_frame_used_by_compositor_) |
| 368 ++dropped_frame_count_; | 369 ++dropped_frame_count_; |
| 369 current_frame_used_by_compositor_ = false; | 370 current_frame_used_by_compositor_ = false; |
| 370 current_frame_ = frame; | 371 current_frame_ = frame; |
| 371 main_message_loop_->PostTask( | 372 main_message_loop_->PostTask( |
| 372 FROM_HERE, base::Bind(&WebMediaPlayerMS::ResetCanvasCache, player_)); | 373 FROM_HERE, base::Bind(&WebMediaPlayerMS::ResetCanvasCache, player_)); |
| 373 } | 374 } |
| 375 | |
| 376 void WebMediaPlayerMSCompositor::SetAlgorithmEnabledForTesting( | |
| 377 bool algorithm_enabled) { | |
| 378 if (!algorithm_enabled) { | |
| 379 rendering_frame_buffer_.reset(); | |
| 380 return; | |
| 381 } | |
| 382 | |
| 383 if (!rendering_frame_buffer_) { | |
| 384 rendering_frame_buffer_.reset(new media::VideoRendererAlgorithm( | |
| 385 base::Bind(&WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks, | |
| 386 base::Unretained(this)))); | |
| 387 } | |
| 374 } | 388 } |
| 389 } | |
|
mcasas
2015/11/04 22:20:30
This is missing a
// namespace content
(it was
qiangchen
2015/11/06 19:14:57
Done.
| |
| OLD | NEW |