Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 package org.chromium.media; | 5 package org.chromium.media; |
| 6 | 6 |
| 7 import android.annotation.TargetApi; | 7 import android.annotation.TargetApi; |
| 8 import android.media.MediaCrypto; | 8 import android.media.MediaCrypto; |
| 9 import android.media.MediaDrm; | 9 import android.media.MediaDrm; |
| 10 import android.os.AsyncTask; | 10 import android.os.AsyncTask; |
| (...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 371 // Do not reset mHandler so that we can still post tasks back to native code. | 371 // Do not reset mHandler so that we can still post tasks back to native code. |
| 372 // Note that mNativeMediaDrmBridge may have already been reset (see dest roy()). | 372 // Note that mNativeMediaDrmBridge may have already been reset (see dest roy()). |
| 373 | 373 |
| 374 for (PendingCreateSessionData data : mPendingCreateSessionDataQueue) { | 374 for (PendingCreateSessionData data : mPendingCreateSessionDataQueue) { |
| 375 onPromiseRejected(data.promiseId(), "Create session aborted."); | 375 onPromiseRejected(data.promiseId(), "Create session aborted."); |
| 376 } | 376 } |
| 377 mPendingCreateSessionDataQueue.clear(); | 377 mPendingCreateSessionDataQueue.clear(); |
| 378 mPendingCreateSessionDataQueue = null; | 378 mPendingCreateSessionDataQueue = null; |
| 379 | 379 |
| 380 for (ByteBuffer sessionId : mSessionIds.keySet()) { | 380 for (ByteBuffer sessionId : mSessionIds.keySet()) { |
| 381 mMediaDrm.removeKeys(sessionId.array()); | 381 try { |
| 382 mMediaDrm.removeKeys(sessionId.array()); | |
| 383 } catch (Exception e) { | |
| 384 Log.e(TAG, "removeKeys failed: ", e); | |
|
xhwang
2015/04/10 04:44:22
add a comment with bug number
gunsch
2015/04/10 20:47:17
Done.
| |
| 385 } | |
| 382 mMediaDrm.closeSession(sessionId.array()); | 386 mMediaDrm.closeSession(sessionId.array()); |
| 383 onSessionClosed(sessionId.array()); | 387 onSessionClosed(sessionId.array()); |
| 384 } | 388 } |
| 385 mSessionIds.clear(); | 389 mSessionIds.clear(); |
| 386 mSessionIds = null; | 390 mSessionIds = null; |
| 387 | 391 |
| 388 // This session was closed in the "for" loop above. | 392 // This session was closed in the "for" loop above. |
| 389 mMediaCryptoSession = null; | 393 mMediaCryptoSession = null; |
| 390 | 394 |
| 391 if (mMediaCrypto != null) { | 395 if (mMediaCrypto != null) { |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 561 onPromiseRejected(promiseId, "closeSession() called when MediaDrm is null."); | 565 onPromiseRejected(promiseId, "closeSession() called when MediaDrm is null."); |
| 562 return; | 566 return; |
| 563 } | 567 } |
| 564 | 568 |
| 565 if (!sessionExists(sessionId)) { | 569 if (!sessionExists(sessionId)) { |
| 566 onPromiseRejected(promiseId, | 570 onPromiseRejected(promiseId, |
| 567 "Invalid sessionId in closeSession(): " + bytesToHexString(s essionId)); | 571 "Invalid sessionId in closeSession(): " + bytesToHexString(s essionId)); |
| 568 return; | 572 return; |
| 569 } | 573 } |
| 570 | 574 |
| 571 mMediaDrm.removeKeys(sessionId); | 575 try { |
| 576 mMediaDrm.removeKeys(sessionId); | |
| 577 } catch (Exception e) { | |
| 578 Log.e(TAG, "removeKeys failed: ", e); | |
|
xhwang
2015/04/10 04:44:22
add a comment with bug number
gunsch
2015/04/10 20:47:17
Done.
| |
| 579 } | |
| 572 mMediaDrm.closeSession(sessionId); | 580 mMediaDrm.closeSession(sessionId); |
| 573 mSessionIds.remove(ByteBuffer.wrap(sessionId)); | 581 mSessionIds.remove(ByteBuffer.wrap(sessionId)); |
| 574 onPromiseResolved(promiseId); | 582 onPromiseResolved(promiseId); |
| 575 onSessionClosed(sessionId); | 583 onSessionClosed(sessionId); |
| 576 Log.d(TAG, "Session " + bytesToHexString(sessionId) + " closed."); | 584 Log.d(TAG, "Session " + bytesToHexString(sessionId) + " closed."); |
| 577 } | 585 } |
| 578 | 586 |
| 579 /** | 587 /** |
| 580 * Update a session with response. | 588 * Update a session with response. |
| 581 * | 589 * |
| (...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 946 private native void nativeOnSessionKeysChange(long nativeMediaDrmBridge, byt e[] sessionId, | 954 private native void nativeOnSessionKeysChange(long nativeMediaDrmBridge, byt e[] sessionId, |
| 947 boolean hasAdditionalUsableKey, int keyStatus); | 955 boolean hasAdditionalUsableKey, int keyStatus); |
| 948 private native void nativeOnLegacySessionError( | 956 private native void nativeOnLegacySessionError( |
| 949 long nativeMediaDrmBridge, byte[] sessionId, String errorMessage); | 957 long nativeMediaDrmBridge, byte[] sessionId, String errorMessage); |
| 950 | 958 |
| 951 private native void nativeOnResetDeviceCredentialsCompleted( | 959 private native void nativeOnResetDeviceCredentialsCompleted( |
| 952 long nativeMediaDrmBridge, boolean success); | 960 long nativeMediaDrmBridge, boolean success); |
| 953 | 961 |
| 954 private static native void nativeAddKeySystemUuidMapping(String keySystem, B yteBuffer uuid); | 962 private static native void nativeAddKeySystemUuidMapping(String keySystem, B yteBuffer uuid); |
| 955 } | 963 } |
| OLD | NEW |