diff options
author | xhwang <xhwang@chromium.org> | 2015-07-08 12:55:02 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-08 19:55:57 +0000 |
commit | c4e00d2b1bbf031a925e1141344c8da3d48462a2 (patch) | |
tree | d798b008e5481f576b4568f7f7408383dff40778 /media/mojo/services/mojo_media_application.cc | |
parent | e419c8902db6fec99d6777d3962778aee948cde0 (diff) | |
download | chromium_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.cc | 15 |
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 |