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

Side by Side Diff: chromecast/media/cdm/browser_cdm_cast.cc

Issue 1553503002: Convert Pass()→std::move() in //chromecast (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 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 "chromecast/media/cdm/browser_cdm_cast.h" 5 #include "chromecast/media/cdm/browser_cdm_cast.h"
6 6
7 #include <utility>
8
7 #include "base/bind.h" 9 #include "base/bind.h"
8 #include "base/location.h" 10 #include "base/location.h"
9 #include "base/single_thread_task_runner.h" 11 #include "base/single_thread_task_runner.h"
10 #include "base/thread_task_runner_handle.h" 12 #include "base/thread_task_runner_handle.h"
11 #include "media/base/cdm_key_information.h" 13 #include "media/base/cdm_key_information.h"
12 #include "media/base/cdm_promise.h" 14 #include "media/base/cdm_promise.h"
13 #include "media/cdm/player_tracker_impl.h" 15 #include "media/cdm/player_tracker_impl.h"
14 16
15 namespace chromecast { 17 namespace chromecast {
16 namespace media { 18 namespace media {
17 19
18 namespace { 20 namespace {
19 21
20 // media::CdmPromiseTemplate implementation that wraps a promise so as to 22 // media::CdmPromiseTemplate implementation that wraps a promise so as to
21 // allow passing to other threads. 23 // allow passing to other threads.
22 template <typename... T> 24 template <typename... T>
23 class CdmPromiseInternal : public ::media::CdmPromiseTemplate<T...> { 25 class CdmPromiseInternal : public ::media::CdmPromiseTemplate<T...> {
24 public: 26 public:
25 CdmPromiseInternal(scoped_ptr<::media::CdmPromiseTemplate<T...>> promise) 27 CdmPromiseInternal(scoped_ptr<::media::CdmPromiseTemplate<T...>> promise)
26 : task_runner_(base::ThreadTaskRunnerHandle::Get()), 28 : task_runner_(base::ThreadTaskRunnerHandle::Get()),
27 promise_(promise.Pass()) { 29 promise_(std::move(promise)) {}
28 }
29 30
30 ~CdmPromiseInternal() final { 31 ~CdmPromiseInternal() final {
31 // Promise must be resolved or rejected before destruction. 32 // Promise must be resolved or rejected before destruction.
32 DCHECK(!promise_); 33 DCHECK(!promise_);
33 } 34 }
34 35
35 // CdmPromiseTemplate<> implementation. 36 // CdmPromiseTemplate<> implementation.
36 void resolve(const T&... result) final; 37 void resolve(const T&... result) final;
37 38
38 void reject(::media::MediaKeys::Exception exception, 39 void reject(::media::MediaKeys::Exception exception,
(...skipping 20 matching lines...) Expand all
59 task_runner_->PostTask( 60 task_runner_->PostTask(
60 FROM_HERE, 61 FROM_HERE,
61 base::Bind(&::media::CdmPromiseTemplate<T...>::resolve, 62 base::Bind(&::media::CdmPromiseTemplate<T...>::resolve,
62 base::Owned(promise_.release()), 63 base::Owned(promise_.release()),
63 result...)); 64 result...));
64 } 65 }
65 66
66 template <typename... T> 67 template <typename... T>
67 scoped_ptr<CdmPromiseInternal<T...>> BindPromiseToCurrentLoop( 68 scoped_ptr<CdmPromiseInternal<T...>> BindPromiseToCurrentLoop(
68 scoped_ptr<::media::CdmPromiseTemplate<T...>> promise) { 69 scoped_ptr<::media::CdmPromiseTemplate<T...>> promise) {
69 return make_scoped_ptr(new CdmPromiseInternal<T...>(promise.Pass())); 70 return make_scoped_ptr(new CdmPromiseInternal<T...>(std::move(promise)));
70 } 71 }
71 72
72 } // namespace 73 } // namespace
73 74
74 BrowserCdmCast::BrowserCdmCast() { 75 BrowserCdmCast::BrowserCdmCast() {
75 thread_checker_.DetachFromThread(); 76 thread_checker_.DetachFromThread();
76 } 77 }
77 78
78 BrowserCdmCast::~BrowserCdmCast() { 79 BrowserCdmCast::~BrowserCdmCast() {
79 DCHECK(thread_checker_.CalledOnValidThread()); 80 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 destination_url); 123 destination_url);
123 } 124 }
124 125
125 void BrowserCdmCast::OnSessionClosed(const std::string& session_id) { 126 void BrowserCdmCast::OnSessionClosed(const std::string& session_id) {
126 session_closed_cb_.Run(session_id); 127 session_closed_cb_.Run(session_id);
127 } 128 }
128 129
129 void BrowserCdmCast::OnSessionKeysChange(const std::string& session_id, 130 void BrowserCdmCast::OnSessionKeysChange(const std::string& session_id,
130 bool newly_usable_keys, 131 bool newly_usable_keys,
131 ::media::CdmKeysInfo keys_info) { 132 ::media::CdmKeysInfo keys_info) {
132 session_keys_change_cb_.Run(session_id, newly_usable_keys, keys_info.Pass()); 133 session_keys_change_cb_.Run(session_id, newly_usable_keys,
134 std::move(keys_info));
133 135
134 if (newly_usable_keys) 136 if (newly_usable_keys)
135 player_tracker_impl_->NotifyNewKey(); 137 player_tracker_impl_->NotifyNewKey();
136 } 138 }
137 139
138 void BrowserCdmCast::KeyIdAndKeyPairsToInfo( 140 void BrowserCdmCast::KeyIdAndKeyPairsToInfo(
139 const ::media::KeyIdAndKeyPairs& keys, 141 const ::media::KeyIdAndKeyPairs& keys,
140 ::media::CdmKeysInfo* keys_info) { 142 ::media::CdmKeysInfo* keys_info) {
141 DCHECK(keys_info); 143 DCHECK(keys_info);
142 for (const std::pair<std::string, std::string>& key : keys) { 144 for (const std::pair<std::string, std::string>& key : keys) {
(...skipping 27 matching lines...) Expand all
170 BrowserCdmCast* BrowserCdmCastUi::browser_cdm_cast() const { 172 BrowserCdmCast* BrowserCdmCastUi::browser_cdm_cast() const {
171 DCHECK(thread_checker_.CalledOnValidThread()); 173 DCHECK(thread_checker_.CalledOnValidThread());
172 return browser_cdm_cast_.get(); 174 return browser_cdm_cast_.get();
173 } 175 }
174 176
175 void BrowserCdmCastUi::SetServerCertificate( 177 void BrowserCdmCastUi::SetServerCertificate(
176 const std::vector<uint8_t>& certificate, 178 const std::vector<uint8_t>& certificate,
177 scoped_ptr<::media::SimpleCdmPromise> promise) { 179 scoped_ptr<::media::SimpleCdmPromise> promise) {
178 DCHECK(thread_checker_.CalledOnValidThread()); 180 DCHECK(thread_checker_.CalledOnValidThread());
179 FORWARD_ON_CDM_THREAD( 181 FORWARD_ON_CDM_THREAD(
180 SetServerCertificate, 182 SetServerCertificate, certificate,
181 certificate, 183 base::Passed(BindPromiseToCurrentLoop(std::move(promise))));
182 base::Passed(BindPromiseToCurrentLoop(promise.Pass())));
183 } 184 }
184 185
185 void BrowserCdmCastUi::CreateSessionAndGenerateRequest( 186 void BrowserCdmCastUi::CreateSessionAndGenerateRequest(
186 ::media::MediaKeys::SessionType session_type, 187 ::media::MediaKeys::SessionType session_type,
187 ::media::EmeInitDataType init_data_type, 188 ::media::EmeInitDataType init_data_type,
188 const std::vector<uint8_t>& init_data, 189 const std::vector<uint8_t>& init_data,
189 scoped_ptr<::media::NewSessionCdmPromise> promise) { 190 scoped_ptr<::media::NewSessionCdmPromise> promise) {
190 DCHECK(thread_checker_.CalledOnValidThread()); 191 DCHECK(thread_checker_.CalledOnValidThread());
191 FORWARD_ON_CDM_THREAD( 192 FORWARD_ON_CDM_THREAD(
192 CreateSessionAndGenerateRequest, 193 CreateSessionAndGenerateRequest, session_type, init_data_type, init_data,
193 session_type, 194 base::Passed(BindPromiseToCurrentLoop(std::move(promise))));
194 init_data_type,
195 init_data,
196 base::Passed(BindPromiseToCurrentLoop(promise.Pass())));
197 } 195 }
198 196
199 void BrowserCdmCastUi::LoadSession( 197 void BrowserCdmCastUi::LoadSession(
200 ::media::MediaKeys::SessionType session_type, 198 ::media::MediaKeys::SessionType session_type,
201 const std::string& session_id, 199 const std::string& session_id,
202 scoped_ptr<::media::NewSessionCdmPromise> promise) { 200 scoped_ptr<::media::NewSessionCdmPromise> promise) {
203 DCHECK(thread_checker_.CalledOnValidThread()); 201 DCHECK(thread_checker_.CalledOnValidThread());
204 FORWARD_ON_CDM_THREAD( 202 FORWARD_ON_CDM_THREAD(
205 LoadSession, session_type, session_id, 203 LoadSession, session_type, session_id,
206 base::Passed(BindPromiseToCurrentLoop(promise.Pass()))); 204 base::Passed(BindPromiseToCurrentLoop(std::move(promise))));
207 } 205 }
208 206
209 void BrowserCdmCastUi::UpdateSession( 207 void BrowserCdmCastUi::UpdateSession(
210 const std::string& session_id, 208 const std::string& session_id,
211 const std::vector<uint8_t>& response, 209 const std::vector<uint8_t>& response,
212 scoped_ptr<::media::SimpleCdmPromise> promise) { 210 scoped_ptr<::media::SimpleCdmPromise> promise) {
213 DCHECK(thread_checker_.CalledOnValidThread()); 211 DCHECK(thread_checker_.CalledOnValidThread());
214 FORWARD_ON_CDM_THREAD( 212 FORWARD_ON_CDM_THREAD(
215 UpdateSession, 213 UpdateSession, session_id, response,
216 session_id, 214 base::Passed(BindPromiseToCurrentLoop(std::move(promise))));
217 response,
218 base::Passed(BindPromiseToCurrentLoop(promise.Pass())));
219 } 215 }
220 216
221 void BrowserCdmCastUi::CloseSession( 217 void BrowserCdmCastUi::CloseSession(
222 const std::string& session_id, 218 const std::string& session_id,
223 scoped_ptr<::media::SimpleCdmPromise> promise) { 219 scoped_ptr<::media::SimpleCdmPromise> promise) {
224 DCHECK(thread_checker_.CalledOnValidThread()); 220 DCHECK(thread_checker_.CalledOnValidThread());
225 FORWARD_ON_CDM_THREAD(CloseSession, session_id, 221 FORWARD_ON_CDM_THREAD(
226 base::Passed(BindPromiseToCurrentLoop(promise.Pass()))); 222 CloseSession, session_id,
223 base::Passed(BindPromiseToCurrentLoop(std::move(promise))));
227 } 224 }
228 225
229 void BrowserCdmCastUi::RemoveSession( 226 void BrowserCdmCastUi::RemoveSession(
230 const std::string& session_id, 227 const std::string& session_id,
231 scoped_ptr<::media::SimpleCdmPromise> promise) { 228 scoped_ptr<::media::SimpleCdmPromise> promise) {
232 DCHECK(thread_checker_.CalledOnValidThread()); 229 DCHECK(thread_checker_.CalledOnValidThread());
233 FORWARD_ON_CDM_THREAD(RemoveSession, session_id, 230 FORWARD_ON_CDM_THREAD(
234 base::Passed(BindPromiseToCurrentLoop(promise.Pass()))); 231 RemoveSession, session_id,
232 base::Passed(BindPromiseToCurrentLoop(std::move(promise))));
235 } 233 }
236 234
237 // A default empty implementation for subclasses that don't need to provide 235 // A default empty implementation for subclasses that don't need to provide
238 // any key system specific initialization. 236 // any key system specific initialization.
239 void BrowserCdmCast::InitializeInternal() { 237 void BrowserCdmCast::InitializeInternal() {
240 } 238 }
241 239
242 } // namespace media 240 } // namespace media
243 } // namespace chromecast 241 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/media/audio/cast_audio_output_stream_unittest.cc ('k') | chromecast/media/cma/base/buffering_frame_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698