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