diff options
| -rw-r--r-- | core/java/android/hardware/camera2/impl/CameraExtensionUtils.java | 2 | ||||
| -rw-r--r-- | core/java/android/hardware/camera2/utils/SurfaceUtils.java | 17 |
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. |