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

Side by Side Diff: chromecast/browser/media/cast_mojo_media_client.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: Minor change based on the comment Created 4 years, 5 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/cdm_factory.h" 9 #include "media/base/cdm_factory.h"
10 #include "media/base/media_log.h" 10 #include "media/base/media_log.h"
11 #include "media/base/renderer_factory.h" 11 #include "media/base/renderer_factory.h"
12 12
13 namespace {
14
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::WrapUnique(new 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
40 } // namespace
41
42 namespace chromecast { 13 namespace chromecast {
43 namespace media { 14 namespace media {
44 15
45 CastMojoMediaClient::CastMojoMediaClient( 16 CastMojoMediaClient::CastMojoMediaClient(
46 const CreateMediaPipelineBackendCB& create_backend_cb, 17 const CreateMediaPipelineBackendCB& create_backend_cb,
47 const CreateCdmFactoryCB& create_cdm_factory_cb) 18 const CreateCdmFactoryCB& create_cdm_factory_cb)
48 : create_backend_cb_(create_backend_cb), 19 : create_backend_cb_(create_backend_cb),
49 create_cdm_factory_cb_(create_cdm_factory_cb) {} 20 create_cdm_factory_cb_(create_cdm_factory_cb) {}
50 21
51 CastMojoMediaClient::~CastMojoMediaClient() {} 22 CastMojoMediaClient::~CastMojoMediaClient() {}
52 23
53 std::unique_ptr<::media::RendererFactory> 24 std::unique_ptr<::media::Renderer> CastMojoMediaClient::CreateRenderer(
54 CastMojoMediaClient::CreateRendererFactory( 25 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner,
55 const scoped_refptr<::media::MediaLog>& media_log) { 26 scoped_refptr<::media::MediaLog> media_log,
56 return base::WrapUnique( 27 const std::string& audio_device_id) {
57 new CastRendererFactory(create_backend_cb_, media_log)); 28 return base::MakeUnique<chromecast::media::CastRenderer>(
29 create_backend_cb_, std::move(media_task_runner), audio_device_id);
58 } 30 }
59 31
60 std::unique_ptr<::media::CdmFactory> CastMojoMediaClient::CreateCdmFactory( 32 std::unique_ptr<::media::CdmFactory> CastMojoMediaClient::CreateCdmFactory(
61 ::shell::mojom::InterfaceProvider* interface_provider) { 33 ::shell::mojom::InterfaceProvider* interface_provider) {
62 return create_cdm_factory_cb_.Run(); 34 return create_cdm_factory_cb_.Run();
63 } 35 }
64 36
65 } // namespace media 37 } // namespace media
66 } // namespace chromecast 38 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/media/cast_mojo_media_client.h ('k') | chromecast/browser/media/cast_renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698