Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ecb17aa authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Camera: Move bokeh mode to extendedSceneMode tag" into rvc-dev

parents 85e1a774 796863a5
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -17230,8 +17230,8 @@ package android.hardware.camera2 {
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Rational> CONTROL_AE_COMPENSATION_STEP;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Boolean> CONTROL_AE_LOCK_AVAILABLE;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AF_AVAILABLE_MODES;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.Capability[]> CONTROL_AVAILABLE_BOKEH_CAPABILITIES;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_EFFECTS;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.Capability[]> CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_MODES;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_SCENE_MODES;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES;
@@ -17452,9 +17452,6 @@ package android.hardware.camera2 {
    field public static final int CONTROL_AWB_STATE_INACTIVE = 0; // 0x0
    field public static final int CONTROL_AWB_STATE_LOCKED = 3; // 0x3
    field public static final int CONTROL_AWB_STATE_SEARCHING = 1; // 0x1
    field public static final int CONTROL_BOKEH_MODE_CONTINUOUS = 2; // 0x2
    field public static final int CONTROL_BOKEH_MODE_OFF = 0; // 0x0
    field public static final int CONTROL_BOKEH_MODE_STILL_CAPTURE = 1; // 0x1
    field public static final int CONTROL_CAPTURE_INTENT_CUSTOM = 0; // 0x0
    field public static final int CONTROL_CAPTURE_INTENT_MANUAL = 6; // 0x6
    field public static final int CONTROL_CAPTURE_INTENT_MOTION_TRACKING = 7; // 0x7
@@ -17472,9 +17469,13 @@ package android.hardware.camera2 {
    field public static final int CONTROL_EFFECT_MODE_SEPIA = 4; // 0x4
    field public static final int CONTROL_EFFECT_MODE_SOLARIZE = 3; // 0x3
    field public static final int CONTROL_EFFECT_MODE_WHITEBOARD = 6; // 0x6
    field public static final int CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS = 2; // 0x2
    field public static final int CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE = 1; // 0x1
    field public static final int CONTROL_EXTENDED_SCENE_MODE_DISABLED = 0; // 0x0
    field public static final int CONTROL_MODE_AUTO = 1; // 0x1
    field public static final int CONTROL_MODE_OFF = 0; // 0x0
    field public static final int CONTROL_MODE_OFF_KEEP_STATE = 3; // 0x3
    field public static final int CONTROL_MODE_USE_EXTENDED_SCENE_MODE = 4; // 0x4
    field public static final int CONTROL_MODE_USE_SCENE_MODE = 2; // 0x2
    field public static final int CONTROL_SCENE_MODE_ACTION = 2; // 0x2
    field public static final int CONTROL_SCENE_MODE_BARCODE = 16; // 0x10
@@ -17666,10 +17667,10 @@ package android.hardware.camera2 {
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> CONTROL_AWB_LOCK;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_AWB_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AWB_REGIONS;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_BOKEH_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_CAPTURE_INTENT;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_EFFECT_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> CONTROL_ENABLE_ZSL;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_EXTENDED_SCENE_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_POST_RAW_SENSITIVITY_BOOST;
    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_SCENE_MODE;
@@ -17753,10 +17754,10 @@ package android.hardware.camera2 {
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AWB_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AWB_REGIONS;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AWB_STATE;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_BOKEH_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_CAPTURE_INTENT;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_EFFECT_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Boolean> CONTROL_ENABLE_ZSL;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_EXTENDED_SCENE_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_MODE;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_POST_RAW_SENSITIVITY_BOOST;
    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_SCENE_MODE;
+55 −55
Original line number Diff line number Diff line
@@ -1125,42 +1125,43 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
            new Key<android.util.Range<Integer>>("android.control.postRawSensitivityBoostRange", new TypeReference<android.util.Range<Integer>>() {{ }});

    /**
     * <p>The list of bokeh modes for {@link CaptureRequest#CONTROL_BOKEH_MODE android.control.bokehMode} that are supported by this camera
     * device, and each bokeh mode's maximum streaming (non-stall) size with bokeh effect.</p>
     * <p>For OFF mode, the camera behaves normally with no bokeh effect.</p>
     * <p>For STILL_CAPTURE mode, the maximum streaming dimension specifies the limit under which
     * bokeh is effective when capture intent is PREVIEW. Note that when capture intent is
     * PREVIEW, the bokeh effect may not be as high quality compared to STILL_CAPTURE intent
     * in order to maintain reasonable frame rate. The maximum streaming dimension must be one
     * of the YUV_420_888 or PRIVATE resolutions in availableStreamConfigurations, or (0, 0)
     * if preview bokeh is not supported. If the application configures a stream larger than
     * the maximum streaming dimension, bokeh effect may not be applied for this stream for
     * PREVIEW intent.</p>
     * <p>For CONTINUOUS mode, the maximum streaming dimension specifies the limit under which
     * bokeh is effective. This dimension must be one of the YUV_420_888 or PRIVATE resolutions
     * in availableStreamConfigurations, and if the sensor maximum resolution is larger than or
     * equal to 1080p, the maximum streaming dimension must be at least 1080p. If the
     * application configures a stream with larger dimension, the stream may not have bokeh
     * effect applied.</p>
     * <p>The list of extended scene modes for {@link CaptureRequest#CONTROL_EXTENDED_SCENE_MODE android.control.extendedSceneMode} that are supported
     * by this camera device, and each extended scene mode's maximum streaming (non-stall) size
     * with  effect.</p>
     * <p>For DISABLED mode, the camera behaves normally with no extended scene mode enabled.</p>
     * <p>For BOKEH_STILL_CAPTURE mode, the maximum streaming dimension specifies the limit
     * under which bokeh is effective when capture intent is PREVIEW. Note that when capture
     * intent is PREVIEW, the bokeh effect may not be as high in quality compared to
     * STILL_CAPTURE intent in order to maintain reasonable frame rate. The maximum streaming
     * dimension must be one of the YUV_420_888 or PRIVATE resolutions in
     * availableStreamConfigurations, or (0, 0) if preview bokeh is not supported. If the
     * application configures a stream larger than the maximum streaming dimension, bokeh
     * effect may not be applied for this stream for PREVIEW intent.</p>
     * <p>For BOKEH_CONTINUOUS mode, the maximum streaming dimension specifies the limit under
     * which bokeh is effective. This dimension must be one of the YUV_420_888 or PRIVATE
     * resolutions in availableStreamConfigurations, and if the sensor maximum resolution is
     * larger than or equal to 1080p, the maximum streaming dimension must be at least 1080p.
     * If the application configures a stream with larger dimension, the stream may not have
     * bokeh effect applied.</p>
     * <p><b>Units</b>: (mode, width, height)</p>
     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
     * <p><b>Limited capability</b> -
     * Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
     * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p>
     *
     * @see CaptureRequest#CONTROL_BOKEH_MODE
     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
     * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
     * @hide
     */
    public static final Key<int[]> CONTROL_AVAILABLE_BOKEH_MAX_SIZES =
            new Key<int[]>("android.control.availableBokehMaxSizes", int[].class);
    public static final Key<int[]> CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES =
            new Key<int[]>("android.control.availableExtendedSceneModeMaxSizes", int[].class);

    /**
     * <p>The ranges of supported zoom ratio for non-OFF {@link CaptureRequest#CONTROL_BOKEH_MODE android.control.bokehMode}.</p>
     * <p>When bokeh mode is enabled, the camera device may have limited range of zoom ratios
     * compared to when bokeh mode is disabled. This tag lists the zoom ratio ranges for all
     * supported non-OFF bokeh modes, in the same order as in
     * {@link CameraCharacteristics#CONTROL_AVAILABLE_BOKEH_CAPABILITIES android.control.availableBokehCapabilities}.</p>
     * <p>The ranges of supported zoom ratio for non-DISABLED {@link CaptureRequest#CONTROL_EXTENDED_SCENE_MODE android.control.extendedSceneMode}.</p>
     * <p>When extended scene mode is set, the camera device may have limited range of zoom ratios
     * compared to when extended scene mode is DISABLED. This tag lists the zoom ratio ranges
     * for all supported non-DISABLED extended scene modes, in the same order as in
     * android.control.availableExtended.</p>
     * <p>Range [1.0, 1.0] means that no zoom (optical or digital) is supported.</p>
     * <p><b>Units</b>: (minZoom, maxZoom)</p>
     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
@@ -1168,46 +1169,45 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
     * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p>
     *
     * @see CameraCharacteristics#CONTROL_AVAILABLE_BOKEH_CAPABILITIES
     * @see CaptureRequest#CONTROL_BOKEH_MODE
     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
     * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
     * @hide
     */
    public static final Key<float[]> CONTROL_AVAILABLE_BOKEH_ZOOM_RATIO_RANGES =
            new Key<float[]>("android.control.availableBokehZoomRatioRanges", float[].class);

    /**
     * <p>The list of bokeh modes for {@link CaptureRequest#CONTROL_BOKEH_MODE android.control.bokehMode} that are supported by
     * this camera device, and each bokeh mode's capabilities such as maximum streaming size
     * with bokeh effect, and supported zoom ratio ranges.</p>
     * <p>For OFF mode, the camera behaves normally with no bokeh effect.</p>
     * <p>For STILL_CAPTURE mode, the maximum streaming dimension specifies the limit under which
     * bokeh is effective when capture intent is PREVIEW. Note that when capture intent is
     * PREVIEW, the bokeh effect may not be as high quality compared to STILL_CAPTURE intent
     * in order to maintain reasonable frame rate. The maximum streaming dimension must be one
     * of the YUV_420_888 or PRIVATE resolutions in availableStreamConfigurations, or (0, 0)
     * if preview bokeh is not supported. If the application configures a stream larger than
     * the maximum streaming dimension, bokeh effect may not be applied for this stream for
     * PREVIEW intent.</p>
     * <p>For CONTINUOUS mode, the maximum streaming dimension specifies the limit under which
     * bokeh is effective. This dimension must be one of the YUV_420_888 or PRIVATE resolutions
     * in availableStreamConfigurations, and if the sensor maximum resolution is larger than or
     * equal to 1080p, the maximum streaming dimension must be at least 1080p. If the
     * application configures a stream with larger dimension, the stream may not have bokeh
     * effect applied.</p>
     * <p>When bokeh mode is enabled, the camera device may have limited range of zoom ratios
     * compared to when bokeh mode is disabled. availableBokehCapabilities lists the zoom
     * ranges for all supported bokeh modes. A range of (1.0, 1.0) means that no zoom
    public static final Key<float[]> CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES =
            new Key<float[]>("android.control.availableExtendedSceneModeZoomRatioRanges", float[].class);

    /**
     * <p>The list of extended scene modes for {@link CaptureRequest#CONTROL_EXTENDED_SCENE_MODE android.control.extendedSceneMode} that
     * are supported by this camera device, and each extended scene mode's capabilities such
     * as maximum streaming size, and supported zoom ratio ranges.</p>
     * <p>For DISABLED mode, the camera behaves normally with no extended scene mdoe enabled.</p>
     * <p>For BOKEH_STILL_CAPTURE mode, the maximum streaming dimension specifies the limit
     * under which bokeh is effective when capture intent is PREVIEW. Note that when capture
     * intent is PREVIEW, the bokeh effect may not be as high quality compared to STILL_CAPTURE
     * intent in order to maintain reasonable frame rate. The maximum streaming dimension must
     * be one of the YUV_420_888 or PRIVATE resolutions in availableStreamConfigurations, or
     * (0, 0) if preview bokeh is not supported. If the application configures a stream
     * larger than the maximum streaming dimension, bokeh effect may not be applied for this
     * stream for PREVIEW intent.</p>
     * <p>For BOKEH_CONTINUOUS mode, the maximum streaming dimension specifies the limit under
     * which bokeh is effective. This dimension must be one of the YUV_420_888 or PRIVATE
     * resolutions in availableStreamConfigurations, and if the sensor maximum resolution is
     * larger than or equal to 1080p, the maximum streaming dimension must be at least 1080p.
     * If the application configures a stream with larger dimension, the stream may not have
     * bokeh effect applied.</p>
     * <p>When extended scene mode is set, the camera device may have limited range of zoom ratios
     * compared to when the mode is DISABLED. availableExtendedSceneModeCapabilities lists the
     * zoom ranges for all supported extended modes. A range of (1.0, 1.0) means that no zoom
     * (optical or digital) is supported.</p>
     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
     *
     * @see CaptureRequest#CONTROL_BOKEH_MODE
     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
     */
    @PublicKey
    @NonNull
    @SyntheticKey
    public static final Key<android.hardware.camera2.params.Capability[]> CONTROL_AVAILABLE_BOKEH_CAPABILITIES =
            new Key<android.hardware.camera2.params.Capability[]>("android.control.availableBokehCapabilities", android.hardware.camera2.params.Capability[].class);
    public static final Key<android.hardware.camera2.params.Capability[]> CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES =
            new Key<android.hardware.camera2.params.Capability[]>("android.control.availableExtendedSceneModeCapabilities", android.hardware.camera2.params.Capability[].class);

    /**
     * <p>Minimum and maximum zoom ratios supported by this camera device.</p>
+29 −8
Original line number Diff line number Diff line
@@ -2190,6 +2190,7 @@ public abstract class CameraMetadata<TKey> {
     * This setting can only be used if scene mode is supported (i.e.
     * {@link CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES android.control.availableSceneModes}
     * contain some modes other than DISABLED).</p>
     * <p>For extended scene modes such as BOKEH, please use USE_EXTENDED_SCENE_MODE instead.</p>
     *
     * @see CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES
     * @see CaptureRequest#CONTROL_MODE
@@ -2209,6 +2210,19 @@ public abstract class CameraMetadata<TKey> {
     */
    public static final int CONTROL_MODE_OFF_KEEP_STATE = 3;

    /**
     * <p>Use a specific extended scene mode.</p>
     * <p>When extended scene mode is on, the camera device may override certain control
     * parameters, such as targetFpsRange, AE, AWB, and AF modes, to achieve best power and
     * quality tradeoffs. Only the mandatory stream combinations of LIMITED hardware level
     * are guaranteed.</p>
     * <p>This setting can only be used if extended scene mode is supported (i.e.
     * android.control.availableExtendedSceneModes
     * contains some modes other than DISABLED).</p>
     * @see CaptureRequest#CONTROL_MODE
     */
    public static final int CONTROL_MODE_USE_EXTENDED_SCENE_MODE = 4;

    //
    // Enumeration values for CaptureRequest#CONTROL_SCENE_MODE
    //
@@ -2540,32 +2554,39 @@ public abstract class CameraMetadata<TKey> {
    public static final int CONTROL_VIDEO_STABILIZATION_MODE_ON = 1;

    //
    // Enumeration values for CaptureRequest#CONTROL_BOKEH_MODE
    // Enumeration values for CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
    //

    /**
     * <p>Bokeh mode is disabled.</p>
     * @see CaptureRequest#CONTROL_BOKEH_MODE
     * <p>Extended scene mode is disabled.</p>
     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
     */
    public static final int CONTROL_BOKEH_MODE_OFF = 0;
    public static final int CONTROL_EXTENDED_SCENE_MODE_DISABLED = 0;

    /**
     * <p>High quality bokeh mode is enabled for all non-raw streams (including YUV,
     * JPEG, and IMPLEMENTATION_DEFINED) when capture intent is STILL_CAPTURE. Due to the
     * extra image processing, this mode may introduce additional stall to non-raw streams.
     * This mode should be used in high quality still capture use case.</p>
     * @see CaptureRequest#CONTROL_BOKEH_MODE
     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
     */
    public static final int CONTROL_BOKEH_MODE_STILL_CAPTURE = 1;
    public static final int CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE = 1;

    /**
     * <p>Bokeh effect must not slow down capture rate relative to sensor raw output,
     * and the effect is applied to all processed streams no larger than the maximum
     * streaming dimension. This mode should be used if performance and power are a
     * priority, such as video recording.</p>
     * @see CaptureRequest#CONTROL_BOKEH_MODE
     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
     */
    public static final int CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS = 2;

    /**
     * <p>Vendor defined extended scene modes. These depend on vendor implementation.</p>
     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
     * @hide
     */
    public static final int CONTROL_BOKEH_MODE_CONTINUOUS = 2;
    public static final int CONTROL_EXTENDED_SCENE_MODE_VENDOR_START = 0x40;

    //
    // Enumeration values for CaptureRequest#EDGE_MODE
+23 −24

File changed.

Preview size limit exceeded, changes collapsed.

+23 −24

File changed.

Preview size limit exceeded, changes collapsed.

Loading