summaryrefslogtreecommitdiffstats
path: root/media/jni
diff options
context:
space:
mode:
authorJeff Tinker <jtinker@google.com>2014-10-31 00:54:26 -0700
committerJeff Tinker <jtinker@google.com>2014-11-03 16:22:04 -0800
commit1b51c72e910a91e79efe34c6252e01862516e73d (patch)
tree9772862df219e77168f08c6c3c3879780e2bbcf6 /media/jni
parent7a0ae7ed31a9e7e296c549dfbf035bf4270be69c (diff)
downloadframeworks_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.cpp42
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 },