diff options
author | Emilian Peev <epeev@google.com> | 2018-04-06 12:55:00 +0100 |
---|---|---|
committer | Emilian Peev <epeev@google.com> | 2018-04-06 13:01:45 +0100 |
commit | 750aec6f3bf8353fb619773862f3181b5766d42e (patch) | |
tree | 49256665ecbb2816b287b340c3cd92306b5b9317 /media/jni/android_media_ImageReader.cpp | |
parent | 8a585a6f1fc33f2bc4c011abebbf909e3c24fe25 (diff) |
media: Populate Image scaling mode in reader and writer
"ImageReader" and "ImageWriter" must pass information about the
specific buffer scaling mode.
Bug: 76022384
Test: Manual using application,
Camera CTS
Change-Id: I116f00cbf3b1487d8e44661e8fd15e2aa16e6e0d
Diffstat (limited to 'media/jni/android_media_ImageReader.cpp')
-rw-r--r-- | media/jni/android_media_ImageReader.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp index bfb3ea2a353c..c36858ad3d8e 100644 --- a/media/jni/android_media_ImageReader.cpp +++ b/media/jni/android_media_ImageReader.cpp @@ -46,6 +46,7 @@ #define ANDROID_MEDIA_SURFACEIMAGE_BUFFER_JNI_ID "mNativeBuffer" #define ANDROID_MEDIA_SURFACEIMAGE_TS_JNI_ID "mTimestamp" #define ANDROID_MEDIA_SURFACEIMAGE_TF_JNI_ID "mTransform" +#define ANDROID_MEDIA_SURFACEIMAGE_SM_JNI_ID "mScalingMode" #define CONSUMER_BUFFER_USAGE_UNKNOWN 0; // ---------------------------------------------------------------------------- @@ -68,6 +69,7 @@ static struct { jfieldID mNativeBuffer; jfieldID mTimestamp; jfieldID mTransform; + jfieldID mScalingMode; jfieldID mPlanes; } gSurfaceImageClassInfo; @@ -315,6 +317,12 @@ static void ImageReader_classInit(JNIEnv* env, jclass clazz) "can't find android/graphics/ImageReader.%s", ANDROID_MEDIA_SURFACEIMAGE_TF_JNI_ID); + gSurfaceImageClassInfo.mScalingMode = env->GetFieldID( + imageClazz, ANDROID_MEDIA_SURFACEIMAGE_SM_JNI_ID, "I"); + LOG_ALWAYS_FATAL_IF(gSurfaceImageClassInfo.mScalingMode == NULL, + "can't find android/graphics/ImageReader.%s", + ANDROID_MEDIA_SURFACEIMAGE_SM_JNI_ID); + gSurfaceImageClassInfo.mPlanes = env->GetFieldID( imageClazz, "mPlanes", "[Landroid/media/ImageReader$SurfaceImage$SurfacePlane;"); LOG_ALWAYS_FATAL_IF(gSurfaceImageClassInfo.mPlanes == NULL, @@ -606,6 +614,8 @@ static jint ImageReader_imageSetup(JNIEnv* env, jobject thiz, jobject image) { static_cast<jlong>(buffer->mTimestamp)); env->SetIntField(image, gSurfaceImageClassInfo.mTransform, static_cast<jint>(buffer->mTransform)); + env->SetIntField(image, gSurfaceImageClassInfo.mScalingMode, + static_cast<jint>(buffer->mScalingMode)); return ACQUIRE_SUCCESS; } |