Merge "Fix invalid keyType translation in MediaDrm.getKeyRequest" into jb-mr2-dev
This commit is contained in:
@@ -87,12 +87,18 @@ struct EntryFields {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct EventTypes {
|
struct EventTypes {
|
||||||
int kEventProvisionRequired;
|
jint kEventProvisionRequired;
|
||||||
int kEventKeyRequired;
|
jint kEventKeyRequired;
|
||||||
int kEventKeyExpired;
|
jint kEventKeyExpired;
|
||||||
int kEventVendorDefined;
|
jint kEventVendorDefined;
|
||||||
} gEventTypes;
|
} gEventTypes;
|
||||||
|
|
||||||
|
struct KeyTypes {
|
||||||
|
jint kKeyTypeStreaming;
|
||||||
|
jint kKeyTypeOffline;
|
||||||
|
jint kKeyTypeRelease;
|
||||||
|
} gKeyTypes;
|
||||||
|
|
||||||
struct fields_t {
|
struct fields_t {
|
||||||
jfieldID context;
|
jfieldID context;
|
||||||
jmethodID post_event;
|
jmethodID post_event;
|
||||||
@@ -521,6 +527,13 @@ static void android_media_MediaDrm_native_init(JNIEnv *env) {
|
|||||||
GET_STATIC_FIELD_ID(field, clazz, "EVENT_VENDOR_DEFINED", "I");
|
GET_STATIC_FIELD_ID(field, clazz, "EVENT_VENDOR_DEFINED", "I");
|
||||||
gEventTypes.kEventVendorDefined = env->GetStaticIntField(clazz, field);
|
gEventTypes.kEventVendorDefined = env->GetStaticIntField(clazz, field);
|
||||||
|
|
||||||
|
GET_STATIC_FIELD_ID(field, clazz, "KEY_TYPE_STREAMING", "I");
|
||||||
|
gKeyTypes.kKeyTypeStreaming = env->GetStaticIntField(clazz, field);
|
||||||
|
GET_STATIC_FIELD_ID(field, clazz, "KEY_TYPE_OFFLINE", "I");
|
||||||
|
gKeyTypes.kKeyTypeOffline = env->GetStaticIntField(clazz, field);
|
||||||
|
GET_STATIC_FIELD_ID(field, clazz, "KEY_TYPE_RELEASE", "I");
|
||||||
|
gKeyTypes.kKeyTypeRelease = env->GetStaticIntField(clazz, field);
|
||||||
|
|
||||||
FIND_CLASS(clazz, "android/media/MediaDrm$KeyRequest");
|
FIND_CLASS(clazz, "android/media/MediaDrm$KeyRequest");
|
||||||
GET_FIELD_ID(gFields.keyRequest.data, clazz, "mData", "[B");
|
GET_FIELD_ID(gFields.keyRequest.data, clazz, "mData", "[B");
|
||||||
GET_FIELD_ID(gFields.keyRequest.defaultUrl, clazz, "mDefaultUrl", "Ljava/lang/String;");
|
GET_FIELD_ID(gFields.keyRequest.defaultUrl, clazz, "mDefaultUrl", "Ljava/lang/String;");
|
||||||
@@ -666,7 +679,18 @@ static jobject android_media_MediaDrm_getKeyRequest(
|
|||||||
mimeType = JStringToString8(env, jmimeType);
|
mimeType = JStringToString8(env, jmimeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
DrmPlugin::KeyType keyType = (DrmPlugin::KeyType)jkeyType;
|
DrmPlugin::KeyType keyType;
|
||||||
|
if (jkeyType == gKeyTypes.kKeyTypeStreaming) {
|
||||||
|
keyType = DrmPlugin::kKeyType_Streaming;
|
||||||
|
} else if (jkeyType == gKeyTypes.kKeyTypeOffline) {
|
||||||
|
keyType = DrmPlugin::kKeyType_Offline;
|
||||||
|
} else if (jkeyType == gKeyTypes.kKeyTypeRelease) {
|
||||||
|
keyType = DrmPlugin::kKeyType_Release;
|
||||||
|
} else {
|
||||||
|
jniThrowException(env, "java/lang/IllegalArgumentException",
|
||||||
|
"invalid keyType");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
KeyedVector<String8, String8> optParams;
|
KeyedVector<String8, String8> optParams;
|
||||||
if (joptParams != NULL) {
|
if (joptParams != NULL) {
|
||||||
|
|||||||
Reference in New Issue
Block a user