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
diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp
index bfb3ea2..c36858a 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 @@
jfieldID mNativeBuffer;
jfieldID mTimestamp;
jfieldID mTransform;
+ jfieldID mScalingMode;
jfieldID mPlanes;
} gSurfaceImageClassInfo;
@@ -315,6 +317,12 @@
"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_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;
}