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) {