diff options
| author | 2018-01-24 07:36:14 +0000 | |
|---|---|---|
| committer | 2018-01-24 07:36:14 +0000 | |
| commit | bbf96b1af19a3e83a93bcd9d1cf62e5af0d50f67 (patch) | |
| tree | a5e94ee445e3d0dd3c6466fc2eb1a7b9bfaf1921 | |
| parent | 8df0200e848d84a970bc06c276f8718f7e3cce7d (diff) | |
| parent | 8f761ba1cdceab9e8e800148e00419399163b832 (diff) | |
Merge "Add new values to KeyRequestType"
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | media/java/android/media/MediaDrm.java | 23 | ||||
| -rw-r--r-- | media/jni/android_media_MediaDrm.cpp | 15 |
3 files changed, 37 insertions, 3 deletions
diff --git a/api/current.txt b/api/current.txt index a948c97312ad..1848a8f93239 100644 --- a/api/current.txt +++ b/api/current.txt @@ -23240,8 +23240,10 @@ package android.media { method public java.lang.String getDefaultUrl(); method public int getRequestType(); field public static final int REQUEST_TYPE_INITIAL = 0; // 0x0 + field public static final int REQUEST_TYPE_NONE = 3; // 0x3 field public static final int REQUEST_TYPE_RELEASE = 2; // 0x2 field public static final int REQUEST_TYPE_RENEWAL = 1; // 0x1 + field public static final int REQUEST_TYPE_UPDATE = 4; // 0x4 } public static final class MediaDrm.KeyStatus { diff --git a/media/java/android/media/MediaDrm.java b/media/java/android/media/MediaDrm.java index b908c21214e7..063186d7f97f 100644 --- a/media/java/android/media/MediaDrm.java +++ b/media/java/android/media/MediaDrm.java @@ -679,12 +679,14 @@ public final class MediaDrm implements AutoCloseable { private int mRequestType; /** - * Key request type is initial license request + * Key request type is initial license request. A license request + * is necessary to load keys. */ public static final int REQUEST_TYPE_INITIAL = 0; /** - * Key request type is license renewal + * Key request type is license renewal. A license request is + * necessary to prevent the keys from expiring. */ public static final int REQUEST_TYPE_RENEWAL = 1; @@ -693,11 +695,25 @@ public final class MediaDrm implements AutoCloseable { */ public static final int REQUEST_TYPE_RELEASE = 2; + /** + * Keys are already loaded. No license request is necessary, and no + * key request data is returned. + */ + public static final int REQUEST_TYPE_NONE = 3; + + /** + * Keys have been loaded but an additional license request is needed + * to update their values. + */ + public static final int REQUEST_TYPE_UPDATE = 4; + /** @hide */ @IntDef({ REQUEST_TYPE_INITIAL, REQUEST_TYPE_RENEWAL, REQUEST_TYPE_RELEASE, + REQUEST_TYPE_NONE, + REQUEST_TYPE_UPDATE, }) @Retention(RetentionPolicy.SOURCE) public @interface RequestType {} @@ -738,7 +754,8 @@ public final class MediaDrm implements AutoCloseable { /** * Get the type of the request * @return one of {@link #REQUEST_TYPE_INITIAL}, - * {@link #REQUEST_TYPE_RENEWAL} or {@link #REQUEST_TYPE_RELEASE} + * {@link #REQUEST_TYPE_RENEWAL}, {@link #REQUEST_TYPE_RELEASE}, + * {@link #REQUEST_TYPE_NONE} or {@link #REQUEST_TYPE_UPDATE} */ @RequestType public int getRequestType() { return mRequestType; } diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp index bbed93def480..95b07f1a4efe 100644 --- a/media/jni/android_media_MediaDrm.cpp +++ b/media/jni/android_media_MediaDrm.cpp @@ -114,6 +114,8 @@ struct KeyRequestTypes { jint kKeyRequestTypeInitial; jint kKeyRequestTypeRenewal; jint kKeyRequestTypeRelease; + jint kKeyRequestTypeNone; + jint kKeyRequestTypeUpdate; } gKeyRequestTypes; struct CertificateTypes { @@ -692,6 +694,10 @@ static void android_media_MediaDrm_native_init(JNIEnv *env) { gKeyRequestTypes.kKeyRequestTypeRenewal = env->GetStaticIntField(clazz, field); GET_STATIC_FIELD_ID(field, clazz, "REQUEST_TYPE_RELEASE", "I"); gKeyRequestTypes.kKeyRequestTypeRelease = env->GetStaticIntField(clazz, field); + GET_STATIC_FIELD_ID(field, clazz, "REQUEST_TYPE_NONE", "I"); + gKeyRequestTypes.kKeyRequestTypeNone = env->GetStaticIntField(clazz, field); + GET_STATIC_FIELD_ID(field, clazz, "REQUEST_TYPE_UPDATE", "I"); + gKeyRequestTypes.kKeyRequestTypeUpdate = env->GetStaticIntField(clazz, field); FIND_CLASS(clazz, "android/media/MediaDrm$ProvisionRequest"); GET_FIELD_ID(gFields.provisionRequest.data, clazz, "mData", "[B"); @@ -922,6 +928,15 @@ static jobject android_media_MediaDrm_getKeyRequest( env->SetIntField(keyObj, gFields.keyRequest.requestType, gKeyRequestTypes.kKeyRequestTypeRelease); break; + case DrmPlugin::kKeyRequestType_None: + env->SetIntField(keyObj, gFields.keyRequest.requestType, + gKeyRequestTypes.kKeyRequestTypeNone); + break; + case DrmPlugin::kKeyRequestType_Update: + env->SetIntField(keyObj, gFields.keyRequest.requestType, + gKeyRequestTypes.kKeyRequestTypeUpdate); + break; + default: throwStateException(env, "DRM plugin failure: unknown key request type", ERROR_DRM_UNKNOWN); |