summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Emilian Peev <epeev@google.com> 2021-08-04 00:50:17 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-08-04 00:50:17 +0000
commit4b68ed1fe034a24cd858809324f069bb3522c05b (patch)
treedf21d538ba5045c2ff0a9a75af9095ce6299e531
parentedb6d7f8a8d597b7c5379196daab6d89e07ace7e (diff)
parenta72b3e92e9054e9e410f75a78314b9ff5f23657e (diff)
Merge "Camera: Don't override extension surface native format" into sc-dev
-rw-r--r--core/java/android/hardware/camera2/impl/CameraExtensionUtils.java2
-rw-r--r--core/java/android/hardware/camera2/utils/SurfaceUtils.java17
2 files changed, 18 insertions, 1 deletions
diff --git a/core/java/android/hardware/camera2/impl/CameraExtensionUtils.java b/core/java/android/hardware/camera2/impl/CameraExtensionUtils.java
index 9acf9bf0c803..afefcbe80bf1 100644
--- a/core/java/android/hardware/camera2/impl/CameraExtensionUtils.java
+++ b/core/java/android/hardware/camera2/impl/CameraExtensionUtils.java
@@ -75,7 +75,7 @@ public final class CameraExtensionUtils {
ImageWriter writer = null;
Image img = null;
SurfaceInfo surfaceInfo = new SurfaceInfo();
- int nativeFormat = SurfaceUtils.getSurfaceFormat(s);
+ int nativeFormat = SurfaceUtils.detectSurfaceFormat(s);
int dataspace = SurfaceUtils.getSurfaceDataspace(s);
Size surfaceSize = SurfaceUtils.getSurfaceSize(s);
surfaceInfo.mFormat = nativeFormat;
diff --git a/core/java/android/hardware/camera2/utils/SurfaceUtils.java b/core/java/android/hardware/camera2/utils/SurfaceUtils.java
index 57d8ded79e8e..fd1a33161740 100644
--- a/core/java/android/hardware/camera2/utils/SurfaceUtils.java
+++ b/core/java/android/hardware/camera2/utils/SurfaceUtils.java
@@ -160,6 +160,23 @@ public class SurfaceUtils {
}
/**
+ * Detect and retrieve the Surface format without any
+ * additional overrides.
+ *
+ * @param surface The surface to be queried for format.
+ * @return format of the surface.
+ *
+ * @throws IllegalArgumentException if the surface is already abandoned.
+ */
+ public static int detectSurfaceFormat(Surface surface) {
+ checkNotNull(surface);
+ int surfaceType = nativeDetectSurfaceType(surface);
+ if (surfaceType == BAD_VALUE) throw new IllegalArgumentException("Surface was abandoned");
+
+ return surfaceType;
+ }
+
+ /**
* Get the Surface dataspace.
*
* @param surface The surface to be queried for dataspace.