Merge "Fix invalid keyType translation in MediaDrm.getKeyRequest" into jb-mr2-dev

This commit is contained in:
Jeff Tinker
2013-05-22 19:12:00 +00:00
committed by Android (Google) Code Review

View File

@@ -87,12 +87,18 @@ struct EntryFields {
};
struct EventTypes {
int kEventProvisionRequired;
int kEventKeyRequired;
int kEventKeyExpired;
int kEventVendorDefined;
jint kEventProvisionRequired;
jint kEventKeyRequired;
jint kEventKeyExpired;
jint kEventVendorDefined;
} gEventTypes;
struct KeyTypes {
jint kKeyTypeStreaming;
jint kKeyTypeOffline;
jint kKeyTypeRelease;
} gKeyTypes;
struct fields_t {
jfieldID context;
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");
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");
GET_FIELD_ID(gFields.keyRequest.data, clazz, "mData", "[B");
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);
}
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;
if (joptParams != NULL) {