OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/mojo/services/mojo_renderer_factory.h" | 5 #include "media/mojo/services/mojo_renderer_factory.h" |
6 | 6 |
7 #include "base/single_thread_task_runner.h" | 7 #include "base/single_thread_task_runner.h" |
8 #include "media/mojo/services/mojo_renderer_impl.h" | 8 #include "media/mojo/services/mojo_renderer_impl.h" |
| 9 #include "media/renderers/video_overlay_factory.h" |
9 #include "services/shell/public/cpp/connect.h" | 10 #include "services/shell/public/cpp/connect.h" |
10 #include "services/shell/public/interfaces/interface_provider.mojom.h" | 11 #include "services/shell/public/interfaces/interface_provider.mojom.h" |
11 | 12 |
12 namespace media { | 13 namespace media { |
13 | 14 |
14 MojoRendererFactory::MojoRendererFactory( | 15 MojoRendererFactory::MojoRendererFactory( |
| 16 const GetGpuFactoriesCB& get_gpu_factories_cb, |
15 shell::mojom::InterfaceProvider* interface_provider) | 17 shell::mojom::InterfaceProvider* interface_provider) |
16 : interface_provider_(interface_provider) { | 18 : get_gpu_factories_cb_(get_gpu_factories_cb), |
| 19 interface_provider_(interface_provider) { |
| 20 DCHECK(!get_gpu_factories_cb_.is_null()); |
17 DCHECK(interface_provider_); | 21 DCHECK(interface_provider_); |
18 } | 22 } |
19 | 23 |
20 MojoRendererFactory::~MojoRendererFactory() { | 24 MojoRendererFactory::~MojoRendererFactory() { |
21 } | 25 } |
22 | 26 |
23 std::unique_ptr<Renderer> MojoRendererFactory::CreateRenderer( | 27 std::unique_ptr<Renderer> MojoRendererFactory::CreateRenderer( |
24 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, | 28 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
25 const scoped_refptr<base::TaskRunner>& /* worker_task_runner */, | 29 const scoped_refptr<base::TaskRunner>& /* worker_task_runner */, |
26 AudioRendererSink* /* audio_renderer_sink */, | 30 AudioRendererSink* /* audio_renderer_sink */, |
27 VideoRendererSink* /* video_renderer_sink */, | 31 VideoRendererSink* video_renderer_sink, |
28 const RequestSurfaceCB& /* request_surface_cb */) { | 32 const RequestSurfaceCB& /* request_surface_cb */) { |
| 33 std::unique_ptr<VideoOverlayFactory> overlay_factory( |
| 34 new VideoOverlayFactory(get_gpu_factories_cb_.Run())); |
| 35 |
29 mojom::RendererPtr renderer_ptr; | 36 mojom::RendererPtr renderer_ptr; |
30 shell::GetInterface<mojom::Renderer>(interface_provider_, &renderer_ptr); | 37 shell::GetInterface<mojom::Renderer>(interface_provider_, &renderer_ptr); |
31 | 38 |
32 return std::unique_ptr<Renderer>( | 39 return std::unique_ptr<Renderer>( |
33 new MojoRendererImpl(media_task_runner, std::move(renderer_ptr))); | 40 new MojoRendererImpl(media_task_runner, std::move(overlay_factory), |
| 41 video_renderer_sink, std::move(renderer_ptr))); |
34 } | 42 } |
35 | 43 |
36 } // namespace media | 44 } // namespace media |
OLD | NEW |