Add setDataSpace SurfaceControl API

Also change DataSpace from long to int (HAL & native are both ints)

Bug: 217776226
Fixes: 218320444
Test: make && SurfaceControlTest#testSurfaceTransaction_setDataSpace
Change-Id: Ic2b9ccb1d0ba3c1d049839310b4fef0881a3d2e2
diff --git a/media/java/android/media/Image.java b/media/java/android/media/Image.java
index cf1aac0..8a03afb 100644
--- a/media/java/android/media/Image.java
+++ b/media/java/android/media/Image.java
@@ -302,13 +302,13 @@
         return;
     }
 
-    private @NamedDataSpace long mDataSpace = DataSpace.DATASPACE_UNKNOWN;
+    private @NamedDataSpace int mDataSpace = DataSpace.DATASPACE_UNKNOWN;
 
     /**
      * Get the dataspace associated with this frame.
      */
     @SuppressLint("MethodNameUnits")
-    public @NamedDataSpace long getDataSpace() {
+    public @NamedDataSpace int getDataSpace() {
         throwISEIfImageIsInvalid();
         return mDataSpace;
     }
@@ -322,7 +322,7 @@
      *
      * @param dataSpace The Dataspace to be set for this image
      */
-    public void setDataSpace(@NamedDataSpace long dataSpace) {
+    public void setDataSpace(@NamedDataSpace int dataSpace) {
         throwISEIfImageIsInvalid();
         mDataSpace = dataSpace;
     }
diff --git a/media/java/android/media/ImageReader.java b/media/java/android/media/ImageReader.java
index c9bda48..70d6810 100644
--- a/media/java/android/media/ImageReader.java
+++ b/media/java/android/media/ImageReader.java
@@ -277,7 +277,7 @@
     }
 
     private void initializeImageReader(int width, int height, int imageFormat, int maxImages,
-            long usage, int hardwareBufferFormat, long dataSpace, boolean useLegacyImageFormat) {
+            long usage, int hardwareBufferFormat, int dataSpace, boolean useLegacyImageFormat) {
         if (width < 1 || height < 1) {
             throw new IllegalArgumentException(
                 "The image dimensions must be positive");
@@ -330,7 +330,7 @@
     }
 
     private ImageReader(int width, int height, int maxImages, long usage,
-            MultiResolutionImageReader parent, int hardwareBufferFormat, long dataSpace) {
+            MultiResolutionImageReader parent, int hardwareBufferFormat, int dataSpace) {
         mWidth = width;
         mHeight = height;
         mFormat = ImageFormat.UNKNOWN; // set default image format value as UNKNOWN
@@ -417,7 +417,7 @@
      * @return the expected dataspace of an Image.
      */
     @SuppressLint("MethodNameUnits")
-    public @NamedDataSpace long getDataSpace() {
+    public @NamedDataSpace int getDataSpace() {
         return mDataSpace;
     }
 
@@ -925,7 +925,7 @@
         private int mMaxImages = 1;
         private int mImageFormat = ImageFormat.UNKNOWN;
         private int mHardwareBufferFormat = HardwareBuffer.RGBA_8888;
-        private long mDataSpace = DataSpace.DATASPACE_UNKNOWN;
+        private int mDataSpace = DataSpace.DATASPACE_UNKNOWN;
         private long mUsage = HardwareBuffer.USAGE_CPU_READ_OFTEN;
         private boolean mUseLegacyImageFormat = false;
 
@@ -1042,7 +1042,7 @@
          * @see #setDefaultHardwareBufferFormat
          */
         @SuppressLint("MissingGetterMatchingBuilder")
-        public @NonNull Builder setDefaultDataSpace(@NamedDataSpace long dataSpace) {
+        public @NonNull Builder setDefaultDataSpace(@NamedDataSpace int dataSpace) {
             mDataSpace = dataSpace;
             mUseLegacyImageFormat = false;
             mImageFormat = ImageFormat.UNKNOWN;
@@ -1089,7 +1089,7 @@
 
     private final int mHardwareBufferFormat;
 
-    private final long mDataSpace;
+    private final @NamedDataSpace int mDataSpace;
 
     private final boolean mUseLegacyImageFormat;
 
@@ -1131,7 +1131,7 @@
             mDataSpace = ImageReader.this.mDataSpace;
         }
 
-        SurfaceImage(int hardwareBufferFormat, long dataSpace) {
+        SurfaceImage(int hardwareBufferFormat, int dataSpace) {
             mHardwareBufferFormat = hardwareBufferFormat;
             mDataSpace = dataSpace;
             mFormat = PublicFormatUtils.getPublicFormat(mHardwareBufferFormat, mDataSpace);
@@ -1240,7 +1240,7 @@
         }
 
         @Override
-        public long getDataSpace() {
+        public @NamedDataSpace int getDataSpace() {
             throwISEIfImageIsInvalid();
             return mDataSpace;
         }
@@ -1383,7 +1383,7 @@
         private SurfacePlane[] mPlanes;
         private int mFormat = ImageFormat.UNKNOWN;
         private int mHardwareBufferFormat = HardwareBuffer.RGBA_8888;
-        private long mDataSpace = DataSpace.DATASPACE_UNKNOWN;
+        private int mDataSpace = DataSpace.DATASPACE_UNKNOWN;
         // If this image is detached from the ImageReader.
         private AtomicBoolean mIsDetached = new AtomicBoolean(false);
 
@@ -1397,7 +1397,7 @@
     }
 
     private synchronized native void nativeInit(Object weakSelf, int w, int h, int maxImgs,
-            long consumerUsage, int hardwareBufferFormat, long dataSpace);
+            long consumerUsage, int hardwareBufferFormat, int dataSpace);
     private synchronized native void nativeClose();
     private synchronized native void nativeReleaseImage(Image i);
     private synchronized native Surface nativeGetSurface();
diff --git a/media/java/android/media/ImageWriter.java b/media/java/android/media/ImageWriter.java
index 5c3f918..e0f04a1 100644
--- a/media/java/android/media/ImageWriter.java
+++ b/media/java/android/media/ImageWriter.java
@@ -107,7 +107,7 @@
     private final int mMaxImages;
     private long mUsage = HardwareBuffer.USAGE_CPU_WRITE_OFTEN;
     private @HardwareBuffer.Format int mHardwareBufferFormat;
-    private @NamedDataSpace long mDataSpace;
+    private @NamedDataSpace int mDataSpace;
     private boolean mUseLegacyImageFormat;
 
     // Field below is used by native code, do not access or modify.
@@ -251,7 +251,7 @@
 
     private void initializeImageWriter(Surface surface, int maxImages,
             boolean useSurfaceImageFormatInfo, boolean useLegacyImageFormat, int imageFormat,
-            int hardwareBufferFormat, long dataSpace, int width, int height, long usage) {
+            int hardwareBufferFormat, int dataSpace, int width, int height, long usage) {
         if (surface == null || maxImages < 1) {
             throw new IllegalArgumentException("Illegal input argument: surface " + surface
                 + ", maxImages: " + maxImages);
@@ -331,7 +331,7 @@
     }
 
     private ImageWriter(Surface surface, int maxImages, boolean useSurfaceImageFormatInfo,
-            int hardwareBufferFormat, long dataSpace, int width, int height, long usage) {
+            int hardwareBufferFormat, int dataSpace, int width, int height, long usage) {
         mMaxImages = maxImages;
         mUsage = usage;
         mHardwareBufferFormat = hardwareBufferFormat;
@@ -601,7 +601,7 @@
      * @return The ImageWriter dataspace.
      */
     @SuppressLint("MethodNameUnits")
-    public @NamedDataSpace long getDataSpace() {
+    public @NamedDataSpace int getDataSpace() {
         return mDataSpace;
     }
 
@@ -882,7 +882,7 @@
         private int mImageFormat = ImageFormat.UNKNOWN;
         private long mUsage = -1;
         private @HardwareBuffer.Format int mHardwareBufferFormat = HardwareBuffer.RGBA_8888;
-        private @NamedDataSpace long mDataSpace = DataSpace.DATASPACE_UNKNOWN;
+        private @NamedDataSpace int mDataSpace = DataSpace.DATASPACE_UNKNOWN;
         private boolean mUseSurfaceImageFormatInfo = true;
         // set this as true temporarily now as a workaround to get correct format
         // when using surface format by default without overriding the image format
@@ -993,7 +993,7 @@
          *
          * @see #setHardwareBufferFormat
          */
-        public @NonNull Builder setDataSpace(@NamedDataSpace long dataSpace) {
+        public @NonNull Builder setDataSpace(@NamedDataSpace int dataSpace) {
             mDataSpace = dataSpace;
             mImageFormat = ImageFormat.UNKNOWN;
             mUseLegacyImageFormat = false;
@@ -1044,7 +1044,7 @@
         private int mHeight = -1;
         private int mWidth = -1;
         private int mFormat = -1;
-        private @NamedDataSpace long mDataSpace = DataSpace.DATASPACE_UNKNOWN;
+        private @NamedDataSpace int mDataSpace = DataSpace.DATASPACE_UNKNOWN;
         // When this default timestamp is used, timestamp for the input Image
         // will be generated automatically when queueInputBuffer is called.
         private final long DEFAULT_TIMESTAMP = Long.MIN_VALUE;
@@ -1066,14 +1066,14 @@
         }
 
         @Override
-        public @NamedDataSpace long getDataSpace() {
+        public @NamedDataSpace int getDataSpace() {
             throwISEIfImageIsInvalid();
 
             return mDataSpace;
         }
 
         @Override
-        public void setDataSpace(@NamedDataSpace long dataSpace) {
+        public void setDataSpace(@NamedDataSpace int dataSpace) {
             throwISEIfImageIsInvalid();
 
             mDataSpace = dataSpace;
@@ -1279,13 +1279,13 @@
 
         // Create the SurfacePlane object and fill the information
         private synchronized native SurfacePlane[] nativeCreatePlanes(int numPlanes, int writerFmt,
-                long dataSpace);
+                int dataSpace);
 
         private synchronized native int nativeGetWidth();
 
         private synchronized native int nativeGetHeight();
 
-        private synchronized native int nativeGetFormat(long dataSpace);
+        private synchronized native int nativeGetFormat(int dataSpace);
 
         private synchronized native HardwareBuffer nativeGetHardwareBuffer();
 
@@ -1295,21 +1295,21 @@
     // Native implemented ImageWriter methods.
     private synchronized native long nativeInit(Object weakSelf, Surface surface, int maxImages,
             int width, int height, boolean useSurfaceImageFormatInfo, int hardwareBufferFormat,
-            long dataSpace, long usage);
+            int dataSpace, long usage);
 
     private synchronized native void nativeClose(long nativeCtx);
 
     private synchronized native void nativeDequeueInputImage(long nativeCtx, Image wi);
 
     private synchronized native void nativeQueueInputImage(long nativeCtx, Image image,
-            long timestampNs, long dataSpace, int left, int top, int right, int bottom,
+            long timestampNs, int dataSpace, int left, int top, int right, int bottom,
             int transform, int scalingMode);
 
     private synchronized native int nativeAttachAndQueueImage(long nativeCtx,
-            long imageNativeBuffer, int imageFormat, long timestampNs, long dataSpace,
+            long imageNativeBuffer, int imageFormat, long timestampNs, int dataSpace,
             int left, int top, int right, int bottom, int transform, int scalingMode);
     private synchronized native int nativeAttachAndQueueGraphicBuffer(long nativeCtx,
-            GraphicBuffer graphicBuffer, int imageFormat, long timestampNs, long dataSpace,
+            GraphicBuffer graphicBuffer, int imageFormat, long timestampNs, int dataSpace,
             int left, int top, int right, int bottom, int transform, int scalingMode);
 
     private synchronized native void cancelImage(long nativeCtx, Image image);
diff --git a/media/java/android/media/PublicFormatUtils.java b/media/java/android/media/PublicFormatUtils.java
index 6268804..209e1c8 100644
--- a/media/java/android/media/PublicFormatUtils.java
+++ b/media/java/android/media/PublicFormatUtils.java
@@ -15,6 +15,8 @@
  */
 package android.media;
 
+import android.hardware.DataSpace;
+
 /**
  * Package private utility class for PublicFormat related methods.
  */
@@ -22,13 +24,13 @@
     public static int getHalFormat(int imageFormat) {
         return nativeGetHalFormat(imageFormat);
     }
-    public static long getHalDataspace(int imageFormat) {
+    public static int getHalDataspace(int imageFormat) {
         return nativeGetHalDataspace(imageFormat);
     }
-    public static int getPublicFormat(int imageFormat, long dataspace) {
+    public static int getPublicFormat(int imageFormat, @DataSpace.NamedDataSpace int dataspace) {
         return nativeGetPublicFormat(imageFormat, dataspace);
     }
     private static native int nativeGetHalFormat(int imageFormat);
-    private static native long nativeGetHalDataspace(int imageFormat);
-    private static native int nativeGetPublicFormat(int imageFormat, long dataspace);
+    private static native int nativeGetHalDataspace(int imageFormat);
+    private static native int nativeGetPublicFormat(int imageFormat, int dataspace);
 }
diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp
index 6002e28..4d6739e 100644
--- a/media/jni/android_media_ImageReader.cpp
+++ b/media/jni/android_media_ImageReader.cpp
@@ -322,7 +322,7 @@
                         ANDROID_MEDIA_SURFACEIMAGE_TS_JNI_ID);
 
     gSurfaceImageClassInfo.mDataSpace = env->GetFieldID(
-            imageClazz, ANDROID_MEDIA_SURFACEIMAGE_DS_JNI_ID, "J");
+            imageClazz, ANDROID_MEDIA_SURFACEIMAGE_DS_JNI_ID, "I");
     LOG_ALWAYS_FATAL_IF(gSurfaceImageClassInfo.mDataSpace == NULL,
                         "can't find android/graphics/ImageReader.%s",
                         ANDROID_MEDIA_SURFACEIMAGE_DS_JNI_ID);
@@ -375,7 +375,7 @@
 }
 
 static void ImageReader_init(JNIEnv* env, jobject thiz, jobject weakThiz, jint width, jint height,
-                             jint maxImages, jlong ndkUsage, jint nativeFormat, jlong dataSpace) {
+                             jint maxImages, jlong ndkUsage, jint nativeFormat, jint dataSpace) {
     status_t res;
 
     ALOGV("%s: width:%d, height: %d, nativeFormat: %d, maxImages:%d",
@@ -624,7 +624,7 @@
     env->SetLongField(image, gSurfaceImageClassInfo.mTimestamp,
             static_cast<jlong>(buffer->mTimestamp));
     env->SetLongField(image, gSurfaceImageClassInfo.mDataSpace,
-            static_cast<jlong>(buffer->mDataSpace));
+            static_cast<jint>(buffer->mDataSpace));
     auto transform = buffer->mTransform;
     if (buffer->mTransformToDisplayInverse) {
         transform |= NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY;
@@ -954,7 +954,7 @@
 
 static const JNINativeMethod gImageReaderMethods[] = {
     {"nativeClassInit",        "()V",                        (void*)ImageReader_classInit },
-    {"nativeInit",             "(Ljava/lang/Object;IIIJIJ)V",   (void*)ImageReader_init },
+    {"nativeInit",             "(Ljava/lang/Object;IIIJII)V",   (void*)ImageReader_init },
     {"nativeClose",            "()V",                        (void*)ImageReader_close },
     {"nativeReleaseImage",     "(Landroid/media/Image;)V",   (void*)ImageReader_imageRelease },
     {"nativeImageSetup",       "(Landroid/media/Image;Z)I",   (void*)ImageReader_imageSetup },
diff --git a/media/jni/android_media_ImageWriter.cpp b/media/jni/android_media_ImageWriter.cpp
index 8f5c9da..0f88afb 100644
--- a/media/jni/android_media_ImageWriter.cpp
+++ b/media/jni/android_media_ImageWriter.cpp
@@ -320,7 +320,7 @@
 // -------------------------------Private method declarations--------------
 
 static void Image_setNativeContext(JNIEnv* env, jobject thiz,
-        sp<GraphicBuffer> buffer, int fenceFd, long dataSpace);
+        sp<GraphicBuffer> buffer, int fenceFd, int dataSpace);
 static void Image_getNativeContext(JNIEnv* env, jobject thiz,
         GraphicBuffer** buffer, int* fenceFd);
 static void Image_unlockIfLocked(JNIEnv* env, jobject thiz);
@@ -334,7 +334,7 @@
             "can't find android/media/ImageWriter$WriterSurfaceImage");
 
     gSurfaceImageClassInfo.mDataSpace = env->GetFieldID(
-            imageClazz, "mDataSpace", "J");
+            imageClazz, "mDataSpace", "I");
     LOG_ALWAYS_FATAL_IF(gSurfaceImageClassInfo.mDataSpace == NULL,
             "can't find android/media/ImageWriter$WriterSurfaceImage.mDataSpace");
 
@@ -375,7 +375,7 @@
 
 static jlong ImageWriter_init(JNIEnv* env, jobject thiz, jobject weakThiz, jobject jsurface,
         jint maxImages, jint userWidth, jint userHeight, jboolean useSurfaceImageFormatInfo,
-        jint hardwareBufferFormat, jlong dataSpace, jlong ndkUsage) {
+        jint hardwareBufferFormat, jint dataSpace, jlong ndkUsage) {
     status_t res;
 
     ALOGV("%s: maxImages:%d", __FUNCTION__, maxImages);
@@ -626,7 +626,7 @@
 }
 
 static void ImageWriter_queueImage(JNIEnv* env, jobject thiz, jlong nativeCtx, jobject image,
-        jlong timestampNs, jlong dataSpace, jint left, jint top, jint right,
+        jlong timestampNs, jint dataSpace, jint left, jint top, jint right,
         jint bottom, jint transform, jint scalingMode) {
     ALOGV("%s", __FUNCTION__);
     JNIImageWriterContext* const ctx = reinterpret_cast<JNIImageWriterContext *>(nativeCtx);
@@ -660,7 +660,7 @@
     }
 
     // Set dataSpace
-    ALOGV("dataSpace to be queued: %" PRId64, dataSpace);
+    ALOGV("dataSpace to be queued: %d", dataSpace);
     res = native_window_set_buffers_data_space(
         anw.get(), static_cast<android_dataspace>(dataSpace));
     if (res != OK) {
@@ -719,7 +719,7 @@
 }
 
 static status_t attachAndQeueuGraphicBuffer(JNIEnv* env, JNIImageWriterContext *ctx,
-        sp<Surface> surface, sp<GraphicBuffer> gb, jlong timestampNs, jlong dataSpace,
+        sp<Surface> surface, sp<GraphicBuffer> gb, jlong timestampNs, jint dataSpace,
         jint left, jint top, jint right, jint bottom, jint transform, jint scalingMode) {
     status_t res = OK;
     // Step 1. Attach Image
@@ -748,7 +748,7 @@
         return res;
     }
 
-    ALOGV("dataSpace to be queued: %" PRId64, dataSpace);
+    ALOGV("dataSpace to be queued: %" PRId32, dataSpace);
     res = native_window_set_buffers_data_space(
         anw.get(), static_cast<android_dataspace>(dataSpace));
     if (res != OK) {
@@ -809,7 +809,7 @@
 }
 
 static jint ImageWriter_attachAndQueueImage(JNIEnv* env, jobject thiz, jlong nativeCtx,
-        jlong nativeBuffer, jint imageFormat, jlong timestampNs, jlong dataSpace,
+        jlong nativeBuffer, jint imageFormat, jlong timestampNs, jint dataSpace,
         jint left, jint top, jint right, jint bottom, jint transform, jint scalingMode) {
     ALOGV("%s", __FUNCTION__);
     JNIImageWriterContext* const ctx = reinterpret_cast<JNIImageWriterContext *>(nativeCtx);
@@ -840,7 +840,7 @@
 }
 
 static jint ImageWriter_attachAndQueueGraphicBuffer(JNIEnv* env, jobject thiz, jlong nativeCtx,
-        jobject buffer, jint format, jlong timestampNs, jlong dataSpace, jint left, jint top,
+        jobject buffer, jint format, jlong timestampNs, jint dataSpace, jint left, jint top,
         jint right, jint bottom, jint transform, jint scalingMode) {
     ALOGV("%s", __FUNCTION__);
     JNIImageWriterContext* const ctx = reinterpret_cast<JNIImageWriterContext *>(nativeCtx);
@@ -886,7 +886,7 @@
 }
 
 static void Image_setNativeContext(JNIEnv* env, jobject thiz,
-        sp<GraphicBuffer> buffer, int fenceFd, long dataSpace) {
+        sp<GraphicBuffer> buffer, int fenceFd, int dataSpace) {
     ALOGV("%s:", __FUNCTION__);
     GraphicBuffer* p = NULL;
     Image_getNativeContext(env, thiz, &p, /*fenceFd*/NULL);
@@ -958,7 +958,7 @@
     return buffer->getHeight();
 }
 
-static jint Image_getFormat(JNIEnv* env, jobject thiz, jlong dataSpace) {
+static jint Image_getFormat(JNIEnv* env, jobject thiz, jint dataSpace) {
     ALOGV("%s", __FUNCTION__);
     GraphicBuffer* buffer;
     Image_getNativeContext(env, thiz, &buffer, NULL);
@@ -1042,7 +1042,7 @@
 }
 
 static jobjectArray Image_createSurfacePlanes(JNIEnv* env, jobject thiz,
-        int numPlanes, int writerFormat, long dataSpace) {
+        int numPlanes, int writerFormat, int dataSpace) {
     ALOGV("%s: create SurfacePlane array with size %d", __FUNCTION__, numPlanes);
     int rowStride, pixelStride;
     uint8_t *pData;
@@ -1103,27 +1103,27 @@
 
 static JNINativeMethod gImageWriterMethods[] = {
     {"nativeClassInit",         "()V",                        (void*)ImageWriter_classInit },
-    {"nativeInit",              "(Ljava/lang/Object;Landroid/view/Surface;IIIZIJJ)J",
+    {"nativeInit",              "(Ljava/lang/Object;Landroid/view/Surface;IIIZIIJ)J",
                                                               (void*)ImageWriter_init },
     {"nativeClose",              "(J)V",                      (void*)ImageWriter_close },
     {"nativeAttachAndQueueImage",
-        "(JJIJJIIIIII)I",
+        "(JJIJIIIIIII)I",
         (void*)ImageWriter_attachAndQueueImage },
     {"nativeAttachAndQueueGraphicBuffer",
-        "(JLandroid/graphics/GraphicBuffer;IJJIIIIII)I",
+        "(JLandroid/graphics/GraphicBuffer;IJIIIIIII)I",
         (void*)ImageWriter_attachAndQueueGraphicBuffer },
     {"nativeDequeueInputImage", "(JLandroid/media/Image;)V",  (void*)ImageWriter_dequeueImage },
-    {"nativeQueueInputImage",   "(JLandroid/media/Image;JJIIIIII)V",
+    {"nativeQueueInputImage",   "(JLandroid/media/Image;JIIIIIII)V",
                                                                (void*)ImageWriter_queueImage },
     {"cancelImage",             "(JLandroid/media/Image;)V",   (void*)ImageWriter_cancelImage },
 };
 
 static JNINativeMethod gImageMethods[] = {
-    {"nativeCreatePlanes",      "(IIJ)[Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;",
+    {"nativeCreatePlanes",      "(III)[Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;",
                                                                (void*)Image_createSurfacePlanes },
     {"nativeGetWidth",          "()I",                         (void*)Image_getWidth },
     {"nativeGetHeight",         "()I",                         (void*)Image_getHeight },
-    {"nativeGetFormat",         "(J)I",                        (void*)Image_getFormat },
+    {"nativeGetFormat",         "(I)I",                        (void*)Image_getFormat },
     {"nativeSetFenceFd",        "(I)V",                        (void*)Image_setFenceFd },
     {"nativeGetHardwareBuffer", "()Landroid/hardware/HardwareBuffer;",
                                                                (void*)Image_getHardwareBuffer },
diff --git a/media/jni/android_media_PublicFormatUtils.cpp b/media/jni/android_media_PublicFormatUtils.cpp
index 09ebdee..04494ad 100644
--- a/media/jni/android_media_PublicFormatUtils.cpp
+++ b/media/jni/android_media_PublicFormatUtils.cpp
@@ -30,17 +30,17 @@
     return static_cast<jint>(nativeFormat);
 }
 
-static jlong android_media_PublicFormatUtils_getHalDataspace(JNIEnv* /*env*/, jobject /*thiz*/,
+static jint android_media_PublicFormatUtils_getHalDataspace(JNIEnv* /*env*/, jobject /*thiz*/,
                                                              jint imageFormat) {
     PublicFormat publicFormat = static_cast<PublicFormat>(imageFormat);
     android_dataspace
         nativeDataspace = mapPublicFormatToHalDataspace(publicFormat);
-    return static_cast<jlong>(nativeDataspace);
+    return static_cast<jint>(nativeDataspace);
 }
 
 static jint android_media_PublicFormatUtils_getPublicFormat(JNIEnv* /*env*/, jobject /*thiz*/,
                                                             jint hardwareBufferFormat,
-                                                            jlong dataspace) {
+                                                            jint dataspace) {
     PublicFormat nativeFormat = mapHalFormatDataspaceToPublicFormat(
             hardwareBufferFormat, static_cast<android_dataspace>(dataspace));
     return static_cast<jint>(nativeFormat);
@@ -48,8 +48,8 @@
 
 static const JNINativeMethod gMethods[] = {
     {"nativeGetHalFormat",    "(I)I", (void*)android_media_PublicFormatUtils_getHalFormat},
-    {"nativeGetHalDataspace", "(I)J", (void*)android_media_PublicFormatUtils_getHalDataspace},
-    {"nativeGetPublicFormat", "(IJ)I",(void*)android_media_PublicFormatUtils_getPublicFormat}
+    {"nativeGetHalDataspace", "(I)I", (void*)android_media_PublicFormatUtils_getHalDataspace},
+    {"nativeGetPublicFormat", "(II)I",(void*)android_media_PublicFormatUtils_getPublicFormat}
 };
 
 int register_android_media_PublicFormatUtils(JNIEnv *env) {