summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sally Qi <sallyqi@google.com> 2022-10-19 21:45:57 -0700
committer Sally Qi <sallyqi@google.com> 2022-10-19 21:45:57 -0700
commit201323481b95b2a042ef7675f3e6fe7a9931f05a (patch)
treeec07d7b3d13efc7e6d653cf9d70288335f29f54a
parent5f359071477d525ccbc3e8d4f653418afe7ac7ff (diff)
Fix ExtendedCameraCharacteristicsTest cts failures.
Relnote: SurfaceUtils#getSurfaceFormat function should return the the formats of Surface, therefore, no need to convert it to public format. Bug: 254349961 Test: android.hardware.camera2.cts.ImageReaderTest, android.hardware.camera2.cts.ImageWriterTest, android.hardware.camera2.cts.ExtendedCameraCharacteristicsTest Change-Id: I58340f684b4fc9cb2578cee03ef1d65171c9eaed
-rw-r--r--core/jni/android_hardware_camera2_utils_SurfaceUtils.cpp25
-rw-r--r--media/java/android/media/ImageWriter.java7
2 files changed, 14 insertions, 18 deletions
diff --git a/core/jni/android_hardware_camera2_utils_SurfaceUtils.cpp b/core/jni/android_hardware_camera2_utils_SurfaceUtils.cpp
index 09f3a727d16e..2437a511238c 100644
--- a/core/jni/android_hardware_camera2_utils_SurfaceUtils.cpp
+++ b/core/jni/android_hardware_camera2_utils_SurfaceUtils.cpp
@@ -89,42 +89,39 @@ static sp<Surface> getSurface(JNIEnv* env, jobject surface) {
extern "C" {
-static jint SurfaceUtils_nativeDetectSurfaceDataspace(JNIEnv* env, jobject thiz, jobject surface) {
- ALOGV("nativeDetectSurfaceDataspace");
+static jint SurfaceUtils_nativeDetectSurfaceType(JNIEnv* env, jobject thiz, jobject surface) {
+ ALOGV("nativeDetectSurfaceType");
sp<ANativeWindow> anw;
if ((anw = getNativeWindow(env, surface)) == NULL) {
ALOGE("%s: Could not retrieve native window from surface.", __FUNCTION__);
return BAD_VALUE;
}
int32_t fmt = 0;
- status_t err = anw->query(anw.get(), NATIVE_WINDOW_DEFAULT_DATASPACE, &fmt);
+ status_t err = anw->query(anw.get(), NATIVE_WINDOW_FORMAT, &fmt);
if (err != NO_ERROR) {
- ALOGE("%s: Error while querying surface dataspace %s (%d).", __FUNCTION__, strerror(-err),
- err);
+ ALOGE("%s: Error while querying surface pixel format %s (%d).", __FUNCTION__,
+ strerror(-err), err);
OVERRIDE_SURFACE_ERROR(err);
return err;
}
return fmt;
}
-static jint SurfaceUtils_nativeDetectSurfaceType(JNIEnv* env, jobject thiz, jobject surface) {
- ALOGV("nativeDetectSurfaceType");
+static jint SurfaceUtils_nativeDetectSurfaceDataspace(JNIEnv* env, jobject thiz, jobject surface) {
+ ALOGV("nativeDetectSurfaceDataspace");
sp<ANativeWindow> anw;
if ((anw = getNativeWindow(env, surface)) == NULL) {
ALOGE("%s: Could not retrieve native window from surface.", __FUNCTION__);
return BAD_VALUE;
}
- int32_t halFmt = 0;
- status_t err = anw->query(anw.get(), NATIVE_WINDOW_FORMAT, &halFmt);
+ int32_t fmt = 0;
+ status_t err = anw->query(anw.get(), NATIVE_WINDOW_DEFAULT_DATASPACE, &fmt);
if (err != NO_ERROR) {
- ALOGE("%s: Error while querying surface pixel format %s (%d).", __FUNCTION__,
- strerror(-err), err);
+ ALOGE("%s: Error while querying surface dataspace %s (%d).", __FUNCTION__, strerror(-err),
+ err);
OVERRIDE_SURFACE_ERROR(err);
return err;
}
- int32_t dataspace = SurfaceUtils_nativeDetectSurfaceDataspace(env, thiz, surface);
- int32_t fmt = static_cast<int32_t>(
- mapHalFormatDataspaceToPublicFormat(halFmt, static_cast<android_dataspace>(dataspace)));
return fmt;
}
diff --git a/media/java/android/media/ImageWriter.java b/media/java/android/media/ImageWriter.java
index 39b3d0b47a27..0291f64c0640 100644
--- a/media/java/android/media/ImageWriter.java
+++ b/media/java/android/media/ImageWriter.java
@@ -264,10 +264,9 @@ public class ImageWriter implements AutoCloseable {
if (useSurfaceImageFormatInfo) {
// nativeInit internally overrides UNKNOWN format. So does surface format query after
// nativeInit and before getEstimatedNativeAllocBytes().
- imageFormat = SurfaceUtils.getSurfaceFormat(surface);
- mDataSpace = dataSpace = PublicFormatUtils.getHalDataspace(imageFormat);
- mHardwareBufferFormat =
- hardwareBufferFormat = PublicFormatUtils.getHalFormat(imageFormat);
+ mHardwareBufferFormat = hardwareBufferFormat = SurfaceUtils.getSurfaceFormat(surface);
+ mDataSpace = dataSpace = SurfaceUtils.getSurfaceDataspace(surface);
+ imageFormat = PublicFormatUtils.getPublicFormat(hardwareBufferFormat, dataSpace);
}
// Estimate the native buffer allocation size and register it so it gets accounted for