Index: content/gpu/gpu_process_control_impl.cc |
diff --git a/content/gpu/gpu_process_control_impl.cc b/content/gpu/gpu_process_control_impl.cc |
index f281b05cfbfd90d101d933ff6460584f97616eb8..2941d47e3549b1d1fd9510d25204defef0e4d4bb 100644 |
--- a/content/gpu/gpu_process_control_impl.cc |
+++ b/content/gpu/gpu_process_control_impl.cc |
@@ -6,13 +6,27 @@ |
#if defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) |
#include "base/bind.h" |
-#include "base/bind_helpers.h" |
-#include "media/mojo/services/mojo_media_application_factory.h" |
-#endif |
+#include "base/memory/ptr_util.h" |
+#include "media/mojo/services/gpu_mojo_media_client.h" |
+#include "media/mojo/services/mojo_media_application.h" |
+#include "services/shell/public/cpp/shell_client.h" |
+#endif // defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) |
namespace content { |
-GpuProcessControlImpl::GpuProcessControlImpl() {} |
+namespace { |
+#if defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) |
+std::unique_ptr<shell::ShellClient> CreateMojoMediaApplication( |
+ scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner) { |
+ return base::WrapUnique(new media::MojoMediaApplication( |
+ base::WrapUnique(new media::GpuMojoMediaClient(gpu_task_runner)))); |
+} |
+#endif // defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) |
+} // namespace |
+ |
+GpuProcessControlImpl::GpuProcessControlImpl( |
+ scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner) |
+ : gpu_task_runner_(gpu_task_runner) {} |
GpuProcessControlImpl::~GpuProcessControlImpl() {} |
@@ -20,8 +34,8 @@ void GpuProcessControlImpl::RegisterApplicationFactories( |
ApplicationFactoryMap* factories) { |
#if defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) |
factories->insert(std::make_pair( |
- "mojo:media", base::Bind(&media::CreateMojoMediaApplication))); |
-#endif |
+ "mojo:media", base::Bind(&CreateMojoMediaApplication, gpu_task_runner_))); |
+#endif // defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) |
} |
} // namespace content |