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

Side by Side Diff: chromecast/browser/media/cast_mojo_media_client.cc

Issue 2281843003: Move ownership of audio/video sinks to MojoRendererService. (Closed)
Patch Set: rebase Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "chromecast/browser/media/cast_mojo_media_client.h" 5 #include "chromecast/browser/media/cast_mojo_media_client.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "chromecast/browser/media/cast_renderer.h" 8 #include "chromecast/browser/media/cast_renderer.h"
9 #include "media/base/audio_renderer_sink.h"
9 #include "media/base/cdm_factory.h" 10 #include "media/base/cdm_factory.h"
10 #include "media/base/media_log.h" 11 #include "media/base/media_log.h"
11 #include "media/base/renderer_factory.h" 12 #include "media/base/renderer_factory.h"
12 13
14 namespace {
15 class CastRendererFactory : public media::RendererFactory {
16 public:
17 CastRendererFactory(
18 const chromecast::media::CreateMediaPipelineBackendCB& create_backend_cb,
19 const scoped_refptr<media::MediaLog>& media_log)
20 : create_backend_cb_(create_backend_cb), media_log_(media_log) {}
21 ~CastRendererFactory() final {}
22
23 std::unique_ptr<media::Renderer> CreateRenderer(
24 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
25 const scoped_refptr<base::TaskRunner>& worker_task_runner,
26 media::AudioRendererSink* audio_renderer_sink,
27 media::VideoRendererSink* video_renderer_sink,
28 const media::RequestSurfaceCB& request_surface_cb) final {
29 DCHECK(!audio_renderer_sink && !video_renderer_sink);
30 return base::MakeUnique<chromecast::media::CastRenderer>(
31 create_backend_cb_, media_task_runner, "");
32 }
33
34 private:
35 const chromecast::media::CreateMediaPipelineBackendCB create_backend_cb_;
36 scoped_refptr<media::MediaLog> media_log_;
37 DISALLOW_COPY_AND_ASSIGN(CastRendererFactory);
38 };
39 } // namespace
40
13 namespace chromecast { 41 namespace chromecast {
14 namespace media { 42 namespace media {
15 43
16 CastMojoMediaClient::CastMojoMediaClient( 44 CastMojoMediaClient::CastMojoMediaClient(
17 const CreateMediaPipelineBackendCB& create_backend_cb, 45 const CreateMediaPipelineBackendCB& create_backend_cb,
18 const CreateCdmFactoryCB& create_cdm_factory_cb) 46 const CreateCdmFactoryCB& create_cdm_factory_cb)
19 : create_backend_cb_(create_backend_cb), 47 : create_backend_cb_(create_backend_cb),
20 create_cdm_factory_cb_(create_cdm_factory_cb) {} 48 create_cdm_factory_cb_(create_cdm_factory_cb) {}
21 49
22 CastMojoMediaClient::~CastMojoMediaClient() {} 50 CastMojoMediaClient::~CastMojoMediaClient() {}
23 51
24 std::unique_ptr<::media::Renderer> CastMojoMediaClient::CreateRenderer( 52 scoped_refptr<::media::AudioRendererSink>
25 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner, 53 CastMojoMediaClient::CreateAudioRendererSink(
26 scoped_refptr<::media::MediaLog> media_log,
27 const std::string& audio_device_id) { 54 const std::string& audio_device_id) {
28 return base::MakeUnique<chromecast::media::CastRenderer>( 55 return nullptr;
jrummell 2016/08/30 19:59:59 Do you need this? It looks the same as the base cl
alokp 2016/08/30 20:08:52 I plan to. I need to capture the audio_device_id h
29 create_backend_cb_, std::move(media_task_runner), audio_device_id); 56 }
57
58 std::unique_ptr<::media::RendererFactory>
59 CastMojoMediaClient::CreateRendererFactory(
60 const scoped_refptr<::media::MediaLog>& media_log) {
61 return base::MakeUnique<CastRendererFactory>(create_backend_cb_, media_log);
30 } 62 }
31 63
32 std::unique_ptr<::media::CdmFactory> CastMojoMediaClient::CreateCdmFactory( 64 std::unique_ptr<::media::CdmFactory> CastMojoMediaClient::CreateCdmFactory(
33 ::shell::mojom::InterfaceProvider* interface_provider) { 65 ::shell::mojom::InterfaceProvider* interface_provider) {
34 return create_cdm_factory_cb_.Run(); 66 return create_cdm_factory_cb_.Run();
35 } 67 }
36 68
37 } // namespace media 69 } // namespace media
38 } // namespace chromecast 70 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/media/cast_mojo_media_client.h ('k') | media/mojo/clients/mojo_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698