summaryrefslogtreecommitdiff
path: root/chromium/media/mojo/services/mojo_media_application.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/mojo/services/mojo_media_application.cc')
-rw-r--r--chromium/media/mojo/services/mojo_media_application.cc43
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