| 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 |