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

Side by Side Diff: media/cdm/ppapi/clear_key_cdm.cc

Issue 105383002: Rename EME WD call parameters (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix nit Created 7 years 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
« no previous file with comments | « media/cdm/ppapi/clear_key_cdm.h ('k') | media/filters/pipeline_integration_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "media/cdm/ppapi/clear_key_cdm.h" 5 #include "media/cdm/ppapi/clear_key_cdm.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <sstream> 8 #include <sstream>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 host, key_system_string == kExternalClearKeyDecryptOnlyKeySystem); 152 host, key_system_string == kExternalClearKeyDecryptOnlyKeySystem);
153 } 153 }
154 154
155 const char* GetCdmVersion() { 155 const char* GetCdmVersion() {
156 return kClearKeyCdmVersion; 156 return kClearKeyCdmVersion;
157 } 157 }
158 158
159 namespace media { 159 namespace media {
160 160
161 // Since all the calls to AesDecryptor are synchronous, pass a dummy value for 161 // Since all the calls to AesDecryptor are synchronous, pass a dummy value for
162 // reference_id that is never exposed outside this class. 162 // session_id that is never exposed outside this class.
163 // TODO(jrummell): Remove usage of this when the CDM interface is updated 163 // TODO(jrummell): Remove usage of this when the CDM interface is updated
164 // to use reference_id. 164 // to use session_id.
165 165
166 ClearKeyCdm::Client::Client() 166 ClearKeyCdm::Client::Client()
167 : status_(kNone), error_code_(MediaKeys::kUnknownError), system_code_(0) {} 167 : status_(kNone), error_code_(MediaKeys::kUnknownError), system_code_(0) {}
168 168
169 ClearKeyCdm::Client::~Client() {} 169 ClearKeyCdm::Client::~Client() {}
170 170
171 void ClearKeyCdm::Client::Reset() { 171 void ClearKeyCdm::Client::Reset() {
172 status_ = kNone; 172 status_ = kNone;
173 session_id_.clear(); 173 web_session_id_.clear();
174 message_.clear(); 174 message_.clear();
175 destination_url_.clear(); 175 destination_url_.clear();
176 error_code_ = MediaKeys::kUnknownError; 176 error_code_ = MediaKeys::kUnknownError;
177 system_code_ = 0; 177 system_code_ = 0;
178 } 178 }
179 179
180 void ClearKeyCdm::Client::OnSessionCreated(uint32 reference_id, 180 void ClearKeyCdm::Client::OnSessionCreated(uint32 session_id,
181 const std::string& session_id) { 181 const std::string& web_session_id) {
182 status_ = static_cast<Status>(status_ | kCreated); 182 status_ = static_cast<Status>(status_ | kCreated);
183 session_id_ = session_id; 183 web_session_id_ = web_session_id;
184 } 184 }
185 185
186 void ClearKeyCdm::Client::OnSessionMessage(uint32 reference_id, 186 void ClearKeyCdm::Client::OnSessionMessage(uint32 session_id,
187 const std::vector<uint8>& message, 187 const std::vector<uint8>& message,
188 const std::string& destination_url) { 188 const std::string& destination_url) {
189 status_ = static_cast<Status>(status_ | kMessage); 189 status_ = static_cast<Status>(status_ | kMessage);
190 message_ = message; 190 message_ = message;
191 destination_url_ = destination_url; 191 destination_url_ = destination_url;
192 } 192 }
193 193
194 void ClearKeyCdm::Client::OnSessionReady(uint32 reference_id) { 194 void ClearKeyCdm::Client::OnSessionReady(uint32 session_id) {
195 status_ = static_cast<Status>(status_ | kReady); 195 status_ = static_cast<Status>(status_ | kReady);
196 } 196 }
197 197
198 void ClearKeyCdm::Client::OnSessionClosed(uint32 reference_id) { 198 void ClearKeyCdm::Client::OnSessionClosed(uint32 session_id) {
199 status_ = static_cast<Status>(status_ | kClosed); 199 status_ = static_cast<Status>(status_ | kClosed);
200 } 200 }
201 201
202 void ClearKeyCdm::Client::OnSessionError(uint32 reference_id, 202 void ClearKeyCdm::Client::OnSessionError(uint32 session_id,
203 media::MediaKeys::KeyError error_code, 203 media::MediaKeys::KeyError error_code,
204 int system_code) { 204 int system_code) {
205 status_ = static_cast<Status>(status_ | kError); 205 status_ = static_cast<Status>(status_ | kError);
206 error_code_ = error_code; 206 error_code_ = error_code;
207 system_code_ = system_code; 207 system_code_ = system_code;
208 } 208 }
209 209
210 ClearKeyCdm::ClearKeyCdm(ClearKeyCdmHost* host, bool is_decrypt_only) 210 ClearKeyCdm::ClearKeyCdm(ClearKeyCdmHost* host, bool is_decrypt_only)
211 : decryptor_( 211 : decryptor_(
212 base::Bind(&Client::OnSessionCreated, base::Unretained(&client_)), 212 base::Bind(&Client::OnSessionCreated, base::Unretained(&client_)),
(...skipping 16 matching lines...) Expand all
229 229
230 ClearKeyCdm::~ClearKeyCdm() {} 230 ClearKeyCdm::~ClearKeyCdm() {}
231 231
232 cdm::Status ClearKeyCdm::GenerateKeyRequest(const char* type, 232 cdm::Status ClearKeyCdm::GenerateKeyRequest(const char* type,
233 uint32_t type_size, 233 uint32_t type_size,
234 const uint8_t* init_data, 234 const uint8_t* init_data,
235 uint32_t init_data_size) { 235 uint32_t init_data_size) {
236 DVLOG(1) << "GenerateKeyRequest()"; 236 DVLOG(1) << "GenerateKeyRequest()";
237 base::AutoLock auto_lock(client_lock_); 237 base::AutoLock auto_lock(client_lock_);
238 ScopedResetter<Client> auto_resetter(&client_); 238 ScopedResetter<Client> auto_resetter(&client_);
239 decryptor_.CreateSession(MediaKeys::kInvalidReferenceId, 239 decryptor_.CreateSession(MediaKeys::kInvalidSessionId,
240 std::string(type, type_size), 240 std::string(type, type_size),
241 init_data, init_data_size); 241 init_data, init_data_size);
242 242
243 if (client_.status() != (Client::kMessage | Client::kCreated)) { 243 if (client_.status() != (Client::kMessage | Client::kCreated)) {
244 // Use values returned to client if possible. 244 // Use values returned to client if possible.
245 host_->SendKeyError(client_.session_id().data(), 245 host_->SendKeyError(client_.web_session_id().data(),
246 client_.session_id().size(), 246 client_.web_session_id().size(),
247 static_cast<cdm::MediaKeyError>(client_.error_code()), 247 static_cast<cdm::MediaKeyError>(client_.error_code()),
248 client_.system_code()); 248 client_.system_code());
249 return cdm::kSessionError; 249 return cdm::kSessionError;
250 } 250 }
251 251
252 host_->SendKeyMessage( 252 host_->SendKeyMessage(
253 client_.session_id().data(), client_.session_id().size(), 253 client_.web_session_id().data(), client_.web_session_id().size(),
254 reinterpret_cast<const char*>(&client_.message()[0]), 254 reinterpret_cast<const char*>(&client_.message()[0]),
255 client_.message().size(), 255 client_.message().size(),
256 client_.destination_url().data(), client_.destination_url().size()); 256 client_.destination_url().data(), client_.destination_url().size());
257 257
258 // Only save the latest session ID for heartbeat messages. 258 // Only save the latest session ID for heartbeat messages.
259 heartbeat_session_id_ = client_.session_id(); 259 heartbeat_session_id_ = client_.web_session_id();
260 260
261 return cdm::kSuccess; 261 return cdm::kSuccess;
262 } 262 }
263 263
264 cdm::Status ClearKeyCdm::AddKey(const char* session_id, 264 cdm::Status ClearKeyCdm::AddKey(const char* session_id,
265 uint32_t session_id_size, 265 uint32_t session_id_size,
266 const uint8_t* key, 266 const uint8_t* key,
267 uint32_t key_size, 267 uint32_t key_size,
268 const uint8_t* key_id, 268 const uint8_t* key_id,
269 uint32_t key_id_size) { 269 uint32_t key_id_size) {
270 DVLOG(1) << "AddKey()"; 270 DVLOG(1) << "AddKey()";
271 DCHECK(!key_id && !key_id_size); 271 DCHECK(!key_id && !key_id_size);
272 base::AutoLock auto_lock(client_lock_); 272 base::AutoLock auto_lock(client_lock_);
273 ScopedResetter<Client> auto_resetter(&client_); 273 ScopedResetter<Client> auto_resetter(&client_);
274 decryptor_.UpdateSession(MediaKeys::kInvalidReferenceId, key, key_size); 274 decryptor_.UpdateSession(MediaKeys::kInvalidSessionId, key, key_size);
275 275
276 if (client_.status() != Client::kReady) { 276 if (client_.status() != Client::kReady) {
277 host_->SendKeyError(session_id, session_id_size, 277 host_->SendKeyError(session_id, session_id_size,
278 static_cast<cdm::MediaKeyError>(client_.error_code()), 278 static_cast<cdm::MediaKeyError>(client_.error_code()),
279 client_.system_code()); 279 client_.system_code());
280 return cdm::kSessionError; 280 return cdm::kSessionError;
281 } 281 }
282 282
283 if (!timer_set_) { 283 if (!timer_set_) {
284 ScheduleNextHeartBeat(); 284 ScheduleNextHeartBeat();
285 timer_set_ = true; 285 timer_set_ = true;
286 } 286 }
287 287
288 return cdm::kSuccess; 288 return cdm::kSuccess;
289 } 289 }
290 290
291 cdm::Status ClearKeyCdm::CancelKeyRequest(const char* session_id, 291 cdm::Status ClearKeyCdm::CancelKeyRequest(const char* session_id,
292 uint32_t session_id_size) { 292 uint32_t session_id_size) {
293 DVLOG(1) << "CancelKeyRequest()"; 293 DVLOG(1) << "CancelKeyRequest()";
294 base::AutoLock auto_lock(client_lock_); 294 base::AutoLock auto_lock(client_lock_);
295 ScopedResetter<Client> auto_resetter(&client_); 295 ScopedResetter<Client> auto_resetter(&client_);
296 decryptor_.ReleaseSession(MediaKeys::kInvalidReferenceId); 296 decryptor_.ReleaseSession(MediaKeys::kInvalidSessionId);
297 297
298 // No message normally sent by Release(), but if an error occurred, 298 // No message normally sent by Release(), but if an error occurred,
299 // report it as a failure. 299 // report it as a failure.
300 if (client_.status() == Client::kError) { 300 if (client_.status() == Client::kError) {
301 host_->SendKeyError(session_id, session_id_size, 301 host_->SendKeyError(session_id, session_id_size,
302 static_cast<cdm::MediaKeyError>(client_.error_code()), 302 static_cast<cdm::MediaKeyError>(client_.error_code()),
303 client_.system_code()); 303 client_.system_code());
304 return cdm::kSessionError; 304 return cdm::kSessionError;
305 } 305 }
306 306
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 int samples_generated = GenerateFakeAudioFramesFromDuration( 615 int samples_generated = GenerateFakeAudioFramesFromDuration(
616 timestamp_in_microseconds - CurrentTimeStampInMicroseconds(), 616 timestamp_in_microseconds - CurrentTimeStampInMicroseconds(),
617 audio_frames); 617 audio_frames);
618 total_samples_generated_ += samples_generated; 618 total_samples_generated_ += samples_generated;
619 619
620 return samples_generated == 0 ? cdm::kNeedMoreData : cdm::kSuccess; 620 return samples_generated == 0 ? cdm::kNeedMoreData : cdm::kSuccess;
621 } 621 }
622 #endif // CLEAR_KEY_CDM_USE_FAKE_AUDIO_DECODER 622 #endif // CLEAR_KEY_CDM_USE_FAKE_AUDIO_DECODER
623 623
624 } // namespace media 624 } // namespace media
OLDNEW
« no previous file with comments | « media/cdm/ppapi/clear_key_cdm.h ('k') | media/filters/pipeline_integration_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698