From b842599e51e2d3611503c3c7db1111358f99186d Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Thu, 10 May 2012 11:32:15 -0700 Subject: [PATCH] Make sure crop rect information is visible from java. Change-Id: Ib914de3d42349efcd7af301d43bec82a21d24ce5 related-to-bug: 6471684 --- media/jni/android_media_Utils.cpp | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/media/jni/android_media_Utils.cpp b/media/jni/android_media_Utils.cpp index a4d88ff9188f9..e35ace38829eb 100644 --- a/media/jni/android_media_Utils.cpp +++ b/media/jni/android_media_Utils.cpp @@ -125,6 +125,19 @@ static jobject makeByteBufferObject( return byteBufObj; } +static void SetMapInt32( + JNIEnv *env, jobject hashMapObj, jmethodID hashMapPutID, + const char *key, int32_t value) { + jstring keyObj = env->NewStringUTF(key); + jobject valueObj = makeIntegerObject(env, value); + + jobject res = env->CallObjectMethod( + hashMapObj, hashMapPutID, keyObj, valueObj); + + env->DeleteLocalRef(valueObj); valueObj = NULL; + env->DeleteLocalRef(keyObj); keyObj = NULL; +} + status_t ConvertMessageToMap( JNIEnv *env, const sp &msg, jobject *map) { jclass hashMapClazz = env->FindClass("java/util/HashMap"); @@ -205,6 +218,41 @@ status_t ConvertMessageToMap( break; } + case AMessage::kTypeRect: + { + int32_t left, top, right, bottom; + CHECK(msg->findRect(key, &left, &top, &right, &bottom)); + + SetMapInt32( + env, + hashMap, + hashMapPutID, + StringPrintf("%s-left", key).c_str(), + left); + + SetMapInt32( + env, + hashMap, + hashMapPutID, + StringPrintf("%s-top", key).c_str(), + top); + + SetMapInt32( + env, + hashMap, + hashMapPutID, + StringPrintf("%s-right", key).c_str(), + right); + + SetMapInt32( + env, + hashMap, + hashMapPutID, + StringPrintf("%s-bottom", key).c_str(), + bottom); + break; + } + default: break; }