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;
 }