Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/base/android/media_drm_bridge.h" | 5 #include "media/base/android/media_drm_bridge.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/android/build_info.h" | 9 #include "base/android/build_info.h" |
| 10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 304 CHECK(env); | 304 CHECK(env); |
| 305 | 305 |
| 306 ScopedJavaLocalRef<jbyteArray> j_scheme_uuid = | 306 ScopedJavaLocalRef<jbyteArray> j_scheme_uuid = |
| 307 base::android::ToJavaByteArray(env, &scheme_uuid[0], scheme_uuid.size()); | 307 base::android::ToJavaByteArray(env, &scheme_uuid[0], scheme_uuid.size()); |
| 308 j_media_drm_.Reset(Java_MediaDrmBridge_create( | 308 j_media_drm_.Reset(Java_MediaDrmBridge_create( |
| 309 env, j_scheme_uuid.obj(), reinterpret_cast<intptr_t>(this))); | 309 env, j_scheme_uuid.obj(), reinterpret_cast<intptr_t>(this))); |
| 310 } | 310 } |
| 311 | 311 |
| 312 MediaDrmBridge::~MediaDrmBridge() { | 312 MediaDrmBridge::~MediaDrmBridge() { |
| 313 JNIEnv* env = AttachCurrentThread(); | 313 JNIEnv* env = AttachCurrentThread(); |
| 314 player_tracker_.NotifyCdmDestroyed(); | |
| 314 if (!j_media_drm_.is_null()) | 315 if (!j_media_drm_.is_null()) |
| 315 Java_MediaDrmBridge_release(env, j_media_drm_.obj()); | 316 Java_MediaDrmBridge_release(env, j_media_drm_.obj()); |
| 316 } | 317 } |
| 317 | 318 |
| 318 // static | 319 // static |
| 319 scoped_ptr<MediaDrmBridge> MediaDrmBridge::Create( | 320 scoped_ptr<MediaDrmBridge> MediaDrmBridge::Create( |
| 320 const std::string& key_system, | 321 const std::string& key_system, |
| 321 const SessionCreatedCB& session_created_cb, | 322 const SessionCreatedCB& session_created_cb, |
| 322 const SessionMessageCB& session_message_cb, | 323 const SessionMessageCB& session_message_cb, |
| 323 const SessionReadyCB& session_ready_cb, | 324 const SessionReadyCB& session_ready_cb, |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 415 DVLOG(1) << __FUNCTION__; | 416 DVLOG(1) << __FUNCTION__; |
| 416 | 417 |
| 417 DCHECK(!session_ready_cb_.is_null()) | 418 DCHECK(!session_ready_cb_.is_null()) |
| 418 << __FUNCTION__ << " called on a sessionless MediaDrmBridge object."; | 419 << __FUNCTION__ << " called on a sessionless MediaDrmBridge object."; |
| 419 | 420 |
| 420 JNIEnv* env = AttachCurrentThread(); | 421 JNIEnv* env = AttachCurrentThread(); |
| 421 ScopedJavaLocalRef<jbyteArray> j_response = | 422 ScopedJavaLocalRef<jbyteArray> j_response = |
| 422 base::android::ToJavaByteArray(env, response, response_length); | 423 base::android::ToJavaByteArray(env, response, response_length); |
| 423 Java_MediaDrmBridge_updateSession( | 424 Java_MediaDrmBridge_updateSession( |
| 424 env, j_media_drm_.obj(), session_id, j_response.obj()); | 425 env, j_media_drm_.obj(), session_id, j_response.obj()); |
| 426 | |
| 427 player_tracker_.NotifyNewKey(); | |
|
ddorwin
2014/05/30 20:50:05
Just FYI: This will not be called here in the futu
xhwang
2014/06/02 20:11:43
Yep. Added TODO.
| |
| 425 } | 428 } |
| 426 | 429 |
| 427 void MediaDrmBridge::ReleaseSession(uint32 session_id) { | 430 void MediaDrmBridge::ReleaseSession(uint32 session_id) { |
| 428 DVLOG(1) << __FUNCTION__; | 431 DVLOG(1) << __FUNCTION__; |
| 429 | 432 |
| 430 DCHECK(!session_closed_cb_.is_null()) | 433 DCHECK(!session_closed_cb_.is_null()) |
| 431 << __FUNCTION__ << " called on a sessionless MediaDrmBridge object."; | 434 << __FUNCTION__ << " called on a sessionless MediaDrmBridge object."; |
| 432 | 435 |
| 433 JNIEnv* env = AttachCurrentThread(); | 436 JNIEnv* env = AttachCurrentThread(); |
| 434 Java_MediaDrmBridge_releaseSession(env, j_media_drm_.obj(), session_id); | 437 Java_MediaDrmBridge_releaseSession(env, j_media_drm_.obj(), session_id); |
| 435 } | 438 } |
| 436 | 439 |
| 440 int MediaDrmBridge::RegisterPlayer(const base::Closure& new_key_cb, | |
| 441 const base::Closure& cdm_destroyed_cb) { | |
| 442 return player_tracker_.RegisterPlayer(new_key_cb, cdm_destroyed_cb); | |
| 443 } | |
| 444 | |
| 445 void MediaDrmBridge::UnregisterPlayer(int registration_id) { | |
| 446 player_tracker_.UnregisterPlayer(registration_id); | |
| 447 } | |
| 448 | |
| 437 void MediaDrmBridge::SetMediaCryptoReadyCB(const base::Closure& closure) { | 449 void MediaDrmBridge::SetMediaCryptoReadyCB(const base::Closure& closure) { |
| 438 if (closure.is_null()) { | 450 if (closure.is_null()) { |
| 439 media_crypto_ready_cb_.Reset(); | 451 media_crypto_ready_cb_.Reset(); |
| 440 return; | 452 return; |
| 441 } | 453 } |
| 442 | 454 |
| 443 DCHECK(media_crypto_ready_cb_.is_null()); | 455 DCHECK(media_crypto_ready_cb_.is_null()); |
| 444 | 456 |
| 445 if (!GetMediaCrypto().is_null()) { | 457 if (!GetMediaCrypto().is_null()) { |
| 446 base::MessageLoopProxy::current()->PostTask(FROM_HERE, closure); | 458 base::MessageLoopProxy::current()->PostTask(FROM_HERE, closure); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 528 JNIEnv* env = AttachCurrentThread(); | 540 JNIEnv* env = AttachCurrentThread(); |
| 529 Java_MediaDrmBridge_resetDeviceCredentials(env, j_media_drm_.obj()); | 541 Java_MediaDrmBridge_resetDeviceCredentials(env, j_media_drm_.obj()); |
| 530 } | 542 } |
| 531 | 543 |
| 532 void MediaDrmBridge::OnResetDeviceCredentialsCompleted( | 544 void MediaDrmBridge::OnResetDeviceCredentialsCompleted( |
| 533 JNIEnv* env, jobject, bool success) { | 545 JNIEnv* env, jobject, bool success) { |
| 534 base::ResetAndReturn(&reset_credentials_cb_).Run(success); | 546 base::ResetAndReturn(&reset_credentials_cb_).Run(success); |
| 535 } | 547 } |
| 536 | 548 |
| 537 } // namespace media | 549 } // namespace media |
| OLD | NEW |