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

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

Issue 1417533006: Unit test for WebMediaPlayerMS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and merge some classes together Created 5 years, 1 month 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 "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
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
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.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698