diff options
Diffstat (limited to 'chromium/media/mojo/services/mojo_media_application.cc')
-rw-r--r-- | chromium/media/mojo/services/mojo_media_application.cc | 43 |
1 files changed, 10 insertions, 33 deletions
diff --git a/chromium/media/mojo/services/mojo_media_application.cc b/chromium/media/mojo/services/mojo_media_application.cc index ecadb591090..566f43f3640 100644 --- a/chromium/media/mojo/services/mojo_media_application.cc +++ b/chromium/media/mojo/services/mojo_media_application.cc @@ -5,12 +5,8 @@ #include "media/mojo/services/mojo_media_application.h" #include "base/logging.h" -#include "media/base/cdm_factory.h" #include "media/base/media_log.h" -#include "media/base/renderer_factory.h" -#include "media/mojo/services/mojo_cdm_service.h" -#include "media/mojo/services/mojo_media_client.h" -#include "media/mojo/services/mojo_renderer_service.h" +#include "media/mojo/services/service_factory_impl.h" #include "mojo/application/public/cpp/application_connection.h" #include "mojo/application/public/cpp/application_impl.h" @@ -29,13 +25,15 @@ scoped_ptr<mojo::ApplicationDelegate> MojoMediaApplication::CreateApp() { } // TODO(xhwang): Hook up MediaLog when possible. -MojoMediaApplication::MojoMediaApplication() : media_log_(new MediaLog()) { -} +MojoMediaApplication::MojoMediaApplication() + : app_impl_(nullptr), media_log_(new MediaLog()) {} MojoMediaApplication::~MojoMediaApplication() { } void MojoMediaApplication::Initialize(mojo::ApplicationImpl* app) { + app_impl_ = app; + logging::LoggingSettings settings; settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; logging::InitLogging(settings); @@ -45,38 +43,17 @@ void MojoMediaApplication::Initialize(mojo::ApplicationImpl* app) { bool MojoMediaApplication::ConfigureIncomingConnection( mojo::ApplicationConnection* connection) { - connection->AddService<mojo::ContentDecryptionModule>(this); - connection->AddService<mojo::MediaRenderer>(this); + connection->AddService<interfaces::ServiceFactory>(this); return true; } void MojoMediaApplication::Create( mojo::ApplicationConnection* connection, - mojo::InterfaceRequest<mojo::ContentDecryptionModule> request) { + mojo::InterfaceRequest<interfaces::ServiceFactory> request) { // The created object is owned by the pipe. - new MojoCdmService(&cdm_service_context_, connection->GetServiceProvider(), - GetCdmFactory(), request.Pass()); -} - -void MojoMediaApplication::Create( - mojo::ApplicationConnection* connection, - mojo::InterfaceRequest<mojo::MediaRenderer> request) { - // The created object is owned by the pipe. - new MojoRendererService(&cdm_service_context_, GetRendererFactory(), - media_log_, request.Pass()); -} - -RendererFactory* MojoMediaApplication::GetRendererFactory() { - if (!renderer_factory_) - renderer_factory_ = - MojoMediaClient::Get()->CreateRendererFactory(media_log_); - return renderer_factory_.get(); -} - -CdmFactory* MojoMediaApplication::GetCdmFactory() { - if (!cdm_factory_) - cdm_factory_ = MojoMediaClient::Get()->CreateCdmFactory(); - return cdm_factory_.get(); + new ServiceFactoryImpl(request.Pass(), connection->GetServiceProvider(), + media_log_, + app_impl_->app_lifetime_helper()->CreateAppRefCount()); } } // namespace media |