diff options
| author | 2018-05-30 11:13:45 -0700 | |
|---|---|---|
| committer | 2018-05-30 11:13:45 -0700 | |
| commit | ef157649d59c25e43ed3bd07c8975148bbe0048a (patch) | |
| tree | 3faf9e1a93eaaa93e368af034deafc0106858315 | |
| parent | 82a188f0dfb826d6d71538319adf991792ea037e (diff) | |
| parent | e3348a25935099838a917cf4556c4dccc714e0ef (diff) | |
Merge "MediaCodec.CryptoInfo: expose subsample encryption pattern" into pi-dev
am: e3348a2593
Change-Id: I6eaaabc353304ee29aa677bf03d94384ddede51c
| -rw-r--r-- | media/java/android/media/MediaCodec.java | 4 | ||||
| -rw-r--r-- | media/jni/android_media_MediaExtractor.cpp | 14 |
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( |