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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include "content/public/renderer/media_stream_renderer_factory.h" | 7 #include "content/public/renderer/media_stream_renderer_factory.h" |
8 #include "content/renderer/media/webmediaplayer_ms.h" | 8 #include "content/renderer/media/webmediaplayer_ms.h" |
9 #include "content/renderer/media/webmediaplayer_ms_compositor.h" | 9 #include "content/renderer/media/webmediaplayer_ms_compositor.h" |
10 #include "content/renderer/render_frame_impl.h" | 10 #include "content/renderer/render_frame_impl.h" |
11 #include "media/base/test_helpers.h" | 11 #include "media/base/test_helpers.h" |
12 #include "media/base/video_frame.h" | 12 #include "media/base/video_frame.h" |
13 #include "third_party/WebKit/public/platform/WebMediaPlayer.h" | 13 #include "third_party/WebKit/public/platform/WebMediaPlayer.h" |
14 #include "third_party/WebKit/public/platform/WebMediaPlayerClient.h" | 14 #include "third_party/WebKit/public/platform/WebMediaPlayerClient.h" |
| 15 #include "third_party/WebKit/public/platform/WebMediaPlayerSource.h" |
15 | 16 |
16 namespace content { | 17 namespace content { |
17 | 18 |
18 enum class FrameType { | 19 enum class FrameType { |
19 NORMAL_FRAME = 0, | 20 NORMAL_FRAME = 0, |
20 BROKEN_FRAME = -1, | 21 BROKEN_FRAME = -1, |
21 TEST_BRAKE = -2, // Signal to pause message loop. | 22 TEST_BRAKE = -2, // Signal to pause message loop. |
22 MIN_TYPE = TEST_BRAKE | 23 MIN_TYPE = TEST_BRAKE |
23 }; | 24 }; |
24 | 25 |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 // WebMediaPlayerMS::load(). | 267 // WebMediaPlayerMS::load(). |
267 class MockRenderFactory : public MediaStreamRendererFactory { | 268 class MockRenderFactory : public MediaStreamRendererFactory { |
268 public: | 269 public: |
269 MockRenderFactory( | 270 MockRenderFactory( |
270 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, | 271 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
271 ReusableMessageLoopEvent* message_loop_controller) | 272 ReusableMessageLoopEvent* message_loop_controller) |
272 : task_runner_(task_runner), | 273 : task_runner_(task_runner), |
273 message_loop_controller_(message_loop_controller) {} | 274 message_loop_controller_(message_loop_controller) {} |
274 | 275 |
275 scoped_refptr<VideoFrameProvider> GetVideoFrameProvider( | 276 scoped_refptr<VideoFrameProvider> GetVideoFrameProvider( |
276 const GURL& url, | 277 const blink::WebMediaStream& web_stream, |
277 const base::Closure& error_cb, | 278 const base::Closure& error_cb, |
278 const VideoFrameProvider::RepaintCB& repaint_cb, | 279 const VideoFrameProvider::RepaintCB& repaint_cb, |
279 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, | 280 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
280 const scoped_refptr<base::TaskRunner>& worker_task_runner, | 281 const scoped_refptr<base::TaskRunner>& worker_task_runner, |
281 media::GpuVideoAcceleratorFactories* gpu_factories) override; | 282 media::GpuVideoAcceleratorFactories* gpu_factories) override; |
282 | 283 |
283 MockVideoFrameProvider* provider() { | 284 MockVideoFrameProvider* provider() { |
284 return static_cast<MockVideoFrameProvider*>(provider_.get()); | 285 return static_cast<MockVideoFrameProvider*>(provider_.get()); |
285 } | 286 } |
286 | 287 |
287 scoped_refptr<MediaStreamAudioRenderer> GetAudioRenderer( | 288 scoped_refptr<MediaStreamAudioRenderer> GetAudioRenderer( |
288 const GURL& url, | 289 const blink::WebMediaStream& web_stream, |
289 int render_frame_id, | 290 int render_frame_id, |
290 const std::string& device_id, | 291 const std::string& device_id, |
291 const url::Origin& security_origin) override { | 292 const url::Origin& security_origin) override { |
292 return nullptr; | 293 return nullptr; |
293 } | 294 } |
294 | 295 |
295 private: | 296 private: |
296 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 297 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
297 scoped_refptr<VideoFrameProvider> provider_; | 298 scoped_refptr<VideoFrameProvider> provider_; |
298 ReusableMessageLoopEvent* const message_loop_controller_; | 299 ReusableMessageLoopEvent* const message_loop_controller_; |
299 }; | 300 }; |
300 | 301 |
301 scoped_refptr<VideoFrameProvider> MockRenderFactory::GetVideoFrameProvider( | 302 scoped_refptr<VideoFrameProvider> MockRenderFactory::GetVideoFrameProvider( |
302 const GURL& url, | 303 const blink::WebMediaStream& web_stream, |
303 const base::Closure& error_cb, | 304 const base::Closure& error_cb, |
304 const VideoFrameProvider::RepaintCB& repaint_cb, | 305 const VideoFrameProvider::RepaintCB& repaint_cb, |
305 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, | 306 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
306 const scoped_refptr<base::TaskRunner>& worker_task_runner, | 307 const scoped_refptr<base::TaskRunner>& worker_task_runner, |
307 media::GpuVideoAcceleratorFactories* gpu_factories) { | 308 media::GpuVideoAcceleratorFactories* gpu_factories) { |
308 provider_ = new MockVideoFrameProvider(task_runner_, message_loop_controller_, | 309 provider_ = new MockVideoFrameProvider(task_runner_, message_loop_controller_, |
309 error_cb, repaint_cb); | 310 error_cb, repaint_cb); |
310 | 311 |
311 return provider_; | 312 return provider_; |
312 } | 313 } |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 | 430 |
430 MockVideoFrameProvider* WebMediaPlayerMSTest::LoadAndGetFrameProvider( | 431 MockVideoFrameProvider* WebMediaPlayerMSTest::LoadAndGetFrameProvider( |
431 bool algorithm_enabled) { | 432 bool algorithm_enabled) { |
432 EXPECT_FALSE(!!render_factory_->provider()) << "There should not be a " | 433 EXPECT_FALSE(!!render_factory_->provider()) << "There should not be a " |
433 "FrameProvider yet."; | 434 "FrameProvider yet."; |
434 | 435 |
435 EXPECT_CALL( | 436 EXPECT_CALL( |
436 *this, DoNetworkStateChanged(blink::WebMediaPlayer::NetworkStateLoading)); | 437 *this, DoNetworkStateChanged(blink::WebMediaPlayer::NetworkStateLoading)); |
437 EXPECT_CALL( | 438 EXPECT_CALL( |
438 *this, DoReadyStateChanged(blink::WebMediaPlayer::ReadyStateHaveNothing)); | 439 *this, DoReadyStateChanged(blink::WebMediaPlayer::ReadyStateHaveNothing)); |
439 player_.load(blink::WebMediaPlayer::LoadTypeURL, blink::WebURL(), | 440 player_.load(blink::WebMediaPlayer::LoadTypeURL, |
| 441 blink::WebMediaPlayerSource(), |
440 blink::WebMediaPlayer::CORSModeUnspecified); | 442 blink::WebMediaPlayer::CORSModeUnspecified); |
441 compositor_ = player_.compositor_.get(); | 443 compositor_ = player_.compositor_.get(); |
442 EXPECT_TRUE(!!compositor_); | 444 EXPECT_TRUE(!!compositor_); |
443 compositor_->SetAlgorithmEnabledForTesting(algorithm_enabled); | 445 compositor_->SetAlgorithmEnabledForTesting(algorithm_enabled); |
444 | 446 |
445 MockVideoFrameProvider* const provider = render_factory_->provider(); | 447 MockVideoFrameProvider* const provider = render_factory_->provider(); |
446 EXPECT_TRUE(!!provider); | 448 EXPECT_TRUE(!!provider); |
447 EXPECT_TRUE(provider->Started()); | 449 EXPECT_TRUE(provider->Started()); |
448 | 450 |
449 testing::Mock::VerifyAndClearExpectations(this); | 451 testing::Mock::VerifyAndClearExpectations(this); |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
748 EXPECT_TRUE(player_.paused()); | 750 EXPECT_TRUE(player_.paused()); |
749 | 751 |
750 // OnShown() should restart after a forced suspension. | 752 // OnShown() should restart after a forced suspension. |
751 player_.OnShown(); | 753 player_.OnShown(); |
752 EXPECT_FALSE(player_.paused()); | 754 EXPECT_FALSE(player_.paused()); |
753 EXPECT_CALL(*this, DoSetWebLayer(false)); | 755 EXPECT_CALL(*this, DoSetWebLayer(false)); |
754 } | 756 } |
755 #endif | 757 #endif |
756 | 758 |
757 } // namespace content | 759 } // namespace content |
OLD | NEW |