summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Robert Shih <robertshih@google.com> 2018-05-30 11:13:45 -0700
committer android-build-merger <android-build-merger@google.com> 2018-05-30 11:13:45 -0700
commitef157649d59c25e43ed3bd07c8975148bbe0048a (patch)
tree3faf9e1a93eaaa93e368af034deafc0106858315
parent82a188f0dfb826d6d71538319adf991792ea037e (diff)
parente3348a25935099838a917cf4556c4dccc714e0ef (diff)
Merge "MediaCodec.CryptoInfo: expose subsample encryption pattern" into pi-dev
am: e3348a2593 Change-Id: I6eaaabc353304ee29aa677bf03d94384ddede51c
-rw-r--r--media/java/android/media/MediaCodec.java4
-rw-r--r--media/jni/android_media_MediaExtractor.cpp14
2 files changed, 18 insertions, 0 deletions
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index 02bf4e343ea3..2207a2a6d4fe 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -2545,6 +2545,10 @@ final public class MediaCodec {
pattern = newPattern;
}
+ private void setPattern(int blocksToEncrypt, int blocksToSkip) {
+ pattern = new Pattern(blocksToEncrypt, blocksToSkip);
+ }
+
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
diff --git a/media/jni/android_media_MediaExtractor.cpp b/media/jni/android_media_MediaExtractor.cpp
index a85552601b56..15957c6a9c5e 100644
--- a/media/jni/android_media_MediaExtractor.cpp
+++ b/media/jni/android_media_MediaExtractor.cpp
@@ -52,6 +52,7 @@ struct fields_t {
jfieldID context;
jmethodID cryptoInfoSetID;
+ jmethodID cryptoInfoSetPatternID;
};
static fields_t gFields;
@@ -654,6 +655,16 @@ static jboolean android_media_MediaExtractor_getSampleCryptoInfo(
ivObj,
mode);
+ int32_t encryptedByteBlock = 0, skipByteBlock = 0;
+ meta->findInt32(kKeyEncryptedByteBlock, &encryptedByteBlock);
+ meta->findInt32(kKeySkipByteBlock, &skipByteBlock);
+
+ env->CallVoidMethod(
+ cryptoInfoObj,
+ gFields.cryptoInfoSetPatternID,
+ encryptedByteBlock,
+ skipByteBlock);
+
return JNI_TRUE;
}
@@ -669,6 +680,9 @@ static void android_media_MediaExtractor_native_init(JNIEnv *env) {
gFields.cryptoInfoSetID =
env->GetMethodID(clazz, "set", "(I[I[I[B[BI)V");
+
+ gFields.cryptoInfoSetPatternID =
+ env->GetMethodID(clazz, "setPattern", "(II)V");
}
static void android_media_MediaExtractor_native_setup(