OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "media/mojo/services/mojo_media_application.h" | 5 #include "media/mojo/services/mojo_media_application.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "media/base/cdm_factory.h" | |
9 #include "media/base/media_log.h" | 8 #include "media/base/media_log.h" |
10 #include "media/base/renderer_factory.h" | 9 #include "media/mojo/services/service_factory_impl.h" |
11 #include "media/mojo/services/mojo_cdm_service.h" | |
12 #include "media/mojo/services/mojo_media_client.h" | |
13 #include "media/mojo/services/mojo_renderer_service.h" | |
14 #include "mojo/application/public/cpp/application_connection.h" | 10 #include "mojo/application/public/cpp/application_connection.h" |
15 #include "mojo/application/public/cpp/application_impl.h" | 11 #include "mojo/application/public/cpp/application_impl.h" |
16 | 12 |
17 namespace media { | 13 namespace media { |
18 | 14 |
19 const char kMojoMediaAppUrl[] = "mojo:media"; | 15 const char kMojoMediaAppUrl[] = "mojo:media"; |
20 | 16 |
21 // static | 17 // static |
22 GURL MojoMediaApplication::AppUrl() { | 18 GURL MojoMediaApplication::AppUrl() { |
23 return GURL(kMojoMediaAppUrl); | 19 return GURL(kMojoMediaAppUrl); |
(...skipping 14 matching lines...) Expand all Loading... |
38 void MojoMediaApplication::Initialize(mojo::ApplicationImpl* app) { | 34 void MojoMediaApplication::Initialize(mojo::ApplicationImpl* app) { |
39 logging::LoggingSettings settings; | 35 logging::LoggingSettings settings; |
40 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; | 36 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; |
41 logging::InitLogging(settings); | 37 logging::InitLogging(settings); |
42 // Display process ID, thread ID and timestamp in logs. | 38 // Display process ID, thread ID and timestamp in logs. |
43 logging::SetLogItems(true, true, true, false); | 39 logging::SetLogItems(true, true, true, false); |
44 } | 40 } |
45 | 41 |
46 bool MojoMediaApplication::ConfigureIncomingConnection( | 42 bool MojoMediaApplication::ConfigureIncomingConnection( |
47 mojo::ApplicationConnection* connection) { | 43 mojo::ApplicationConnection* connection) { |
48 connection->AddService<interfaces::ContentDecryptionModule>(this); | 44 connection->AddService<interfaces::ServiceFactory>(this); |
49 connection->AddService<interfaces::MediaRenderer>(this); | |
50 return true; | 45 return true; |
51 } | 46 } |
52 | 47 |
53 void MojoMediaApplication::Create( | 48 void MojoMediaApplication::Create( |
54 mojo::ApplicationConnection* connection, | 49 mojo::ApplicationConnection* connection, |
55 mojo::InterfaceRequest<interfaces::ContentDecryptionModule> request) { | 50 mojo::InterfaceRequest<interfaces::ServiceFactory> request) { |
56 // The created object is owned by the pipe. | 51 // The created object is owned by the pipe. |
57 new MojoCdmService(&cdm_service_context_, connection->GetServiceProvider(), | 52 new ServiceFactoryImpl(request.Pass(), connection->GetServiceProvider(), |
58 GetCdmFactory(), request.Pass()); | 53 media_log_); |
59 } | |
60 | |
61 void MojoMediaApplication::Create( | |
62 mojo::ApplicationConnection* connection, | |
63 mojo::InterfaceRequest<interfaces::MediaRenderer> request) { | |
64 // The created object is owned by the pipe. | |
65 new MojoRendererService(&cdm_service_context_, GetRendererFactory(), | |
66 media_log_, request.Pass()); | |
67 } | |
68 | |
69 RendererFactory* MojoMediaApplication::GetRendererFactory() { | |
70 if (!renderer_factory_) | |
71 renderer_factory_ = | |
72 MojoMediaClient::Get()->CreateRendererFactory(media_log_); | |
73 return renderer_factory_.get(); | |
74 } | |
75 | |
76 CdmFactory* MojoMediaApplication::GetCdmFactory() { | |
77 if (!cdm_factory_) | |
78 cdm_factory_ = MojoMediaClient::Get()->CreateCdmFactory(); | |
79 return cdm_factory_.get(); | |
80 } | 54 } |
81 | 55 |
82 } // namespace media | 56 } // namespace media |
OLD | NEW |