Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Unified Diff: media/mojo/services/service_factory_impl.cc

Issue 2016053003: Add audio_device_id in mojo media ServiceFactory CreateRenderer api. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Fix compile error Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_) {

Powered by Google App Engine
This is Rietveld 408576698