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

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

Issue 2348603002: [chromecast] Track MediaPipelineBackend used by CastRenderer. (Closed)
Patch Set: 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/audio_renderer_sink.h"
10 #include "media/base/cdm_factory.h" 10 #include "media/base/cdm_factory.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 ~CastAudioRendererSink() final {} 48 ~CastAudioRendererSink() final {}
49 49
50 std::string device_id_; 50 std::string device_id_;
51 DISALLOW_COPY_AND_ASSIGN(CastAudioRendererSink); 51 DISALLOW_COPY_AND_ASSIGN(CastAudioRendererSink);
52 }; 52 };
53 53
54 class CastRendererFactory : public ::media::RendererFactory { 54 class CastRendererFactory : public ::media::RendererFactory {
55 public: 55 public:
56 CastRendererFactory(const CreateMediaPipelineBackendCB& create_backend_cb, 56 CastRendererFactory(const CreateMediaPipelineBackendCB& create_backend_cb,
57 const scoped_refptr<::media::MediaLog>& media_log, 57 const scoped_refptr<::media::MediaLog>& media_log,
58 VideoResolutionPolicy* video_resolution_policy) 58 VideoResolutionPolicy* video_resolution_policy,
59 MediaResourceTracker* media_resource_tracker)
59 : create_backend_cb_(create_backend_cb), 60 : create_backend_cb_(create_backend_cb),
60 media_log_(media_log), 61 media_log_(media_log),
61 video_resolution_policy_(video_resolution_policy) {} 62 video_resolution_policy_(video_resolution_policy),
63 media_resource_tracker_(media_resource_tracker) {}
62 ~CastRendererFactory() final {} 64 ~CastRendererFactory() final {}
63 65
64 std::unique_ptr<::media::Renderer> CreateRenderer( 66 std::unique_ptr<::media::Renderer> CreateRenderer(
65 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, 67 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
66 const scoped_refptr<base::TaskRunner>& worker_task_runner, 68 const scoped_refptr<base::TaskRunner>& worker_task_runner,
67 ::media::AudioRendererSink* audio_renderer_sink, 69 ::media::AudioRendererSink* audio_renderer_sink,
68 ::media::VideoRendererSink* video_renderer_sink, 70 ::media::VideoRendererSink* video_renderer_sink,
69 const ::media::RequestSurfaceCB& request_surface_cb) final { 71 const ::media::RequestSurfaceCB& request_surface_cb) final {
70 DCHECK(audio_renderer_sink); 72 DCHECK(audio_renderer_sink);
71 DCHECK(!video_renderer_sink); 73 DCHECK(!video_renderer_sink);
72 return base::MakeUnique<CastRenderer>( 74 return base::MakeUnique<CastRenderer>(
73 create_backend_cb_, media_task_runner, 75 create_backend_cb_, media_task_runner,
74 audio_renderer_sink->GetOutputDeviceInfo().device_id(), 76 audio_renderer_sink->GetOutputDeviceInfo().device_id(),
75 video_resolution_policy_); 77 video_resolution_policy_, media_resource_tracker_);
76 } 78 }
77 79
78 private: 80 private:
79 const CreateMediaPipelineBackendCB create_backend_cb_; 81 const CreateMediaPipelineBackendCB create_backend_cb_;
80 scoped_refptr<::media::MediaLog> media_log_; 82 scoped_refptr<::media::MediaLog> media_log_;
81 VideoResolutionPolicy* video_resolution_policy_; 83 VideoResolutionPolicy* video_resolution_policy_;
84 MediaResourceTracker* media_resource_tracker_;
82 DISALLOW_COPY_AND_ASSIGN(CastRendererFactory); 85 DISALLOW_COPY_AND_ASSIGN(CastRendererFactory);
83 }; 86 };
84 } // namespace 87 } // namespace
85 88
86 CastMojoMediaClient::CastMojoMediaClient( 89 CastMojoMediaClient::CastMojoMediaClient(
87 const CreateMediaPipelineBackendCB& create_backend_cb, 90 const CreateMediaPipelineBackendCB& create_backend_cb,
88 const CreateCdmFactoryCB& create_cdm_factory_cb, 91 const CreateCdmFactoryCB& create_cdm_factory_cb,
89 VideoResolutionPolicy* video_resolution_policy) 92 VideoResolutionPolicy* video_resolution_policy,
93 MediaResourceTracker* media_resource_tracker)
90 : create_backend_cb_(create_backend_cb), 94 : create_backend_cb_(create_backend_cb),
91 create_cdm_factory_cb_(create_cdm_factory_cb), 95 create_cdm_factory_cb_(create_cdm_factory_cb),
92 video_resolution_policy_(video_resolution_policy) {} 96 video_resolution_policy_(video_resolution_policy),
97 media_resource_tracker_(media_resource_tracker) {}
93 98
94 CastMojoMediaClient::~CastMojoMediaClient() {} 99 CastMojoMediaClient::~CastMojoMediaClient() {}
95 100
96 scoped_refptr<::media::AudioRendererSink> 101 scoped_refptr<::media::AudioRendererSink>
97 CastMojoMediaClient::CreateAudioRendererSink( 102 CastMojoMediaClient::CreateAudioRendererSink(
98 const std::string& audio_device_id) { 103 const std::string& audio_device_id) {
99 return new CastAudioRendererSink(audio_device_id); 104 return new CastAudioRendererSink(audio_device_id);
100 } 105 }
101 106
102 std::unique_ptr<::media::RendererFactory> 107 std::unique_ptr<::media::RendererFactory>
103 CastMojoMediaClient::CreateRendererFactory( 108 CastMojoMediaClient::CreateRendererFactory(
104 const scoped_refptr<::media::MediaLog>& media_log) { 109 const scoped_refptr<::media::MediaLog>& media_log) {
105 return base::MakeUnique<CastRendererFactory>(create_backend_cb_, media_log, 110 return base::MakeUnique<CastRendererFactory>(create_backend_cb_, media_log,
106 video_resolution_policy_); 111 video_resolution_policy_,
112 media_resource_tracker_);
107 } 113 }
108 114
109 std::unique_ptr<::media::CdmFactory> CastMojoMediaClient::CreateCdmFactory( 115 std::unique_ptr<::media::CdmFactory> CastMojoMediaClient::CreateCdmFactory(
110 ::shell::mojom::InterfaceProvider* interface_provider) { 116 ::shell::mojom::InterfaceProvider* interface_provider) {
111 return create_cdm_factory_cb_.Run(); 117 return create_cdm_factory_cb_.Run();
112 } 118 }
113 119
114 } // namespace media 120 } // namespace media
115 } // namespace chromecast 121 } // namespace chromecast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698