OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
9 #include "base/strings/string_split.h" | 9 #include "base/strings/string_split.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
11 #include "build/build_config.h" | 11 #include "build/build_config.h" |
12 #include "media/base/cdm_callback_promise.h" | 12 #include "media/base/cdm_callback_promise.h" |
13 #include "media/base/cdm_context.h" | 13 #include "media/base/cdm_context.h" |
14 #include "media/base/cdm_key_information.h" | 14 #include "media/base/cdm_key_information.h" |
15 #include "media/base/decoder_buffer.h" | 15 #include "media/base/decoder_buffer.h" |
16 #include "media/base/media.h" | 16 #include "media/base/media.h" |
17 #include "media/base/media_keys.h" | 17 #include "media/base/media_keys.h" |
18 #include "media/base/media_switches.h" | 18 #include "media/base/media_switches.h" |
19 #include "media/base/test_data_util.h" | 19 #include "media/base/test_data_util.h" |
20 #include "media/cdm/aes_decryptor.h" | 20 #include "media/cdm/aes_decryptor.h" |
21 #include "media/cdm/json_web_key.h" | 21 #include "media/cdm/json_web_key.h" |
22 #include "media/filters/chunk_demuxer.h" | 22 #include "media/filters/chunk_demuxer.h" |
23 #include "media/renderers/renderer_impl.h" | 23 #include "media/renderers/renderer_impl.h" |
24 #include "media/test/pipeline_integration_test_base.h" | 24 #include "media/test/pipeline_integration_test_base.h" |
25 #include "testing/gmock/include/gmock/gmock.h" | 25 #include "testing/gmock/include/gmock/gmock.h" |
26 #include "url/gurl.h" | 26 #include "url/gurl.h" |
27 | 27 |
28 #if defined(MOJO_RENDERER) | 28 #if defined(MOJO_RENDERER) |
| 29 #include "media/mojo/interfaces/media_renderer.mojom.h" |
| 30 #include "media/mojo/interfaces/service_factory.mojom.h" |
29 #include "media/mojo/services/mojo_renderer_impl.h" | 31 #include "media/mojo/services/mojo_renderer_impl.h" |
30 #include "mojo/application/public/cpp/application_impl.h" | 32 #include "mojo/application/public/cpp/application_impl.h" |
31 #include "mojo/application/public/cpp/application_test_base.h" | 33 #include "mojo/application/public/cpp/application_test_base.h" |
32 #include "mojo/application/public/cpp/connect.h" | 34 #include "mojo/application/public/cpp/connect.h" |
33 | 35 |
34 // TODO(dalecurtis): The mojo renderer is in another process, so we have no way | 36 // TODO(dalecurtis): The mojo renderer is in another process, so we have no way |
35 // currently to get hashes for video and audio samples. This also means that | 37 // currently to get hashes for video and audio samples. This also means that |
36 // real audio plays out for each test. | 38 // real audio plays out for each test. |
37 #define EXPECT_HASH_EQ(a, b) | 39 #define EXPECT_HASH_EQ(a, b) |
38 #define EXPECT_VIDEO_FORMAT_EQ(a, b) | 40 #define EXPECT_VIDEO_FORMAT_EQ(a, b) |
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
612 | 614 |
613 protected: | 615 protected: |
614 scoped_ptr<Renderer> CreateRenderer() override { | 616 scoped_ptr<Renderer> CreateRenderer() override { |
615 mojo::URLRequestPtr request(mojo::URLRequest::New()); | 617 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
616 request->url = mojo::String::From("mojo:media"); | 618 request->url = mojo::String::From("mojo:media"); |
617 mojo::ServiceProvider* service_provider = | 619 mojo::ServiceProvider* service_provider = |
618 application_impl() | 620 application_impl() |
619 ->ConnectToApplication(request.Pass()) | 621 ->ConnectToApplication(request.Pass()) |
620 ->GetServiceProvider(); | 622 ->GetServiceProvider(); |
621 | 623 |
| 624 mojo::ConnectToService(service_provider, &media_service_factory_); |
| 625 |
622 interfaces::MediaRendererPtr mojo_media_renderer; | 626 interfaces::MediaRendererPtr mojo_media_renderer; |
623 mojo::ConnectToService(service_provider, &mojo_media_renderer); | 627 media_service_factory_->CreateRenderer( |
| 628 mojo::GetProxy(&mojo_media_renderer)); |
| 629 |
624 return make_scoped_ptr(new MojoRendererImpl(message_loop_.task_runner(), | 630 return make_scoped_ptr(new MojoRendererImpl(message_loop_.task_runner(), |
625 mojo_media_renderer.Pass())); | 631 mojo_media_renderer.Pass())); |
626 } | 632 } |
| 633 |
| 634 private: |
| 635 interfaces::ServiceFactoryPtr media_service_factory_; |
627 }; | 636 }; |
628 #else | 637 #else |
629 class PipelineIntegrationTestHost : public testing::Test, | 638 class PipelineIntegrationTestHost : public testing::Test, |
630 public PipelineIntegrationTestBase {}; | 639 public PipelineIntegrationTestBase {}; |
631 #endif | 640 #endif |
632 | 641 |
633 class PipelineIntegrationTest : public PipelineIntegrationTestHost { | 642 class PipelineIntegrationTest : public PipelineIntegrationTestHost { |
634 public: | 643 public: |
635 void StartPipelineWithMediaSource(MockMediaSource* source) { | 644 void StartPipelineWithMediaSource(MockMediaSource* source) { |
636 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1)); | 645 EXPECT_CALL(*source, InitSegmentReceived()).Times(AtLeast(1)); |
(...skipping 1079 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1716 | 1725 |
1717 TEST_F(PipelineIntegrationTest, BasicPlaybackPositiveStartTime) { | 1726 TEST_F(PipelineIntegrationTest, BasicPlaybackPositiveStartTime) { |
1718 ASSERT_EQ(PIPELINE_OK, Start("nonzero-start-time.webm")); | 1727 ASSERT_EQ(PIPELINE_OK, Start("nonzero-start-time.webm")); |
1719 Play(); | 1728 Play(); |
1720 ASSERT_TRUE(WaitUntilOnEnded()); | 1729 ASSERT_TRUE(WaitUntilOnEnded()); |
1721 ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000), | 1730 ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000), |
1722 demuxer_->GetStartTime()); | 1731 demuxer_->GetStartTime()); |
1723 } | 1732 } |
1724 | 1733 |
1725 } // namespace media | 1734 } // namespace media |
OLD | NEW |