| Index: media/mojo/services/mojo_renderer_service.cc
|
| diff --git a/media/mojo/services/mojo_renderer_service.cc b/media/mojo/services/mojo_renderer_service.cc
|
| index 65686a3c2c8bb12f1c1970628e56bdd356ce26d5..966c8e842b3ae1cc5a4803dd997d06ec8f751d1e 100644
|
| --- a/media/mojo/services/mojo_renderer_service.cc
|
| +++ b/media/mojo/services/mojo_renderer_service.cc
|
| @@ -14,6 +14,7 @@
|
| #include "media/base/cdm_context.h"
|
| #include "media/base/decryptor.h"
|
| #include "media/base/media_log.h"
|
| +#include "media/base/renderer_factory.h"
|
| #include "media/base/video_renderer.h"
|
| #include "media/base/video_renderer_sink.h"
|
| #include "media/mojo/services/demuxer_stream_provider_shim.h"
|
| @@ -29,6 +30,8 @@ const int kTimeUpdateIntervalMs = 50;
|
|
|
| MojoRendererService::MojoRendererService(
|
| CdmContextProvider* cdm_context_provider,
|
| + RendererFactory* renderer_factory,
|
| + const scoped_refptr<MediaLog>& media_log,
|
| mojo::InterfaceRequest<mojo::MediaRenderer> request)
|
| : binding_(this, request.Pass()),
|
| cdm_context_provider_(cdm_context_provider),
|
| @@ -40,28 +43,26 @@ MojoRendererService::MojoRendererService(
|
|
|
| scoped_refptr<base::SingleThreadTaskRunner> task_runner(
|
| base::MessageLoop::current()->task_runner());
|
| - scoped_refptr<MediaLog> media_log(new MediaLog());
|
| MojoMediaClient* mojo_media_client = MojoMediaClient::Get();
|
| audio_renderer_sink_ = mojo_media_client->GetAudioRendererSink();
|
| video_renderer_sink_ = mojo_media_client->GetVideoRendererSink(task_runner);
|
|
|
| - scoped_ptr<AudioRenderer> audio_renderer(new AudioRendererImpl(
|
| - task_runner, audio_renderer_sink_.get(),
|
| - mojo_media_client->GetAudioDecoders(task_runner,
|
| - base::Bind(&MediaLog::AddLogEvent,
|
| - media_log)).Pass(),
|
| - mojo_media_client->GetAudioHardwareConfig(), media_log));
|
| -
|
| - scoped_ptr<VideoRenderer> video_renderer(new VideoRendererImpl(
|
| - task_runner, video_renderer_sink_.get(),
|
| - mojo_media_client->GetVideoDecoders(task_runner,
|
| - base::Bind(&MediaLog::AddLogEvent,
|
| - media_log)).Pass(),
|
| - true, nullptr, media_log));
|
| -
|
| // Create renderer.
|
| - renderer_.reset(new RendererImpl(
|
| - task_runner, audio_renderer.Pass(), video_renderer.Pass()));
|
| + if (renderer_factory) {
|
| + renderer_ = renderer_factory->CreateRenderer(
|
| + task_runner, audio_renderer_sink_.get(), video_renderer_sink_.get());
|
| + } else {
|
| + scoped_ptr<AudioRenderer> audio_renderer(new AudioRendererImpl(
|
| + task_runner, audio_renderer_sink_.get(),
|
| + mojo_media_client->GetAudioDecoders(task_runner, media_log).Pass(),
|
| + mojo_media_client->GetAudioHardwareConfig(), media_log));
|
| + scoped_ptr<VideoRenderer> video_renderer(new VideoRendererImpl(
|
| + task_runner, video_renderer_sink_.get(),
|
| + mojo_media_client->GetVideoDecoders(task_runner, media_log).Pass(),
|
| + true, nullptr, media_log));
|
| + renderer_.reset(new RendererImpl(task_runner, audio_renderer.Pass(),
|
| + video_renderer.Pass()));
|
| + }
|
| }
|
|
|
| MojoRendererService::~MojoRendererService() {
|
|
|