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..2314e0aafc30c2757fbd35bb4d915ab3f5ec7a00 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.is_null() |
+ ? AudioDeviceDescription::kDefaultDeviceId |
+ : audio_device_id.get(); |
+ |
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_) { |