summaryrefslogtreecommitdiffstats
path: root/media/mojo/services/mojo_media_application.cc
diff options
context:
space:
mode:
authorxhwang <xhwang@chromium.org>2015-07-08 12:55:02 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-08 19:55:57 +0000
commitc4e00d2b1bbf031a925e1141344c8da3d48462a2 (patch)
treed798b008e5481f576b4568f7f7408383dff40778 /media/mojo/services/mojo_media_application.cc
parente419c8902db6fec99d6777d3962778aee948cde0 (diff)
downloadchromium_src-c4e00d2b1bbf031a925e1141344c8da3d48462a2.zip
chromium_src-c4e00d2b1bbf031a925e1141344c8da3d48462a2.tar.gz
chromium_src-c4e00d2b1bbf031a925e1141344c8da3d48462a2.tar.bz2
media: Support RendererFactory in MojoMediaClient.
The embedder can choose to use a customized RendererFactory, or use RendererImpl with customized audio/video decoders. By default, we use DefaultRendererFactory. Also replace LogCB with MediaLog in various places. BUG=495273,499628 Review URL: https://codereview.chromium.org/1209363004 Cr-Commit-Position: refs/heads/master@{#337888}
Diffstat (limited to 'media/mojo/services/mojo_media_application.cc')
-rw-r--r--media/mojo/services/mojo_media_application.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/media/mojo/services/mojo_media_application.cc b/media/mojo/services/mojo_media_application.cc
index 72871e8..6ecb089 100644
--- a/media/mojo/services/mojo_media_application.cc
+++ b/media/mojo/services/mojo_media_application.cc
@@ -5,7 +5,10 @@
#include "media/mojo/services/mojo_media_application.h"
#include "base/logging.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 "mojo/application/public/cpp/application_connection.h"
#include "mojo/application/public/cpp/application_impl.h"
@@ -24,7 +27,8 @@ scoped_ptr<mojo::ApplicationDelegate> MojoMediaApplication::CreateApp() {
return scoped_ptr<mojo::ApplicationDelegate>(new MojoMediaApplication());
}
-MojoMediaApplication::MojoMediaApplication() {
+// TODO(xhwang): Hook up MediaLog when possible.
+MojoMediaApplication::MojoMediaApplication() : media_log_(new MediaLog()) {
}
MojoMediaApplication::~MojoMediaApplication() {
@@ -56,7 +60,14 @@ void MojoMediaApplication::Create(
mojo::ApplicationConnection* connection,
mojo::InterfaceRequest<mojo::MediaRenderer> request) {
// The created object is owned by the pipe.
- new MojoRendererService(&cdm_service_context_, request.Pass());
+ new MojoRendererService(&cdm_service_context_, GetRendererFactory(),
+ media_log_, request.Pass());
+}
+
+RendererFactory* MojoMediaApplication::GetRendererFactory() {
+ if (!renderer_factory_)
+ renderer_factory_ = MojoMediaClient::Get()->GetRendererFactory(media_log_);
+ return renderer_factory_.get();
}
} // namespace media