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 "base/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "base/single_thread_task_runner.h" |
8 #include "content/public/renderer/media_stream_renderer_factory.h" | 9 #include "content/public/renderer/media_stream_renderer_factory.h" |
9 #include "content/renderer/media/webmediaplayer_ms.h" | 10 #include "content/renderer/media/webmediaplayer_ms.h" |
10 #include "content/renderer/media/webmediaplayer_ms_compositor.h" | 11 #include "content/renderer/media/webmediaplayer_ms_compositor.h" |
11 #include "content/renderer/render_frame_impl.h" | 12 #include "content/renderer/render_frame_impl.h" |
12 #include "media/base/test_helpers.h" | 13 #include "media/base/test_helpers.h" |
13 #include "media/base/video_frame.h" | 14 #include "media/base/video_frame.h" |
14 #include "third_party/WebKit/public/platform/WebMediaPlayer.h" | 15 #include "third_party/WebKit/public/platform/WebMediaPlayer.h" |
15 #include "third_party/WebKit/public/platform/WebMediaPlayerClient.h" | 16 #include "third_party/WebKit/public/platform/WebMediaPlayerClient.h" |
16 #include "third_party/WebKit/public/platform/WebMediaPlayerSource.h" | 17 #include "third_party/WebKit/public/platform/WebMediaPlayerSource.h" |
17 | 18 |
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 } | 505 } |
505 | 506 |
506 void WebMediaPlayerMSTest::StopUsingProvider() { | 507 void WebMediaPlayerMSTest::StopUsingProvider() { |
507 if (rendering_) | 508 if (rendering_) |
508 StopRendering(); | 509 StopRendering(); |
509 } | 510 } |
510 | 511 |
511 void WebMediaPlayerMSTest::StartRendering() { | 512 void WebMediaPlayerMSTest::StartRendering() { |
512 if (!rendering_) { | 513 if (!rendering_) { |
513 rendering_ = true; | 514 rendering_ = true; |
514 message_loop_.PostTask( | 515 message_loop_.task_runner()->PostTask( |
515 FROM_HERE, | 516 FROM_HERE, |
516 base::Bind(&WebMediaPlayerMSTest::RenderFrame, base::Unretained(this))); | 517 base::Bind(&WebMediaPlayerMSTest::RenderFrame, base::Unretained(this))); |
517 } | 518 } |
518 DoStartRendering(); | 519 DoStartRendering(); |
519 } | 520 } |
520 | 521 |
521 void WebMediaPlayerMSTest::StopRendering() { | 522 void WebMediaPlayerMSTest::StopRendering() { |
522 rendering_ = false; | 523 rendering_ = false; |
523 DoStopRendering(); | 524 DoStopRendering(); |
524 } | 525 } |
525 | 526 |
526 void WebMediaPlayerMSTest::RenderFrame() { | 527 void WebMediaPlayerMSTest::RenderFrame() { |
527 if (!rendering_ || !compositor_) | 528 if (!rendering_ || !compositor_) |
528 return; | 529 return; |
529 | 530 |
530 base::TimeTicks now = base::TimeTicks::Now(); | 531 base::TimeTicks now = base::TimeTicks::Now(); |
531 base::TimeTicks deadline_min = | 532 base::TimeTicks deadline_min = |
532 now + base::TimeDelta::FromSecondsD(1.0 / 60.0); | 533 now + base::TimeDelta::FromSecondsD(1.0 / 60.0); |
533 base::TimeTicks deadline_max = | 534 base::TimeTicks deadline_max = |
534 deadline_min + base::TimeDelta::FromSecondsD(1.0 / 60.0); | 535 deadline_min + base::TimeDelta::FromSecondsD(1.0 / 60.0); |
535 | 536 |
536 // Background rendering is different from stop rendering. The rendering loop | 537 // Background rendering is different from stop rendering. The rendering loop |
537 // is still running but we do not ask frames from |compositor_|. And | 538 // is still running but we do not ask frames from |compositor_|. And |
538 // background rendering is not initiated from |compositor_|. | 539 // background rendering is not initiated from |compositor_|. |
539 if (!background_rendering_) { | 540 if (!background_rendering_) { |
540 compositor_->UpdateCurrentFrame(deadline_min, deadline_max); | 541 compositor_->UpdateCurrentFrame(deadline_min, deadline_max); |
541 auto frame = compositor_->GetCurrentFrame(); | 542 auto frame = compositor_->GetCurrentFrame(); |
542 compositor_->PutCurrentFrame(); | 543 compositor_->PutCurrentFrame(); |
543 } | 544 } |
544 message_loop_.PostDelayedTask( | 545 message_loop_.task_runner()->PostDelayedTask( |
545 FROM_HERE, | 546 FROM_HERE, |
546 base::Bind(&WebMediaPlayerMSTest::RenderFrame, base::Unretained(this)), | 547 base::Bind(&WebMediaPlayerMSTest::RenderFrame, base::Unretained(this)), |
547 base::TimeDelta::FromSecondsD(1.0 / 60.0)); | 548 base::TimeDelta::FromSecondsD(1.0 / 60.0)); |
548 } | 549 } |
549 | 550 |
550 void WebMediaPlayerMSTest::sizeChanged() { | 551 void WebMediaPlayerMSTest::sizeChanged() { |
551 gfx::Size frame_size = compositor_->GetCurrentSize(); | 552 gfx::Size frame_size = compositor_->GetCurrentSize(); |
552 CheckSizeChanged(frame_size); | 553 CheckSizeChanged(frame_size); |
553 } | 554 } |
554 | 555 |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
831 // OnShown() should restart after a forced suspension. | 832 // OnShown() should restart after a forced suspension. |
832 player_->OnShown(); | 833 player_->OnShown(); |
833 EXPECT_FALSE(player_->paused()); | 834 EXPECT_FALSE(player_->paused()); |
834 EXPECT_CALL(*this, DoSetWebLayer(false)); | 835 EXPECT_CALL(*this, DoSetWebLayer(false)); |
835 | 836 |
836 message_loop_.RunUntilIdle(); | 837 message_loop_.RunUntilIdle(); |
837 } | 838 } |
838 #endif | 839 #endif |
839 | 840 |
840 } // namespace content | 841 } // namespace content |
OLD | NEW |