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

Unified Diff: media/base/android/java/src/org/chromium/media/MediaCodecBridge.java

Issue 2058113002: Add 'cbcs' encryption scheme support in Android media. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
diff --git a/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java b/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
index ce50ab2bdd489045db3f0c709110736f5ec4dc22..50c0e5eae25d39f1e6d02140252b4cc099b4f305 100644
--- a/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
+++ b/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
@@ -373,14 +373,20 @@ class MediaCodecBridge {
}
@CalledByNative
- private int queueSecureInputBuffer(
- int index, int offset, byte[] iv, byte[] keyId, int[] numBytesOfClearData,
- int[] numBytesOfEncryptedData, int numSubSamples, long presentationTimeUs) {
+ private int queueSecureInputBuffer(int index, int offset, byte[] iv, byte[] keyId,
+ int[] numBytesOfClearData, int[] numBytesOfEncryptedData, int numSubSamples,
+ int cipherMode, int patternEncrypt, int patternSkip, long presentationTimeUs) {
resetLastPresentationTimeIfNeeded(presentationTimeUs);
try {
MediaCodec.CryptoInfo cryptoInfo = new MediaCodec.CryptoInfo();
- cryptoInfo.set(numSubSamples, numBytesOfClearData, numBytesOfEncryptedData,
- keyId, iv, MediaCodec.CRYPTO_MODE_AES_CTR);
+ cryptoInfo.set(numSubSamples, numBytesOfClearData, numBytesOfEncryptedData, keyId, iv,
+ cipherMode);
+ if (patternEncrypt != 0 && patternSkip != 0
+ && !MediaCodecUtil.trySetCryptoInfoPattern(
+ cryptoInfo, patternEncrypt, patternSkip)) {
+ Log.e(TAG, "Failed to set encryption pattern: %d %d", patternEncrypt, patternSkip);
+ return MEDIA_CODEC_ERROR;
+ }
mMediaCodec.queueSecureInputBuffer(index, offset, cryptoInfo, presentationTimeUs, 0);
} catch (MediaCodec.CryptoException e) {
if (e.getErrorCode() == MediaCodec.CryptoException.ERROR_NO_KEY) {

Powered by Google App Engine
This is Rietveld 408576698