OLD | NEW |
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/media/service/cast_mojo_media_client.h" | 5 #include "chromecast/media/service/cast_mojo_media_client.h" |
6 | 6 |
7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
8 #include "chromecast/media/cma/backend/media_pipeline_backend_factory.h" | 8 #include "chromecast/media/cma/backend/media_pipeline_backend_factory.h" |
9 #include "chromecast/media/service/cast_renderer.h" | 9 #include "chromecast/media/service/cast_renderer.h" |
10 #include "chromecast/public/media/media_pipeline_backend.h" | 10 #include "chromecast/public/media/media_pipeline_backend.h" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 private: | 50 private: |
51 ~CastAudioRendererSink() final {} | 51 ~CastAudioRendererSink() final {} |
52 | 52 |
53 std::string device_id_; | 53 std::string device_id_; |
54 DISALLOW_COPY_AND_ASSIGN(CastAudioRendererSink); | 54 DISALLOW_COPY_AND_ASSIGN(CastAudioRendererSink); |
55 }; | 55 }; |
56 | 56 |
57 class CastRendererFactory : public ::media::RendererFactory { | 57 class CastRendererFactory : public ::media::RendererFactory { |
58 public: | 58 public: |
59 CastRendererFactory(MediaPipelineBackendFactory* backend_factory, | 59 CastRendererFactory(MediaPipelineBackendFactory* backend_factory, |
60 const scoped_refptr<::media::MediaLog>& media_log, | |
61 VideoModeSwitcher* video_mode_switcher, | 60 VideoModeSwitcher* video_mode_switcher, |
62 VideoResolutionPolicy* video_resolution_policy, | 61 VideoResolutionPolicy* video_resolution_policy, |
63 MediaResourceTracker* media_resource_tracker) | 62 MediaResourceTracker* media_resource_tracker) |
64 : backend_factory_(backend_factory), | 63 : backend_factory_(backend_factory), |
65 media_log_(media_log), | |
66 video_mode_switcher_(video_mode_switcher), | 64 video_mode_switcher_(video_mode_switcher), |
67 video_resolution_policy_(video_resolution_policy), | 65 video_resolution_policy_(video_resolution_policy), |
68 media_resource_tracker_(media_resource_tracker) {} | 66 media_resource_tracker_(media_resource_tracker) {} |
69 ~CastRendererFactory() final {} | 67 ~CastRendererFactory() final {} |
70 | 68 |
71 std::unique_ptr<::media::Renderer> CreateRenderer( | 69 std::unique_ptr<::media::Renderer> CreateRenderer( |
72 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, | 70 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
73 const scoped_refptr<base::TaskRunner>& worker_task_runner, | 71 const scoped_refptr<base::TaskRunner>& worker_task_runner, |
74 ::media::AudioRendererSink* audio_renderer_sink, | 72 ::media::AudioRendererSink* audio_renderer_sink, |
75 ::media::VideoRendererSink* video_renderer_sink, | 73 ::media::VideoRendererSink* video_renderer_sink, |
76 const ::media::RequestSurfaceCB& request_surface_cb) final { | 74 const ::media::RequestSurfaceCB& request_surface_cb) final { |
77 DCHECK(audio_renderer_sink); | 75 DCHECK(audio_renderer_sink); |
78 DCHECK(!video_renderer_sink); | 76 DCHECK(!video_renderer_sink); |
79 return base::MakeUnique<CastRenderer>( | 77 return base::MakeUnique<CastRenderer>( |
80 backend_factory_, media_task_runner, | 78 backend_factory_, media_task_runner, |
81 audio_renderer_sink->GetOutputDeviceInfo().device_id(), | 79 audio_renderer_sink->GetOutputDeviceInfo().device_id(), |
82 video_mode_switcher_, video_resolution_policy_, | 80 video_mode_switcher_, video_resolution_policy_, |
83 media_resource_tracker_); | 81 media_resource_tracker_); |
84 } | 82 } |
85 | 83 |
86 private: | 84 private: |
87 MediaPipelineBackendFactory* const backend_factory_; | 85 MediaPipelineBackendFactory* const backend_factory_; |
88 scoped_refptr<::media::MediaLog> media_log_; | |
89 VideoModeSwitcher* video_mode_switcher_; | 86 VideoModeSwitcher* video_mode_switcher_; |
90 VideoResolutionPolicy* video_resolution_policy_; | 87 VideoResolutionPolicy* video_resolution_policy_; |
91 MediaResourceTracker* media_resource_tracker_; | 88 MediaResourceTracker* media_resource_tracker_; |
92 DISALLOW_COPY_AND_ASSIGN(CastRendererFactory); | 89 DISALLOW_COPY_AND_ASSIGN(CastRendererFactory); |
93 }; | 90 }; |
94 } // namespace | 91 } // namespace |
95 | 92 |
96 CastMojoMediaClient::CastMojoMediaClient( | 93 CastMojoMediaClient::CastMojoMediaClient( |
97 MediaPipelineBackendFactory* backend_factory, | 94 MediaPipelineBackendFactory* backend_factory, |
98 const CreateCdmFactoryCB& create_cdm_factory_cb, | 95 const CreateCdmFactoryCB& create_cdm_factory_cb, |
(...skipping 17 matching lines...) Expand all Loading... |
116 connector_ = connector; | 113 connector_ = connector; |
117 } | 114 } |
118 | 115 |
119 scoped_refptr<::media::AudioRendererSink> | 116 scoped_refptr<::media::AudioRendererSink> |
120 CastMojoMediaClient::CreateAudioRendererSink( | 117 CastMojoMediaClient::CreateAudioRendererSink( |
121 const std::string& audio_device_id) { | 118 const std::string& audio_device_id) { |
122 return new CastAudioRendererSink(audio_device_id); | 119 return new CastAudioRendererSink(audio_device_id); |
123 } | 120 } |
124 | 121 |
125 std::unique_ptr<::media::RendererFactory> | 122 std::unique_ptr<::media::RendererFactory> |
126 CastMojoMediaClient::CreateRendererFactory( | 123 CastMojoMediaClient::CreateRendererFactory(::media::MediaLog* /* media_log */) { |
127 const scoped_refptr<::media::MediaLog>& media_log) { | |
128 return base::MakeUnique<CastRendererFactory>( | 124 return base::MakeUnique<CastRendererFactory>( |
129 backend_factory_, media_log, video_mode_switcher_, | 125 backend_factory_, video_mode_switcher_, video_resolution_policy_, |
130 video_resolution_policy_, media_resource_tracker_); | 126 media_resource_tracker_); |
131 } | 127 } |
132 | 128 |
133 std::unique_ptr<::media::CdmFactory> CastMojoMediaClient::CreateCdmFactory( | 129 std::unique_ptr<::media::CdmFactory> CastMojoMediaClient::CreateCdmFactory( |
134 service_manager::mojom::InterfaceProvider* /* host_interfaces */) { | 130 service_manager::mojom::InterfaceProvider* /* host_interfaces */) { |
135 return create_cdm_factory_cb_.Run(); | 131 return create_cdm_factory_cb_.Run(); |
136 } | 132 } |
137 | 133 |
138 } // namespace media | 134 } // namespace media |
139 } // namespace chromecast | 135 } // namespace chromecast |
OLD | NEW |