Chromium Code Reviews| Index: media/mojo/services/service_factory_impl.cc |
| diff --git a/media/mojo/services/service_factory_impl.cc b/media/mojo/services/service_factory_impl.cc |
| index ce1f2194a92a8160d74bad0afeec95e42d45012a..2ffb6af0c65576969418fab4d89de6ee41f5e778 100644 |
| --- a/media/mojo/services/service_factory_impl.cc |
| +++ b/media/mojo/services/service_factory_impl.cc |
| @@ -6,6 +6,7 @@ |
| #include "base/logging.h" |
| #include "base/message_loop/message_loop.h" |
| +#include "media/audio/audio_device_description.h" |
| #include "media/base/media_log.h" |
| #include "media/mojo/services/mojo_media_client.h" |
| #include "services/shell/public/interfaces/interface_provider.mojom.h" |
| @@ -81,24 +82,20 @@ void ServiceFactoryImpl::CreateVideoDecoder( |
| } |
| void ServiceFactoryImpl::CreateRenderer( |
| - mojo::InterfaceRequest<mojom::Renderer> request) { |
| + mojo::InterfaceRequest<mojom::Renderer> request, |
| + const mojo::String& audio_device_id) { |
| #if defined(ENABLE_MOJO_RENDERER) |
| // The created object is owned by the pipe. |
| // The audio and video sinks are owned by the client. |
| + std::string device_id = audio_device_id.get(); |
|
alokp
2016/06/02 04:47:55
nit: device_id = audio_device_id.is_null() ? Audio
tianyuwang1
2016/06/02 05:18:39
Done.
|
| + if (audio_device_id.is_null()) |
| + device_id = AudioDeviceDescription::kDefaultDeviceId; |
| + |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner( |
| base::MessageLoop::current()->task_runner()); |
| - AudioRendererSink* audio_renderer_sink = |
| - mojo_media_client_->CreateAudioRendererSink(); |
| - VideoRendererSink* video_renderer_sink = |
| - mojo_media_client_->CreateVideoRendererSink(task_runner); |
| - |
| - RendererFactory* renderer_factory = GetRendererFactory(); |
| - if (!renderer_factory) |
| - return; |
| - std::unique_ptr<Renderer> renderer = renderer_factory->CreateRenderer( |
| - task_runner, task_runner, audio_renderer_sink, video_renderer_sink, |
| - RequestSurfaceCB()); |
| + std::unique_ptr<Renderer> renderer = |
| + mojo_media_client_->CreateRenderer(task_runner, media_log_, device_id); |
| if (!renderer) { |
| LOG(ERROR) << "Renderer creation failed."; |
| return; |
| @@ -122,16 +119,6 @@ void ServiceFactoryImpl::CreateCdm( |
| #endif // defined(ENABLE_MOJO_CDM) |
| } |
| -#if defined(ENABLE_MOJO_RENDERER) |
| -RendererFactory* ServiceFactoryImpl::GetRendererFactory() { |
| - if (!renderer_factory_) { |
| - renderer_factory_ = mojo_media_client_->CreateRendererFactory(media_log_); |
| - LOG_IF(ERROR, !renderer_factory_) << "RendererFactory not available."; |
| - } |
| - return renderer_factory_.get(); |
| -} |
| -#endif // defined(ENABLE_MOJO_RENDERER) |
| - |
| #if defined(ENABLE_MOJO_CDM) |
| CdmFactory* ServiceFactoryImpl::GetCdmFactory() { |
| if (!cdm_factory_) { |