diff options
author | Jeff Tinker <jtinker@google.com> | 2014-10-31 00:54:26 -0700 |
---|---|---|
committer | Jeff Tinker <jtinker@google.com> | 2014-11-03 16:22:04 -0800 |
commit | 1b51c72e910a91e79efe34c6252e01862516e73d (patch) | |
tree | 9772862df219e77168f08c6c3c3879780e2bbcf6 /media/jni | |
parent | 7a0ae7ed31a9e7e296c549dfbf035bf4270be69c (diff) | |
download | frameworks_base-1b51c72e910a91e79efe34c6252e01862516e73d.zip frameworks_base-1b51c72e910a91e79efe34c6252e01862516e73d.tar.gz frameworks_base-1b51c72e910a91e79efe34c6252e01862516e73d.tar.bz2 |
Add missing secure stop methods
b/18053197
b/18076411
Change-Id: Ide9ecab2fd2021f3544491f23ae84c394c48ac14
Diffstat (limited to 'media/jni')
-rw-r--r-- | media/jni/android_media_MediaDrm.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp index 0fed27e..8e07ec0 100644 --- a/media/jni/android_media_MediaDrm.cpp +++ b/media/jni/android_media_MediaDrm.cpp @@ -1003,6 +1003,27 @@ static jobject android_media_MediaDrm_getSecureStops( return ListOfVectorsToArrayListOfByteArray(env, secureStops); } +static jbyteArray android_media_MediaDrm_getSecureStop( + JNIEnv *env, jobject thiz, jbyteArray ssid) { + sp<IDrm> drm = GetDrm(env, thiz); + + if (drm == NULL) { + jniThrowException(env, "java/lang/IllegalStateException", + "MediaDrm obj is null"); + return NULL; + } + + Vector<uint8_t> secureStop; + + status_t err = drm->getSecureStop(JByteArrayToVector(env, ssid), secureStop); + + if (throwExceptionAsNecessary(env, err, "Failed to get secure stop")) { + return NULL; + } + + return VectorToJByteArray(env, secureStop); +} + static void android_media_MediaDrm_releaseSecureStops( JNIEnv *env, jobject thiz, jbyteArray jssRelease) { sp<IDrm> drm = GetDrm(env, thiz); @@ -1020,6 +1041,21 @@ static void android_media_MediaDrm_releaseSecureStops( throwExceptionAsNecessary(env, err, "Failed to release secure stops"); } +static void android_media_MediaDrm_releaseAllSecureStops( + JNIEnv *env, jobject thiz) { + sp<IDrm> drm = GetDrm(env, thiz); + + if (drm == NULL) { + jniThrowException(env, "java/lang/IllegalStateException", + "MediaDrm obj is null"); + return; + } + + status_t err = drm->releaseAllSecureStops(); + + throwExceptionAsNecessary(env, err, "Failed to release all secure stops"); +} + static jstring android_media_MediaDrm_getPropertyString( JNIEnv *env, jobject thiz, jstring jname) { sp<IDrm> drm = GetDrm(env, thiz); @@ -1384,9 +1420,15 @@ static JNINativeMethod gMethods[] = { { "getSecureStops", "()Ljava/util/List;", (void *)android_media_MediaDrm_getSecureStops }, + { "getSecureStop", "([B)[B", + (void *)android_media_MediaDrm_getSecureStop }, + { "releaseSecureStops", "([B)V", (void *)android_media_MediaDrm_releaseSecureStops }, + { "releaseAllSecureStops", "()V", + (void *)android_media_MediaDrm_releaseAllSecureStops }, + { "getPropertyString", "(Ljava/lang/String;)Ljava/lang/String;", (void *)android_media_MediaDrm_getPropertyString }, |