diff options
author | 2024-09-10 20:05:56 +0000 | |
---|---|---|
committer | 2024-09-17 00:09:33 +0000 | |
commit | 0867e667eb139cf874c087d87df4651f4fbde046 (patch) | |
tree | afd744be1874a08247e4262b3bbfd5b50d8c254e | |
parent | 5ff0171ad13097d12b82fd84db78fa9e2737af8a (diff) |
Camera: Remove flag 'concert_mode_api'
Flag: EXEMPT removal of flag 'concert_mode_api'
Bug: 365555183
Test: Successful build
Change-Id: Ieb122bc631eb8345d26e04aaf6293fefe469fe7b
9 files changed, 1 insertions, 1210 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 65a519d3d7d9..1f5ea1081bc3 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -19376,11 +19376,9 @@ package android.hardware.camera2 { method @NonNull public java.util.List<java.lang.Integer> getSupportedExtensions(); method public boolean isCaptureProcessProgressAvailable(int); method public boolean isPostviewAvailable(int); - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Range<java.lang.Float>> EFV_PADDING_ZOOM_FACTOR_RANGE; field public static final int EXTENSION_AUTOMATIC = 0; // 0x0 field @Deprecated public static final int EXTENSION_BEAUTY = 1; // 0x1 field public static final int EXTENSION_BOKEH = 2; // 0x2 - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") public static final int EXTENSION_EYES_FREE_VIDEOGRAPHY = 5; // 0x5 field public static final int EXTENSION_FACE_RETOUCH = 1; // 0x1 field public static final int EXTENSION_HDR = 3; // 0x3 field public static final int EXTENSION_NIGHT = 4; // 0x4 @@ -19980,30 +19978,6 @@ package android.hardware.camera2 { field public static final int MAX_THUMBNAIL_DIMENSION = 256; // 0x100 } - @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") public final class ExtensionCaptureRequest { - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> EFV_AUTO_ZOOM; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Float> EFV_MAX_PADDING_ZOOM_FACTOR; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Float> EFV_PADDING_ZOOM_FACTOR; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Float> EFV_ROTATE_VIEWPORT; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> EFV_STABILIZATION_MODE; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") public static final int EFV_STABILIZATION_MODE_GIMBAL = 1; // 0x1 - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") public static final int EFV_STABILIZATION_MODE_LOCKED = 2; // 0x2 - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") public static final int EFV_STABILIZATION_MODE_OFF = 0; // 0x0 - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureRequest.Key<android.util.Pair<java.lang.Integer,java.lang.Integer>> EFV_TRANSLATE_VIEWPORT; - } - - @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") public final class ExtensionCaptureResult { - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Boolean> EFV_AUTO_ZOOM; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureResult.Key<int[]> EFV_AUTO_ZOOM_PADDING_REGION; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> EFV_MAX_PADDING_ZOOM_FACTOR; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureResult.Key<int[]> EFV_PADDING_REGION; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> EFV_PADDING_ZOOM_FACTOR; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> EFV_ROTATE_VIEWPORT; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> EFV_STABILIZATION_MODE; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureResult.Key<android.graphics.PointF[]> EFV_TARGET_COORDINATES; - field @FlaggedApi("com.android.internal.camera.flags.concert_mode_api") @NonNull public static final android.hardware.camera2.CaptureResult.Key<android.util.Pair<java.lang.Integer,java.lang.Integer>> EFV_TRANSLATE_VIEWPORT; - } - public class MultiResolutionImageReader implements java.lang.AutoCloseable { ctor public MultiResolutionImageReader(@NonNull java.util.Collection<android.hardware.camera2.params.MultiResolutionStreamInfo>, int, @IntRange(from=1) int); method public void close(); diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index 7a8a16f4b98a..ae84c93344ba 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -5976,28 +5976,6 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri public static final Key<android.hardware.camera2.params.StreamConfigurationDuration[]> JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS_MAXIMUM_RESOLUTION = new Key<android.hardware.camera2.params.StreamConfigurationDuration[]>("android.jpegr.availableJpegRStallDurationsMaximumResolution", android.hardware.camera2.params.StreamConfigurationDuration[].class); - /** - * <p>Minimum and maximum padding zoom factors supported by this camera device for - * android.efv.paddingZoomFactor used for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension.</p> - * <p>The minimum and maximum padding zoom factors supported by the device for - * android.efv.paddingZoomFactor used as part of the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension feature. This extension specific camera characteristic can be queried using - * {@link android.hardware.camera2.CameraExtensionCharacteristics#get }.</p> - * <p><b>Units</b>: A pair of padding zoom factors in floating-points: - * (minPaddingZoomFactor, maxPaddingZoomFactor)</p> - * <p><b>Range of valid values:</b><br></p> - * <p>1.0 < minPaddingZoomFactor <= maxPaddingZoomFactor</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<android.util.Range<Float>> EFV_PADDING_ZOOM_FACTOR_RANGE = - new Key<android.util.Range<Float>>("android.efv.paddingZoomFactorRange", new TypeReference<android.util.Range<Float>>() {{ }}); - /** * Mapping from INFO_SESSION_CONFIGURATION_QUERY_VERSION to session characteristics key. diff --git a/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java b/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java index 04a810a89f47..9b87df9ad3a4 100644 --- a/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java @@ -141,12 +141,6 @@ public final class CameraExtensionCharacteristics { public static final int EXTENSION_NIGHT = 4; /** - * An extension that aims to lock and stabilize a given region or object of interest. - */ - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final int EXTENSION_EYES_FREE_VIDEOGRAPHY = 5; - - /** * @hide */ @Retention(RetentionPolicy.SOURCE) @@ -154,8 +148,7 @@ public final class CameraExtensionCharacteristics { EXTENSION_FACE_RETOUCH, EXTENSION_BOKEH, EXTENSION_HDR, - EXTENSION_NIGHT, - EXTENSION_EYES_FREE_VIDEOGRAPHY}) + EXTENSION_NIGHT}) public @interface Extension { } @@ -634,9 +627,6 @@ public final class CameraExtensionCharacteristics { public ExtensionConnectionManager() { IntArray extensionList = new IntArray(EXTENSION_LIST.length); extensionList.addAll(EXTENSION_LIST); - if (Flags.concertModeApi()) { - extensionList.add(EXTENSION_EYES_FREE_VIDEOGRAPHY); - } for (int extensionType : extensionList.toArray()) { mConnections.put(extensionType, new ExtensionConnection()); @@ -837,9 +827,6 @@ public final class CameraExtensionCharacteristics { IntArray extensionList = new IntArray(EXTENSION_LIST.length); extensionList.addAll(EXTENSION_LIST); - if (Flags.concertModeApi()) { - extensionList.add(EXTENSION_EYES_FREE_VIDEOGRAPHY); - } for (int extensionType : extensionList.toArray()) { try { @@ -1598,28 +1585,4 @@ public final class CameraExtensionCharacteristics { return Collections.unmodifiableSet(ret); } - - - /** - * <p>Minimum and maximum padding zoom factors supported by this camera device for - * {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } used for - * the {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension.</p> - * <p>The minimum and maximum padding zoom factors supported by the device for - * {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } used as part of the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension feature. This extension specific camera characteristic can be queried using - * {@link android.hardware.camera2.CameraExtensionCharacteristics#get}.</p> - * <p><b>Units</b>: A pair of padding zoom factors in floating-points: - * (minPaddingZoomFactor, maxPaddingZoomFactor)</p> - * <p><b>Range of valid values:</b><br></p> - * <p>1.0 < minPaddingZoomFactor <= maxPaddingZoomFactor</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<android.util.Range<Float>> EFV_PADDING_ZOOM_FACTOR_RANGE = - CameraCharacteristics.EFV_PADDING_ZOOM_FACTOR_RANGE; } diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index 4819f67cb566..a69a37133192 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -3897,36 +3897,6 @@ public abstract class CameraMetadata<TKey> { public static final int DISTORTION_CORRECTION_MODE_HIGH_QUALITY = 2; // - // Enumeration values for CaptureRequest#EFV_STABILIZATION_MODE - // - - /** - * <p>No stabilization.</p> - * @see CaptureRequest#EFV_STABILIZATION_MODE - * @hide - */ - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final int EFV_STABILIZATION_MODE_OFF = 0; - - /** - * <p>Gimbal stabilization mode.</p> - * @see CaptureRequest#EFV_STABILIZATION_MODE - * @hide - */ - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final int EFV_STABILIZATION_MODE_GIMBAL = 1; - - /** - * <p>Locked stabilization mode which uses the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * stabilization to directionally steady the target region.</p> - * @see CaptureRequest#EFV_STABILIZATION_MODE - * @hide - */ - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final int EFV_STABILIZATION_MODE_LOCKED = 2; - - // // Enumeration values for CaptureResult#CONTROL_AE_STATE // diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index 3b69aa742b85..d25def4635e1 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -4325,146 +4325,6 @@ public final class CaptureRequest extends CameraMetadata<CaptureRequest.Key<?>> public static final Key<Integer> EXTENSION_STRENGTH = new Key<Integer>("android.extension.strength", int.class); - /** - * <p>Used to apply an additional digital zoom factor for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>For the {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * feature, an additional zoom factor is applied on top of the existing {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio}. - * This additional zoom factor serves as a buffer to provide more flexibility for the - * {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } - * mode. If android.efv.paddingZoomFactor is not set, the default will be used. - * The effectiveness of the stabilization may be influenced by the amount of padding zoom - * applied. A higher padding zoom factor can stabilize the target region more effectively - * with greater flexibility but may potentially impact image quality. Conversely, a lower - * padding zoom factor may be used to prioritize preserving image quality, albeit with less - * leeway in stabilizing the target region. It is recommended to set the - * android.efv.paddingZoomFactor to at least 1.5.</p> - * <p>If android.efv.autoZoom is enabled, the requested android.efv.paddingZoomFactor will be overridden. - * android.efv.maxPaddingZoomFactor can be checked for more details on controlling the - * padding zoom factor during android.efv.autoZoom.</p> - * <p><b>Range of valid values:</b><br> - * android.efv.paddingZoomFactorRange</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see CaptureRequest#CONTROL_ZOOM_RATIO - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_PADDING_ZOOM_FACTOR = - new Key<Float>("android.efv.paddingZoomFactor", float.class); - - /** - * <p>Used to enable or disable auto zoom for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>Turn on auto zoom to let the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * feature decide at any given point a combination of - * {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} and android.efv.paddingZoomFactor - * to keep the target region in view and stabilized. The combination chosen by the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * will equal the requested {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} multiplied with the requested - * android.efv.paddingZoomFactor. A limit can be set on the padding zoom if wanting - * to control image quality further using android.efv.maxPaddingZoomFactor.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see CaptureRequest#CONTROL_ZOOM_RATIO - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Boolean> EFV_AUTO_ZOOM = - new Key<Boolean>("android.efv.autoZoom", boolean.class); - - /** - * <p>Used to limit the android.efv.paddingZoomFactor if - * android.efv.autoZoom is enabled for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>If android.efv.autoZoom is enabled, this key can be used to set a limit - * on the android.efv.paddingZoomFactor chosen by the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode - * to control image quality.</p> - * <p><b>Range of valid values:</b><br> - * The range of android.efv.paddingZoomFactorRange. Use a value greater than or equal to - * the android.efv.paddingZoomFactor to effectively utilize this key.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_MAX_PADDING_ZOOM_FACTOR = - new Key<Float>("android.efv.maxPaddingZoomFactor", float.class); - - /** - * <p>Set the stabilization mode for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension</p> - * <p>The desired stabilization mode. Gimbal stabilization mode provides simple, non-locked - * video stabilization. Locked mode uses the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * stabilization feature to fixate on the current region, utilizing it as the target area for - * stabilization.</p> - * <p><b>Possible values:</b></p> - * <ul> - * <li>{@link #EFV_STABILIZATION_MODE_OFF OFF}</li> - * <li>{@link #EFV_STABILIZATION_MODE_GIMBAL GIMBAL}</li> - * <li>{@link #EFV_STABILIZATION_MODE_LOCKED LOCKED}</li> - * </ul> - * - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @see #EFV_STABILIZATION_MODE_OFF - * @see #EFV_STABILIZATION_MODE_GIMBAL - * @see #EFV_STABILIZATION_MODE_LOCKED - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Integer> EFV_STABILIZATION_MODE = - new Key<Integer>("android.efv.stabilizationMode", int.class); - - /** - * <p>Used to update the target region for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>A android.util.Pair<Integer,Integer> that represents the desired - * <Horizontal,Vertical> shift of the current locked view (or target region) in - * pixels. Negative values indicate left and upward shifts, while positive values indicate - * right and downward shifts in the active array coordinate system.</p> - * <p><b>Range of valid values:</b><br> - * android.util.Pair<Integer,Integer> represents the - * <Horizontal,Vertical> shift. The range for the horizontal shift is - * [-max(android.efv.paddingRegion-left), max(android.efv.paddingRegion-right)]. - * The range for the vertical shift is - * [-max(android.efv.paddingRegion-top), max(android.efv.paddingRegion-bottom)]</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<android.util.Pair<Integer,Integer>> EFV_TRANSLATE_VIEWPORT = - new Key<android.util.Pair<Integer,Integer>>("android.efv.translateViewport", new TypeReference<android.util.Pair<Integer,Integer>>() {{ }}); - - /** - * <p>Representing the desired clockwise rotation - * of the target region in degrees for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>Value representing the desired clockwise rotation of the target - * region in degrees.</p> - * <p><b>Range of valid values:</b><br> - * 0 to 360</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_ROTATE_VIEWPORT = - new Key<Float>("android.efv.rotateViewport", float.class); - /*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~ * End generated code *~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~O@*/ diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index 34ce92c0f498..642384a57a2c 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -5940,214 +5940,6 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> { public static final Key<Integer> EXTENSION_STRENGTH = new Key<Integer>("android.extension.strength", int.class); - /** - * <p>The padding region for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>An array [left, top, right, bottom] of the padding in pixels remaining on all four sides - * before the target region starts to go out of bounds.</p> - * <p>The padding region denotes the area surrounding the stabilized target region within which - * the camera can be moved while maintaining the target region in view. As the camera moves, - * the padding region adjusts to represent the proximity of the target region to the - * boundary, which is the point at which the target region will start to go out of bounds.</p> - * <p><b>Range of valid values:</b><br> - * The padding is the number of remaining pixels of padding in each direction. - * The pixels reference the active array coordinate system. Negative values indicate the target - * region is out of bounds. The value for this key may be null for when the stabilization mode is - * in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_OFF } - * or {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_GIMBAL } mode.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<int[]> EFV_PADDING_REGION = - new Key<int[]>("android.efv.paddingRegion", int[].class); - - /** - * <p>The padding region when android.efv.autoZoom is enabled for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>An array [left, top, right, bottom] of the padding in pixels remaining on all four sides - * before the target region starts to go out of bounds.</p> - * <p>This may differ from android.efv.paddingRegion as the field of view can change - * during android.efv.autoZoom, altering the boundary region and thus updating the padding between the - * target region and the boundary.</p> - * <p><b>Range of valid values:</b><br> - * The padding is the number of remaining pixels of padding in each direction - * when android.efv.autoZoom is enabled. Negative values indicate the target region is out of bounds. - * The value for this key may be null for when the android.efv.autoZoom is not enabled.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<int[]> EFV_AUTO_ZOOM_PADDING_REGION = - new Key<int[]>("android.efv.autoZoomPaddingRegion", int[].class); - - /** - * <p>List of coordinates representing the target region relative to the - * {@link android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE } - * for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in - * {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>A list of android.graphics.PointF that define the coordinates of the target region - * relative to the - * {@link android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE }. - * The array represents the target region coordinates as: top-left, top-right, bottom-left, - * bottom-right.</p> - * <p><b>Range of valid values:</b><br> - * The list of target coordinates will define a region within the bounds of the - * {@link android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE }</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<android.graphics.PointF[]> EFV_TARGET_COORDINATES = - new Key<android.graphics.PointF[]>("android.efv.targetCoordinates", android.graphics.PointF[].class); - - /** - * <p>Used to apply an additional digital zoom factor for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>For the {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * feature, an additional zoom factor is applied on top of the existing {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio}. - * This additional zoom factor serves as a buffer to provide more flexibility for the - * {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } - * mode. If android.efv.paddingZoomFactor is not set, the default will be used. - * The effectiveness of the stabilization may be influenced by the amount of padding zoom - * applied. A higher padding zoom factor can stabilize the target region more effectively - * with greater flexibility but may potentially impact image quality. Conversely, a lower - * padding zoom factor may be used to prioritize preserving image quality, albeit with less - * leeway in stabilizing the target region. It is recommended to set the - * android.efv.paddingZoomFactor to at least 1.5.</p> - * <p>If android.efv.autoZoom is enabled, the requested android.efv.paddingZoomFactor will be overridden. - * android.efv.maxPaddingZoomFactor can be checked for more details on controlling the - * padding zoom factor during android.efv.autoZoom.</p> - * <p><b>Range of valid values:</b><br> - * android.efv.paddingZoomFactorRange</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see CaptureRequest#CONTROL_ZOOM_RATIO - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_PADDING_ZOOM_FACTOR = - new Key<Float>("android.efv.paddingZoomFactor", float.class); - - /** - * <p>Set the stabilization mode for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension</p> - * <p>The desired stabilization mode. Gimbal stabilization mode provides simple, non-locked - * video stabilization. Locked mode uses the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * stabilization feature to fixate on the current region, utilizing it as the target area for - * stabilization.</p> - * <p><b>Possible values:</b></p> - * <ul> - * <li>{@link #EFV_STABILIZATION_MODE_OFF OFF}</li> - * <li>{@link #EFV_STABILIZATION_MODE_GIMBAL GIMBAL}</li> - * <li>{@link #EFV_STABILIZATION_MODE_LOCKED LOCKED}</li> - * </ul> - * - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @see #EFV_STABILIZATION_MODE_OFF - * @see #EFV_STABILIZATION_MODE_GIMBAL - * @see #EFV_STABILIZATION_MODE_LOCKED - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Integer> EFV_STABILIZATION_MODE = - new Key<Integer>("android.efv.stabilizationMode", int.class); - - /** - * <p>Used to enable or disable auto zoom for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>Turn on auto zoom to let the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * feature decide at any given point a combination of - * {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} and android.efv.paddingZoomFactor - * to keep the target region in view and stabilized. The combination chosen by the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * will equal the requested {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} multiplied with the requested - * android.efv.paddingZoomFactor. A limit can be set on the padding zoom if wanting - * to control image quality further using android.efv.maxPaddingZoomFactor.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see CaptureRequest#CONTROL_ZOOM_RATIO - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Boolean> EFV_AUTO_ZOOM = - new Key<Boolean>("android.efv.autoZoom", boolean.class); - - /** - * <p>Representing the desired clockwise rotation - * of the target region in degrees for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>Value representing the desired clockwise rotation of the target - * region in degrees.</p> - * <p><b>Range of valid values:</b><br> - * 0 to 360</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_ROTATE_VIEWPORT = - new Key<Float>("android.efv.rotateViewport", float.class); - - /** - * <p>Used to update the target region for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>A android.util.Pair<Integer,Integer> that represents the desired - * <Horizontal,Vertical> shift of the current locked view (or target region) in - * pixels. Negative values indicate left and upward shifts, while positive values indicate - * right and downward shifts in the active array coordinate system.</p> - * <p><b>Range of valid values:</b><br> - * android.util.Pair<Integer,Integer> represents the - * <Horizontal,Vertical> shift. The range for the horizontal shift is - * [-max(android.efv.paddingRegion-left), max(android.efv.paddingRegion-right)]. - * The range for the vertical shift is - * [-max(android.efv.paddingRegion-top), max(android.efv.paddingRegion-bottom)]</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<android.util.Pair<Integer,Integer>> EFV_TRANSLATE_VIEWPORT = - new Key<android.util.Pair<Integer,Integer>>("android.efv.translateViewport", new TypeReference<android.util.Pair<Integer,Integer>>() {{ }}); - - /** - * <p>Used to limit the android.efv.paddingZoomFactor if - * android.efv.autoZoom is enabled for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>If android.efv.autoZoom is enabled, this key can be used to set a limit - * on the android.efv.paddingZoomFactor chosen by the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.CameraMetadata#EFV_STABILIZATION_MODE_LOCKED } mode - * to control image quality.</p> - * <p><b>Range of valid values:</b><br> - * The range of android.efv.paddingZoomFactorRange. Use a value greater than or equal to - * the android.efv.paddingZoomFactor to effectively utilize this key.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @hide - */ - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_MAX_PADDING_ZOOM_FACTOR = - new Key<Float>("android.efv.maxPaddingZoomFactor", float.class); - /*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~ * End generated code *~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~O@*/ diff --git a/core/java/android/hardware/camera2/ExtensionCaptureRequest.java b/core/java/android/hardware/camera2/ExtensionCaptureRequest.java deleted file mode 100644 index b681ce40dfd9..000000000000 --- a/core/java/android/hardware/camera2/ExtensionCaptureRequest.java +++ /dev/null @@ -1,229 +0,0 @@ -/* - * Copyright (C) 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.hardware.camera2; - -import android.annotation.FlaggedApi; -import android.annotation.NonNull; -import android.hardware.camera2.CaptureRequest; -import android.hardware.camera2.CaptureRequest.Key; -import android.hardware.camera2.impl.ExtensionKey; -import android.hardware.camera2.impl.PublicKey; - -import com.android.internal.camera.flags.Flags; - -/** - * ExtensionCaptureRequest contains definitions for extension-specific CaptureRequest keys that - * can be used to configure a {@link android.hardware.camera2.CaptureRequest} during a - * {@link android.hardware.camera2.CameraExtensionSession}. - * - * Note that ExtensionCaptureRequest is not intended to be used as a replacement - * for CaptureRequest in the extensions. It serves as a supplementary class providing - * extension-specific CaptureRequest keys. Developers should use these keys in conjunction - * with regular CaptureRequest objects during a - * {@link android.hardware.camera2.CameraExtensionSession}. - * - * @see CaptureRequest - * @see CameraExtensionSession - */ -@FlaggedApi(Flags.FLAG_CONCERT_MODE_API) -public final class ExtensionCaptureRequest { - - /** To avoid exposing constructor */ - private ExtensionCaptureRequest() {} - - /** - * <p>Used to apply an additional digital zoom factor for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>For the {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * feature, an additional zoom factor is applied on top of the existing {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio}. - * This additional zoom factor serves as a buffer to provide more flexibility for the - * {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } - * mode. If {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } is not set, the default will be used. - * The effectiveness of the stabilization may be influenced by the amount of padding zoom - * applied. A higher padding zoom factor can stabilize the target region more effectively - * with greater flexibility but may potentially impact image quality. Conversely, a lower - * padding zoom factor may be used to prioritize preserving image quality, albeit with less - * leeway in stabilizing the target region. It is recommended to set the - * {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } to at least 1.5.</p> - * <p>If {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM } is enabled, the requested {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } will be overridden. - * {@link ExtensionCaptureRequest#EFV_MAX_PADDING_ZOOM_FACTOR } can be checked for more details on controlling the - * padding zoom factor during {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM }.</p> - * <p><b>Range of valid values:</b><br> - * {@link CameraExtensionCharacteristics#EFV_PADDING_ZOOM_FACTOR_RANGE }</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see CaptureRequest#CONTROL_ZOOM_RATIO - * @see ExtensionCaptureRequest#EFV_AUTO_ZOOM - * @see ExtensionCaptureRequest#EFV_MAX_PADDING_ZOOM_FACTOR - * @see ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR - * @see CameraExtensionCharacteristics#EFV_PADDING_ZOOM_FACTOR_RANGE - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_PADDING_ZOOM_FACTOR = CaptureRequest.EFV_PADDING_ZOOM_FACTOR; - - /** - * <p>Used to enable or disable auto zoom for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>Turn on auto zoom to let the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * feature decide at any given point a combination of - * {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} and {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } - * to keep the target region in view and stabilized. The combination chosen by the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * will equal the requested {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} multiplied with the requested - * {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR }. A limit can be set on the padding zoom if wanting - * to control image quality further using {@link ExtensionCaptureRequest#EFV_MAX_PADDING_ZOOM_FACTOR }.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see CaptureRequest#CONTROL_ZOOM_RATIO - * @see ExtensionCaptureRequest#EFV_MAX_PADDING_ZOOM_FACTOR - * @see ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Boolean> EFV_AUTO_ZOOM = CaptureRequest.EFV_AUTO_ZOOM; - - /** - * <p>Used to limit the {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } if - * {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM } is enabled for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>If {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM } is enabled, this key can be used to set a limit - * on the {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } chosen by the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode - * to control image quality.</p> - * <p><b>Range of valid values:</b><br> - * The range of {@link CameraExtensionCharacteristics#EFV_PADDING_ZOOM_FACTOR_RANGE Range}. Use a value greater than or equal to - * the {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } to - * effectively utilize this key.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see ExtensionCaptureRequest#EFV_AUTO_ZOOM - * @see ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR - * @see CameraExtensionCharacteristics#EFV_PADDING_ZOOM_FACTOR_RANGE - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_MAX_PADDING_ZOOM_FACTOR = CaptureRequest.EFV_MAX_PADDING_ZOOM_FACTOR; - - /** - * <p>Set the stabilization mode for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension</p> - * <p>The desired stabilization mode. Gimbal stabilization mode provides simple, non-locked - * video stabilization. Locked mode uses the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * stabilization feature to fixate on the current region, utilizing it as the target area for - * stabilization.</p> - * <p><b>Possible values:</b></p> - * <ul> - * <li>{@link #EFV_STABILIZATION_MODE_OFF OFF}</li> - * <li>{@link #EFV_STABILIZATION_MODE_GIMBAL GIMBAL}</li> - * <li>{@link #EFV_STABILIZATION_MODE_LOCKED LOCKED}</li> - * </ul> - * - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @see #EFV_STABILIZATION_MODE_OFF - * @see #EFV_STABILIZATION_MODE_GIMBAL - * @see #EFV_STABILIZATION_MODE_LOCKED - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Integer> EFV_STABILIZATION_MODE = CaptureRequest.EFV_STABILIZATION_MODE; - - /** - * <p>Used to update the target region for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>A android.util.Pair<Integer,Integer> that represents the desired - * <Horizontal,Vertical> shift of the current locked view (or target region) in - * pixels. Negative values indicate left and upward shifts, while positive values indicate - * right and downward shifts in the active array coordinate system.</p> - * <p><b>Range of valid values:</b><br> - * android.util.Pair<Integer,Integer> represents the - * <Horizontal,Vertical> shift. The range for the horizontal shift is - * [-max({@link ExtensionCaptureResult#EFV_PADDING_REGION }-left), max({@link ExtensionCaptureResult#EFV_PADDING_REGION }-right)]. - * The range for the vertical shift is - * [-max({@link ExtensionCaptureResult#EFV_PADDING_REGION }-top), max({@link ExtensionCaptureResult#EFV_PADDING_REGION }-bottom)]</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see ExtensionCaptureResult#EFV_PADDING_REGION - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<android.util.Pair<Integer,Integer>> EFV_TRANSLATE_VIEWPORT = CaptureRequest.EFV_TRANSLATE_VIEWPORT; - - /** - * <p>Representing the desired clockwise rotation - * of the target region in degrees for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>Value representing the desired clockwise rotation of the target - * region in degrees.</p> - * <p><b>Range of valid values:</b><br> - * 0 to 360</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_ROTATE_VIEWPORT = CaptureRequest.EFV_ROTATE_VIEWPORT; - - - // - // Enumeration values for CaptureRequest#EFV_STABILIZATION_MODE - // - - /** - * <p>No stabilization.</p> - * @see ExtensionCaptureRequest#EFV_STABILIZATION_MODE - */ - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final int EFV_STABILIZATION_MODE_OFF = CaptureRequest.EFV_STABILIZATION_MODE_OFF; - - /** - * <p>Gimbal stabilization mode.</p> - * @see ExtensionCaptureRequest#EFV_STABILIZATION_MODE - */ - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final int EFV_STABILIZATION_MODE_GIMBAL = CaptureRequest.EFV_STABILIZATION_MODE_GIMBAL; - - /** - * <p>Locked stabilization mode which uses the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * stabilization to directionally steady the target region.</p> - * @see ExtensionCaptureRequest#EFV_STABILIZATION_MODE - */ - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final int EFV_STABILIZATION_MODE_LOCKED = CaptureRequest.EFV_STABILIZATION_MODE_LOCKED; - -} diff --git a/core/java/android/hardware/camera2/ExtensionCaptureResult.java b/core/java/android/hardware/camera2/ExtensionCaptureResult.java deleted file mode 100644 index b7ba78cb34b5..000000000000 --- a/core/java/android/hardware/camera2/ExtensionCaptureResult.java +++ /dev/null @@ -1,274 +0,0 @@ -/* - * Copyright (C) 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.hardware.camera2; - -import android.annotation.FlaggedApi; -import android.annotation.NonNull; -import android.hardware.camera2.CameraExtensionCharacteristics; -import android.hardware.camera2.CaptureResult; -import android.hardware.camera2.CaptureResult.Key; -import android.hardware.camera2.impl.ExtensionKey; -import android.hardware.camera2.impl.PublicKey; - -import com.android.internal.camera.flags.Flags; - -/** - * ExtensionCaptureResult contains definitions for extension-specific CaptureResult keys that - * are available during a {@link android.hardware.camera2.CameraExtensionSession} after a - * {@link android.hardware.camera2.CaptureRequest} is processed. - * - * Note that ExtensionCaptureResult is not intended to be used as a replacement - * for CaptureResult in the extensions. It serves as a supplementary class providing - * extension-specific CaptureResult keys. Developers should use these keys in conjunction - * with regular CaptureResult objects during a - * {@link android.hardware.camera2.CameraExtensionSession}. - * - * @see CaptureResult - * @see CaptureRequest - * @see CameraExtensionSession - */ -@FlaggedApi(Flags.FLAG_CONCERT_MODE_API) -public final class ExtensionCaptureResult { - - /** To avoid exposing constructor */ - private ExtensionCaptureResult() {} - - /** - * <p>The padding region for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>An array [left, top, right, bottom] of the padding in pixels remaining on all four sides - * before the target region starts to go out of bounds.</p> - * <p>The padding region denotes the area surrounding the stabilized target region within which - * the camera can be moved while maintaining the target region in view. As the camera moves, - * the padding region adjusts to represent the proximity of the target region to the - * boundary, which is the point at which the target region will start to go out of bounds.</p> - * <p><b>Range of valid values:</b><br> - * The padding is the number of remaining pixels of padding in each direction. - * The pixels reference the active array coordinate system. Negative values indicate the target region - * is out of bounds. The value for this key may be null for when the stabilization mode is - * in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_OFF } - * or {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_GIMBAL } mode.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<int[]> EFV_PADDING_REGION = CaptureResult.EFV_PADDING_REGION; - - /** - * <p>The padding region when {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM } is enabled for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>An array [left, top, right, bottom] of the padding in pixels remaining on all four sides - * before the target region starts to go out of bounds.</p> - * <p>This may differ from {@link ExtensionCaptureResult#EFV_PADDING_REGION } as the field of view can change - * during {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM }, altering the boundary region and thus updating the padding between the - * target region and the boundary.</p> - * <p><b>Range of valid values:</b><br> - * The padding is the number of remaining pixels of padding in each direction - * when {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM } is enabled. Negative values indicate the target region is out of bounds. - * The value for this key may be null for when the {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM } is not enabled.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see ExtensionCaptureRequest#EFV_AUTO_ZOOM - * @see ExtensionCaptureResult#EFV_PADDING_REGION - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<int[]> EFV_AUTO_ZOOM_PADDING_REGION = CaptureResult.EFV_AUTO_ZOOM_PADDING_REGION; - - /** - * <p>List of coordinates representing the target region relative to the - * {@link android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE } - * for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in - * {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>A list of android.graphics.PointF that define the coordinates of the target region - * relative to the - * {@link android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE }. - * The array represents the target region coordinates as: top-left, top-right, bottom-left, - * bottom-right.</p> - * <p><b>Range of valid values:</b><br> - * The list of target coordinates will define a region within the bounds of the - * {@link android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE }</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<android.graphics.PointF[]> EFV_TARGET_COORDINATES = CaptureResult.EFV_TARGET_COORDINATES; - - /** - * <p>Used to apply an additional digital zoom factor for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>For the {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * feature, an additional zoom factor is applied on top of the existing {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio}. - * This additional zoom factor serves as a buffer to provide more flexibility for the - * {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } - * mode. If {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } is not set, the default will be used. - * The effectiveness of the stabilization may be influenced by the amount of padding zoom - * applied. A higher padding zoom factor can stabilize the target region more effectively - * with greater flexibility but may potentially impact image quality. Conversely, a lower - * padding zoom factor may be used to prioritize preserving image quality, albeit with less - * leeway in stabilizing the target region. It is recommended to set the - * {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } to at least 1.5.</p> - * <p>If {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM } is enabled, the requested {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } will be overridden. - * {@link ExtensionCaptureRequest#EFV_MAX_PADDING_ZOOM_FACTOR } can be checked for more details on controlling the - * padding zoom factor during {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM }.</p> - * <p><b>Range of valid values:</b><br> - * {@link CameraExtensionCharacteristics#EFV_PADDING_ZOOM_FACTOR_RANGE }</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see CaptureRequest#CONTROL_ZOOM_RATIO - * @see ExtensionCaptureRequest#EFV_AUTO_ZOOM - * @see ExtensionCaptureRequest#EFV_MAX_PADDING_ZOOM_FACTOR - * @see ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR - * @see CameraExtensionCharacteristics#EFV_PADDING_ZOOM_FACTOR_RANGE - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_PADDING_ZOOM_FACTOR = CaptureResult.EFV_PADDING_ZOOM_FACTOR; - - /** - * <p>Set the stabilization mode for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension</p> - * <p>The desired stabilization mode. Gimbal stabilization mode provides simple, non-locked - * video stabilization. Locked mode uses the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * stabilization feature to fixate on the current region, utilizing it as the target area for - * stabilization.</p> - * <p><b>Possible values:</b></p> - * <ul> - * <li>{@link #EFV_STABILIZATION_MODE_OFF OFF}</li> - * <li>{@link #EFV_STABILIZATION_MODE_GIMBAL GIMBAL}</li> - * <li>{@link #EFV_STABILIZATION_MODE_LOCKED LOCKED}</li> - * </ul> - * - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * @see #EFV_STABILIZATION_MODE_OFF - * @see #EFV_STABILIZATION_MODE_GIMBAL - * @see #EFV_STABILIZATION_MODE_LOCKED - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Integer> EFV_STABILIZATION_MODE = CaptureResult.EFV_STABILIZATION_MODE; - - /** - * <p>Used to enable or disable auto zoom for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>Turn on auto zoom to let the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * feature decide at any given point a combination of - * {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} and {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } - * to keep the target region in view and stabilized. The combination chosen by the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * will equal the requested {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} multiplied with the requested - * {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR }. A limit can be set on the padding zoom if wanting - * to control image quality further using {@link ExtensionCaptureRequest#EFV_MAX_PADDING_ZOOM_FACTOR }.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see CaptureRequest#CONTROL_ZOOM_RATIO - * @see ExtensionCaptureRequest#EFV_MAX_PADDING_ZOOM_FACTOR - * @see ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Boolean> EFV_AUTO_ZOOM = CaptureResult.EFV_AUTO_ZOOM; - - /** - * <p>Representing the desired clockwise rotation - * of the target region in degrees for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>Value representing the desired clockwise rotation of the target - * region in degrees.</p> - * <p><b>Range of valid values:</b><br> - * 0 to 360</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_ROTATE_VIEWPORT = CaptureResult.EFV_ROTATE_VIEWPORT; - - /** - * <p>Used to update the target region for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>A android.util.Pair<Integer,Integer> that represents the desired - * <Horizontal,Vertical> shift of the current locked view (or target region) in - * pixels. Negative values indicate left and upward shifts, while positive values indicate - * right and downward shifts in the active array coordinate system.</p> - * <p><b>Range of valid values:</b><br> - * android.util.Pair<Integer,Integer> represents the - * <Horizontal,Vertical> shift. The range for the horizontal shift is - * [-max({@link ExtensionCaptureResult#EFV_PADDING_REGION }-left), max({@link ExtensionCaptureResult#EFV_PADDING_REGION }-right)]. - * The range for the vertical shift is - * [-max({@link ExtensionCaptureResult#EFV_PADDING_REGION }-top), max({@link ExtensionCaptureResult#EFV_PADDING_REGION }-bottom)]</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see ExtensionCaptureResult#EFV_PADDING_REGION - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<android.util.Pair<Integer,Integer>> EFV_TRANSLATE_VIEWPORT = CaptureResult.EFV_TRANSLATE_VIEWPORT; - - /** - * <p>Used to limit the {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } if - * {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM } is enabled for the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode.</p> - * <p>If {@link ExtensionCaptureRequest#EFV_AUTO_ZOOM } is enabled, this key can be used to set a limit - * on the {@link ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } chosen by the - * {@link android.hardware.camera2.CameraExtensionCharacteristics#EXTENSION_EYES_FREE_VIDEOGRAPHY } - * extension in {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_STABILIZATION_MODE_LOCKED } mode - * to control image quality.</p> - * <p><b>Range of valid values:</b><br> - * The range of {@link CameraExtensionCharacteristics#EFV_PADDING_ZOOM_FACTOR_RANGE }. Use a value greater than or equal to - * the {@link android.hardware.camera2.ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR } to - * effectively utilize this key.</p> - * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p> - * - * @see ExtensionCaptureRequest#EFV_AUTO_ZOOM - * @see ExtensionCaptureRequest#EFV_PADDING_ZOOM_FACTOR - * @see CameraExtensionCharacteristics#EFV_PADDING_ZOOM_FACTOR_RANGE - */ - @PublicKey - @NonNull - @ExtensionKey - @FlaggedApi(Flags.FLAG_CONCERT_MODE_API) - public static final Key<Float> EFV_MAX_PADDING_ZOOM_FACTOR = CaptureResult.EFV_MAX_PADDING_ZOOM_FACTOR; - -} diff --git a/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java b/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java index c3d68cf04edd..93cdde0d9a20 100644 --- a/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java +++ b/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java @@ -529,167 +529,6 @@ public class CameraExtensionsProxyService extends Service { */ public static Pair<PreviewExtenderImpl, ImageCaptureExtenderImpl> initializeExtension( int extensionType) { - if (Flags.concertModeApi()) { - if (extensionType == CameraExtensionCharacteristics.EXTENSION_EYES_FREE_VIDEOGRAPHY) { - // Basic extensions are deprecated starting with extension version 1.5 - return new Pair<>(new PreviewExtenderImpl() { - @Override - public boolean isExtensionAvailable(String cameraId, - CameraCharacteristics cameraCharacteristics) { - return false; - } - - @Override - public void init(String cameraId, CameraCharacteristics cameraCharacteristics) { - - } - - @Override - public androidx.camera.extensions.impl.CaptureStageImpl getCaptureStage() { - return null; - } - - @Override - public ProcessorType getProcessorType() { - return null; - } - - @Override - public ProcessorImpl getProcessor() { - return null; - } - - @Nullable - @Override - public List<Pair<Integer, Size[]>> getSupportedResolutions() { - return null; - } - - @Override - public void onInit(String cameraId, CameraCharacteristics cameraCharacteristics, - Context context) { } - - @Override - public void onDeInit() { } - - @Override - public androidx.camera.extensions.impl.CaptureStageImpl onPresetSession() { - return null; - } - - @Override - public androidx.camera.extensions.impl.CaptureStageImpl onEnableSession() { - return null; - } - - @Override - public androidx.camera.extensions.impl.CaptureStageImpl onDisableSession() { - return null; - } - - @Override - public int onSessionType() { - return 0; - } - }, new ImageCaptureExtenderImpl() { - @Override - public boolean isExtensionAvailable(String cameraId, - CameraCharacteristics cameraCharacteristics) { - return false; - } - - @Override - public void init(String cameraId, - CameraCharacteristics cameraCharacteristics) { } - - @Override - public CaptureProcessorImpl getCaptureProcessor() { - return null; - } - - @Override - public - List<androidx.camera.extensions.impl.CaptureStageImpl> getCaptureStages() { - return null; - } - - @Override - public int getMaxCaptureStage() { - return 0; - } - - @Override - public List<Pair<Integer, Size[]>> getSupportedResolutions() { - return null; - } - - @Override - public List<Pair<Integer, Size[]>> getSupportedPostviewResolutions( - Size captureSize) { - return null; - } - - @Override - public Range<Long> getEstimatedCaptureLatencyRange( - Size captureOutputSize) { - return null; - } - - @Override - public List<CaptureRequest.Key> getAvailableCaptureRequestKeys() { - return null; - } - - @Override - public List<CaptureResult.Key> getAvailableCaptureResultKeys() { - return null; - } - - @Override - public boolean isCaptureProcessProgressAvailable() { - return false; - } - - @Override - public Pair<Long, Long> getRealtimeCaptureLatency() { - return null; - } - - @Override - public boolean isPostviewAvailable() { - return false; - } - - @Override - public void onInit(String cameraId, - CameraCharacteristics cameraCharacteristics, Context context) { } - - @Override - public void onDeInit() { } - - @Override - public androidx.camera.extensions.impl.CaptureStageImpl onPresetSession() { - return null; - } - - @Override - public androidx.camera.extensions.impl.CaptureStageImpl onEnableSession() { - return null; - } - - @Override - public androidx.camera.extensions.impl.CaptureStageImpl onDisableSession() { - return null; - } - - @Override - public int onSessionType() { - return 0; - } - }); - } - } - switch (extensionType) { case CameraExtensionCharacteristics.EXTENSION_AUTOMATIC: return new Pair<>(new AutoPreviewExtenderImpl(), @@ -714,88 +553,6 @@ public class CameraExtensionsProxyService extends Service { * @hide */ public static AdvancedExtenderImpl initializeAdvancedExtensionImpl(int extensionType) { - if (Flags.concertModeApi()) { - if (extensionType == CameraExtensionCharacteristics.EXTENSION_EYES_FREE_VIDEOGRAPHY) { - if (EFV_SUPPORTED) { - return new EyesFreeVideographyAdvancedExtenderImpl(); - } else { - return new AdvancedExtenderImpl() { - @Override - public boolean isExtensionAvailable(String cameraId, - Map<String, CameraCharacteristics> characteristicsMap) { - return false; - } - - @Override - public void init(String cameraId, - Map<String, CameraCharacteristics> characteristicsMap) { - - } - - @Override - public Range<Long> getEstimatedCaptureLatencyRange(String cameraId, - Size captureOutputSize, int imageFormat) { - return null; - } - - @Override - public Map<Integer, List<Size>> getSupportedPreviewOutputResolutions( - String cameraId) { - return null; - } - - @Override - public Map<Integer, List<Size>> getSupportedCaptureOutputResolutions( - String cameraId) { - return null; - } - - @Override - public Map<Integer, List<Size>> getSupportedPostviewResolutions( - Size captureSize) { - return null; - } - - @Override - public List<Size> getSupportedYuvAnalysisResolutions(String cameraId) { - return null; - } - - @Override - public SessionProcessorImpl createSessionProcessor() { - return null; - } - - @Override - public List<CaptureRequest.Key> getAvailableCaptureRequestKeys() { - return null; - } - - @Override - public List<CaptureResult.Key> getAvailableCaptureResultKeys() { - return null; - } - - @Override - public boolean isCaptureProcessProgressAvailable() { - return false; - } - - @Override - public boolean isPostviewAvailable() { - return false; - } - - @Override - public List<Pair<CameraCharacteristics.Key, Object>> - getAvailableCharacteristicsKeyValues() { - return Collections.emptyList(); - } - }; - } - } - } - switch (extensionType) { case CameraExtensionCharacteristics.EXTENSION_AUTOMATIC: return new AutoAdvancedExtenderImpl(); |