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

Commit 4d18b3da authored by Dario Freni's avatar Dario Freni Committed by Android (Google) Code Review
Browse files

Merge "Revert "Camera: Low Light Boost AE Mode"" into main

parents 0ab7ed58 4a54d4a3
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -18810,7 +18810,6 @@ package android.hardware.camera2 {
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AWB_AVAILABLE_MODES;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Boolean> CONTROL_AWB_LOCK_AVAILABLE;
    field @FlaggedApi("com.android.internal.camera.flags.camera_ae_mode_low_light_boost") @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Range<java.lang.Float>> CONTROL_LOW_LIGHT_BOOST_INFO_LUMINANCE_RANGE;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> CONTROL_MAX_REGIONS_AE;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> CONTROL_MAX_REGIONS_AF;
    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> CONTROL_MAX_REGIONS_AWB;
@@ -19094,7 +19093,6 @@ package android.hardware.camera2 {
    field public static final int CONTROL_AE_MODE_ON_AUTO_FLASH = 2; // 0x2
    field public static final int CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE = 4; // 0x4
    field public static final int CONTROL_AE_MODE_ON_EXTERNAL_FLASH = 5; // 0x5
    field @FlaggedApi("com.android.internal.camera.flags.camera_ae_mode_low_light_boost") public static final int CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY = 6; // 0x6
    field public static final int CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL = 2; // 0x2
    field public static final int CONTROL_AE_PRECAPTURE_TRIGGER_IDLE = 0; // 0x0
    field public static final int CONTROL_AE_PRECAPTURE_TRIGGER_START = 1; // 0x1
@@ -19160,8 +19158,6 @@ package android.hardware.camera2 {
    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 @FlaggedApi("com.android.internal.camera.flags.camera_ae_mode_low_light_boost") public static final int CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE = 1; // 0x1
    field @FlaggedApi("com.android.internal.camera.flags.camera_ae_mode_low_light_boost") public static final int CONTROL_LOW_LIGHT_BOOST_STATE_INACTIVE = 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
@@ -19482,7 +19478,6 @@ package android.hardware.camera2 {
    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 @FlaggedApi("com.android.internal.camera.flags.camera_ae_mode_low_light_boost") @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_LOW_LIGHT_BOOST_STATE;
    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;
+0 −21
Original line number Diff line number Diff line
@@ -1331,27 +1331,6 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
    public static final Key<Boolean> CONTROL_AUTOFRAMING_AVAILABLE =
            new Key<Boolean>("android.control.autoframingAvailable", boolean.class);

    /**
     * <p>The operating luminance range of low light boost measured in lux (lx).</p>
     * <p><b>Range of valid values:</b><br></p>
     * <p>The lower bound indicates the lowest scene luminance value the AE mode
     * 'ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY' can operate within. Scenes of lower luminance
     * than this may receive less brightening, increased noise, or artifacts.</p>
     * <p>The upper bound indicates the luminance threshold at the point when the mode is enabled.
     * For example, 'Range[0.3, 30.0]' defines 0.3 lux being the lowest scene luminance the
     * mode can reliably support. 30.0 lux represents the threshold when this mode is
     * activated. Scenes measured at less than or equal to 30 lux will activate low light
     * boost.</p>
     * <p>If this key is defined, then the AE mode 'ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY' will
     * also be present.</p>
     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
     */
    @PublicKey
    @NonNull
    @FlaggedApi(Flags.FLAG_CAMERA_AE_MODE_LOW_LIGHT_BOOST)
    public static final Key<android.util.Range<Float>> CONTROL_LOW_LIGHT_BOOST_INFO_LUMINANCE_RANGE =
            new Key<android.util.Range<Float>>("android.control.lowLightBoostInfoLuminanceRange", new TypeReference<android.util.Range<Float>>() {{ }});

    /**
     * <p>List of edge enhancement modes for {@link CaptureRequest#EDGE_MODE android.edge.mode} that are supported by this camera
     * device.</p>
+0 −58
Original line number Diff line number Diff line
@@ -2333,46 +2333,6 @@ public abstract class CameraMetadata<TKey> {
     */
    public static final int CONTROL_AE_MODE_ON_EXTERNAL_FLASH = 5;

    /**
     * <p>Like 'ON' but applies additional brightness boost in low light scenes.</p>
     * <p>When the scene lighting conditions are within the range defined by
     * {@link CameraCharacteristics#CONTROL_LOW_LIGHT_BOOST_INFO_LUMINANCE_RANGE android.control.lowLightBoostInfoLuminanceRange} this mode will apply additional
     * brightness boost.</p>
     * <p>This mode will automatically adjust the intensity of low light boost applied
     * according to the scene lighting conditions. A darker scene will receive more boost
     * while a brighter scene will receive less boost.</p>
     * <p>This mode can ignore the set target frame rate to allow more light to be captured
     * which can result in choppier motion. The frame rate can extend to lower than the
     * {@link CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES android.control.aeAvailableTargetFpsRanges} but will not go below 10 FPS. This mode
     * can also increase the sensor sensitivity gain which can result in increased luma
     * and chroma noise. The sensor sensitivity gain can extend to higher values beyond
     * {@link CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE android.sensor.info.sensitivityRange}. This mode may also apply additional
     * processing to recover details in dark and bright areas of the image,and noise
     * reduction at high sensitivity gain settings to manage the trade-off between light
     * sensitivity and capture noise.</p>
     * <p>This mode is restricted to two output surfaces. One output surface type can either
     * be SurfaceView or TextureView. Another output surface type can either be MediaCodec
     * or MediaRecorder. This mode cannot be used with a target FPS range higher than 30
     * FPS.</p>
     * <p>If the session configuration is not supported, the AE mode reported in the
     * CaptureResult will be 'ON' instead of 'ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY'.</p>
     * <p>The application can observe the CapturerResult field
     * {@link CaptureResult#CONTROL_LOW_LIGHT_BOOST_STATE android.control.lowLightBoostState} to determine when low light boost is 'ACTIVE' or
     * 'INACTIVE'.</p>
     * <p>The low light boost is 'ACTIVE' once the scene lighting condition is less than the
     * upper bound lux value defined by {@link CameraCharacteristics#CONTROL_LOW_LIGHT_BOOST_INFO_LUMINANCE_RANGE android.control.lowLightBoostInfoLuminanceRange}.
     * This mode will be 'INACTIVE' once the scene lighting condition is greater than the
     * upper bound lux value defined by {@link CameraCharacteristics#CONTROL_LOW_LIGHT_BOOST_INFO_LUMINANCE_RANGE android.control.lowLightBoostInfoLuminanceRange}.</p>
     *
     * @see CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
     * @see CameraCharacteristics#CONTROL_LOW_LIGHT_BOOST_INFO_LUMINANCE_RANGE
     * @see CaptureResult#CONTROL_LOW_LIGHT_BOOST_STATE
     * @see CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
     * @see CaptureRequest#CONTROL_AE_MODE
     */
    @FlaggedApi(Flags.FLAG_CAMERA_AE_MODE_LOW_LIGHT_BOOST)
    public static final int CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY = 6;

    //
    // Enumeration values for CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
    //
@@ -4113,24 +4073,6 @@ public abstract class CameraMetadata<TKey> {
     */
    public static final int CONTROL_AUTOFRAMING_STATE_CONVERGED = 2;

    //
    // Enumeration values for CaptureResult#CONTROL_LOW_LIGHT_BOOST_STATE
    //

    /**
     * <p>The AE mode 'ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY' is enabled but not applied.</p>
     * @see CaptureResult#CONTROL_LOW_LIGHT_BOOST_STATE
     */
    @FlaggedApi(Flags.FLAG_CAMERA_AE_MODE_LOW_LIGHT_BOOST)
    public static final int CONTROL_LOW_LIGHT_BOOST_STATE_INACTIVE = 0;

    /**
     * <p>The AE mode 'ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY' is enabled and applied.</p>
     * @see CaptureResult#CONTROL_LOW_LIGHT_BOOST_STATE
     */
    @FlaggedApi(Flags.FLAG_CAMERA_AE_MODE_LOW_LIGHT_BOOST)
    public static final int CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE = 1;

    //
    // Enumeration values for CaptureResult#FLASH_STATE
    //
+0 −25
Original line number Diff line number Diff line
@@ -2813,31 +2813,6 @@ public class CaptureResult extends CameraMetadata<CaptureResult.Key<?>> {
    public static final Key<Integer> CONTROL_AUTOFRAMING_STATE =
            new Key<Integer>("android.control.autoframingState", int.class);

    /**
     * <p>Current state of the low light boost AE mode.</p>
     * <p>When low light boost is enabled by setting the AE mode to
     * 'ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY', it can dynamically apply a low light
     * boost when the light level threshold is exceeded.</p>
     * <p>This state indicates when low light boost is 'ACTIVE' and applied. Similarly, it can
     * indicate when it is not being applied by returning 'INACTIVE'.</p>
     * <p>This key will be absent from the CaptureResult if AE mode is not set to
     * 'ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY.</p>
     * <p><b>Possible values:</b></p>
     * <ul>
     *   <li>{@link #CONTROL_LOW_LIGHT_BOOST_STATE_INACTIVE INACTIVE}</li>
     *   <li>{@link #CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE ACTIVE}</li>
     * </ul>
     *
     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
     * @see #CONTROL_LOW_LIGHT_BOOST_STATE_INACTIVE
     * @see #CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE
     */
    @PublicKey
    @NonNull
    @FlaggedApi(Flags.FLAG_CAMERA_AE_MODE_LOW_LIGHT_BOOST)
    public static final Key<Integer> CONTROL_LOW_LIGHT_BOOST_STATE =
            new Key<Integer>("android.control.lowLightBoostState", int.class);

    /**
     * <p>Operation mode for edge
     * enhancement.</p>