diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index 3672de4f8d003..f06ffaa66c3cb 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -167,7 +167,9 @@ public final class CameraCharacteristics extends CameraMetadata { /** *

Maximum and minimum exposure compensation * setting, in counts of - * android.control.aeCompensationStepSize

+ * {@link CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP android.control.aeCompensationStep}.

+ * + * @see CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP */ public static final Key CONTROL_AE_COMPENSATION_RANGE = new Key("android.control.aeCompensationRange", int[].class); @@ -446,12 +448,16 @@ public final class CameraCharacteristics extends CameraMetadata { *

The maximum numbers of any type of input streams * that can be configured and used simultaneously by a camera device.

*

When set to 0, it means no input stream is supported.

- *

The image format for a input stream can be any supported format provided - * by android.scaler.availableInputFormats. When using an input stream, there must be - * at least one output stream configured to to receive the reprocessed images.

+ *

The image format for a input stream can be any supported + * format provided by + * {@link CameraCharacteristics#SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP android.scaler.availableInputOutputFormatsMap}. When using an + * input stream, there must be at least one output stream + * configured to to receive the reprocessed images.

*

For example, for Zero Shutter Lag (ZSL) still capture use case, the input * stream image format will be RAW_OPAQUE, the associated output stream image format * should be JPEG.

+ * + * @see CameraCharacteristics#SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP */ public static final Key REQUEST_MAX_NUM_INPUT_STREAMS = new Key("android.request.maxNumInputStreams", int.class); @@ -505,7 +511,7 @@ public final class CameraCharacteristics extends CameraMetadata { * to do this query each of android.request.availableRequestKeys, * android.request.availableResultKeys, * android.request.availableCharacteristicsKeys.

- *

XX: Maybe these should go into android.info.supportedHardwareLevel + *

XX: Maybe these should go into {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} * as a table instead?

*

The following capabilities are guaranteed to be available on * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} == FULL devices:

@@ -665,7 +671,7 @@ public final class CameraCharacteristics extends CameraMetadata { *

The mapping of image formats that are supported by this * camera device for input streams, to their corresponding output formats.

*

All camera devices with at least 1 - * android.request.request.maxNumInputStreams will have at least one + * {@link CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS android.request.maxNumInputStreams} will have at least one * available input format.

*

The camera device will support the following map of formats, * if its dependent capability is supported:

@@ -712,6 +718,7 @@ public final class CameraCharacteristics extends CameraMetadata { * listed as available in this map is not valid.

*

TODO: Add java type mapping for this property.

* + * @see CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS * @see CameraCharacteristics#SCALER_AVAILABLE_STALL_DURATIONS */ public static final Key SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP = @@ -885,11 +892,12 @@ public final class CameraCharacteristics extends CameraMetadata { *
  • IMPLEMENTATION_DEFINED
  • * *

    All other formats may or may not have an allowed stall duration on - * a per-capability basis; refer to android.request.availableCapabilities + * a per-capability basis; refer to {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} * for more details.

    *

    See {@link CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration} for more information about * calculating the max frame rate (absent stalls).

    * + * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES * @see CaptureRequest#SENSOR_FRAME_DURATION */ public static final Key SCALER_AVAILABLE_STALL_DURATIONS = @@ -922,7 +930,7 @@ public final class CameraCharacteristics extends CameraMetadata { /** *

    Maximum possible frame duration (minimum frame * rate).

    - *

    The largest possible android.sensor.frameDuration + *

    The largest possible {@link CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration} * that will be accepted by the camera device. Attempting to use * frame durations beyond the maximum will result in the frame duration * being clipped to the maximum. See that control @@ -935,6 +943,7 @@ public final class CameraCharacteristics extends CameraMetadata { * * @see CameraCharacteristics#SCALER_AVAILABLE_JPEG_MIN_DURATIONS * @see CameraCharacteristics#SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS + * @see CaptureRequest#SENSOR_FRAME_DURATION */ public static final Key SENSOR_INFO_MAX_FRAME_DURATION = new Key("android.sensor.info.maxFrameDuration", long.class); @@ -952,7 +961,9 @@ public final class CameraCharacteristics extends CameraMetadata { * including black calibration pixels.

    *

    Maximum output resolution for raw format must * match this in - * android.scaler.info.availableSizesPerFormat.

    + * {@link CameraCharacteristics#SCALER_AVAILABLE_STREAM_CONFIGURATIONS android.scaler.availableStreamConfigurations}.

    + * + * @see CameraCharacteristics#SCALER_AVAILABLE_STREAM_CONFIGURATIONS */ public static final Key SENSOR_INFO_PIXEL_ARRAY_SIZE = new Key("android.sensor.info.pixelArraySize", android.hardware.camera2.Size.class); @@ -1026,8 +1037,10 @@ public final class CameraCharacteristics extends CameraMetadata { /** *

    Optional. Defaults to [OFF]. Lists the supported test - * pattern modes for android.test.patternMode.

    + * pattern modes for {@link CaptureRequest#SENSOR_TEST_PATTERN_MODE android.sensor.testPatternMode}.

    *

    Optional - This value may be {@code null} on some devices.

    + * + * @see CaptureRequest#SENSOR_TEST_PATTERN_MODE */ public static final Key SENSOR_AVAILABLE_TEST_PATTERN_MODES = new Key("android.sensor.availableTestPatternModes", byte.class); diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index 1ce91f64b135e..a5819825810f9 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -400,10 +400,12 @@ public abstract class CameraMetadata { * formats. *
  • The maximum available resolution for RAW16 streams (both * input/output) will match the value in - * android.sensor.info.pixelArraySize.
  • + * {@link CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE android.sensor.info.pixelArraySize}. *
  • All DNG-related optional metadata entries are provided * by the camera device.
  • * + * + * @see CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES */ public static final int REQUEST_AVAILABLE_CAPABILITIES_DNG = 5; @@ -783,10 +785,11 @@ public abstract class CameraMetadata { /** *

    The camera device's auto white balance routine is active; - * the application's values for android.colorCorrection.transform + * the application's values for {@link CaptureRequest#COLOR_CORRECTION_TRANSFORM android.colorCorrection.transform} * and {@link CaptureRequest#COLOR_CORRECTION_GAINS android.colorCorrection.gains} are ignored.

    * * @see CaptureRequest#COLOR_CORRECTION_GAINS + * @see CaptureRequest#COLOR_CORRECTION_TRANSFORM * @see CaptureRequest#CONTROL_AWB_MODE */ public static final int CONTROL_AWB_MODE_AUTO = 1; @@ -1031,10 +1034,11 @@ public abstract class CameraMetadata { * this should still operate correctly (but will not return * face detection statistics to the framework).

    *

    Unlike the other scene modes, {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode}, - * {@link CaptureRequest#CONTROL_AWB_MODE android.control.awbMode}, and android.control.afMode + * {@link CaptureRequest#CONTROL_AWB_MODE android.control.awbMode}, and {@link CaptureRequest#CONTROL_AF_MODE android.control.afMode} * remain active when FACE_PRIORITY is set.

    * * @see CaptureRequest#CONTROL_AE_MODE + * @see CaptureRequest#CONTROL_AF_MODE * @see CaptureRequest#CONTROL_AWB_MODE * @see CaptureRequest#STATISTICS_FACE_DETECT_MODE * @see CaptureRequest#CONTROL_SCENE_MODE @@ -1429,7 +1433,7 @@ public abstract class CameraMetadata { /** *

    Use the tone mapping curve specified in - * android.tonemap.curve.

    + * the android.tonemap.curve* entries.

    *

    All color enhancement and tonemapping must be disabled, except * for applying the tonemapping curve specified by * {@link CaptureRequest#TONEMAP_CURVE_RED android.tonemap.curveRed}, {@link CaptureRequest#TONEMAP_CURVE_BLUE android.tonemap.curveBlue}, or @@ -1642,21 +1646,25 @@ public abstract class CameraMetadata { // /** - *

    The lens parameters ({@link CaptureRequest#LENS_FOCAL_LENGTH android.lens.focalLength}, android.lens.focusDistance - * android.lens.filterDensity and {@link CaptureRequest#LENS_APERTURE android.lens.aperture}) are not changing.

    + *

    The lens parameters ({@link CaptureRequest#LENS_FOCAL_LENGTH android.lens.focalLength}, {@link CaptureRequest#LENS_FOCUS_DISTANCE android.lens.focusDistance}, + * {@link CaptureRequest#LENS_FILTER_DENSITY android.lens.filterDensity} and {@link CaptureRequest#LENS_APERTURE android.lens.aperture}) are not changing.

    * * @see CaptureRequest#LENS_APERTURE + * @see CaptureRequest#LENS_FILTER_DENSITY * @see CaptureRequest#LENS_FOCAL_LENGTH + * @see CaptureRequest#LENS_FOCUS_DISTANCE * @see CaptureResult#LENS_STATE */ public static final int LENS_STATE_STATIONARY = 0; /** - *

    Any of the lens parameters ({@link CaptureRequest#LENS_FOCAL_LENGTH android.lens.focalLength}, android.lens.focusDistance - * android.lens.filterDensity or {@link CaptureRequest#LENS_APERTURE android.lens.aperture}) is changing.

    + *

    Any of the lens parameters ({@link CaptureRequest#LENS_FOCAL_LENGTH android.lens.focalLength}, {@link CaptureRequest#LENS_FOCUS_DISTANCE android.lens.focusDistance}, + * {@link CaptureRequest#LENS_FILTER_DENSITY android.lens.filterDensity} or {@link CaptureRequest#LENS_APERTURE android.lens.aperture}) is changing.

    * * @see CaptureRequest#LENS_APERTURE + * @see CaptureRequest#LENS_FILTER_DENSITY * @see CaptureRequest#LENS_FOCAL_LENGTH + * @see CaptureRequest#LENS_FOCUS_DISTANCE * @see CaptureResult#LENS_STATE */ public static final int LENS_STATE_MOVING = 1; diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index 326205edc22d1..408e53206368c 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -472,7 +472,7 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { *

    If AE precapture is triggered (see {@link CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER android.control.aePrecaptureTrigger}) * when AE is already locked, the camera device will not change the exposure time * ({@link CaptureRequest#SENSOR_EXPOSURE_TIME android.sensor.exposureTime}) and sensitivity ({@link CaptureRequest#SENSOR_SENSITIVITY android.sensor.sensitivity}) - * parameters. The flash may be fired if the android.control.aeMode + * parameters. The flash may be fired if the {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} * is ON_AUTO_FLASH/ON_AUTO_FLASH_REDEYE and the scene is too dark. If the * {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} is ON_ALWAYS_FLASH, the scene may become overexposed.

    *

    See {@link CaptureResult#CONTROL_AE_STATE android.control.aeState} for AE lock related state transition details.

    @@ -581,9 +581,10 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { * mode it is set to

    *

    Only effective if {@link CaptureRequest#CONTROL_MODE android.control.mode} = AUTO.

    *

    If the lens is controlled by the camera device auto-focus algorithm, - * the camera device will report the current AF status in android.control.afState + * the camera device will report the current AF status in {@link CaptureResult#CONTROL_AF_STATE android.control.afState} * in result metadata.

    * + * @see CaptureResult#CONTROL_AF_STATE * @see CaptureRequest#CONTROL_MODE * @see #CONTROL_AF_MODE_OFF * @see #CONTROL_AF_MODE_AUTO @@ -658,7 +659,7 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { * {@link CaptureRequest#COLOR_CORRECTION_MODE android.colorCorrection.mode}.

    *

    When set to the OFF mode, the camera device's auto white balance * routine is disabled. The applicantion manually controls the white - * balance by {@link CaptureRequest#COLOR_CORRECTION_TRANSFORM android.colorCorrection.transform}, android.colorCorrection.gains + * balance by {@link CaptureRequest#COLOR_CORRECTION_TRANSFORM android.colorCorrection.transform}, {@link CaptureRequest#COLOR_CORRECTION_GAINS android.colorCorrection.gains} * and {@link CaptureRequest#COLOR_CORRECTION_MODE android.colorCorrection.mode}.

    *

    When set to any other modes, the camera device's auto white balance * routine is disabled. The camera device uses each particular illumination @@ -944,7 +945,7 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { * one of the values listed in {@link CameraCharacteristics#LENS_INFO_AVAILABLE_APERTURES android.lens.info.availableApertures}.

    *

    When this is supported and {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} is OFF, * this can be set along with {@link CaptureRequest#SENSOR_EXPOSURE_TIME android.sensor.exposureTime}, - * {@link CaptureRequest#SENSOR_SENSITIVITY android.sensor.sensitivity}, and android.sensor.frameDuration + * {@link CaptureRequest#SENSOR_SENSITIVITY android.sensor.sensitivity}, and {@link CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration} * to achieve manual exposure control.

    *

    The requested aperture value may take several frames to reach the * requested value; the camera device will report the current (intermediate) @@ -959,6 +960,7 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { * @see CameraCharacteristics#LENS_INFO_AVAILABLE_APERTURES * @see CaptureResult#LENS_STATE * @see CaptureRequest#SENSOR_EXPOSURE_TIME + * @see CaptureRequest#SENSOR_FRAME_DURATION * @see CaptureRequest#SENSOR_SENSITIVITY */ public static final Key LENS_APERTURE = @@ -1091,9 +1093,11 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { * for raw output, where only a few fixed scales may be * possible. The width and height of the crop region cannot * be set to be smaller than floor( activeArraySize.width / - * android.scaler.maxDigitalZoom ) and floor( - * activeArraySize.height / android.scaler.maxDigitalZoom), - * respectively.

    + * {@link CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM android.scaler.availableMaxDigitalZoom} ) and floor( + * activeArraySize.height / + * {@link CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM android.scaler.availableMaxDigitalZoom}), respectively.

    + * + * @see CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM */ public static final Key SCALER_CROP_REGION = new Key("android.scaler.cropRegion", android.graphics.Rect.class); diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index f556d71aedcff..345b52c09b365 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -391,9 +391,10 @@ public final class CaptureResult extends CameraMetadata { * mode it is set to

    *

    Only effective if {@link CaptureRequest#CONTROL_MODE android.control.mode} = AUTO.

    *

    If the lens is controlled by the camera device auto-focus algorithm, - * the camera device will report the current AF status in android.control.afState + * the camera device will report the current AF status in {@link CaptureResult#CONTROL_AF_STATE android.control.afState} * in result metadata.

    * + * @see CaptureResult#CONTROL_AF_STATE * @see CaptureRequest#CONTROL_MODE * @see #CONTROL_AF_MODE_OFF * @see #CONTROL_AF_MODE_AUTO @@ -771,7 +772,7 @@ public final class CaptureResult extends CameraMetadata { * {@link CaptureRequest#COLOR_CORRECTION_MODE android.colorCorrection.mode}.

    *

    When set to the OFF mode, the camera device's auto white balance * routine is disabled. The applicantion manually controls the white - * balance by {@link CaptureRequest#COLOR_CORRECTION_TRANSFORM android.colorCorrection.transform}, android.colorCorrection.gains + * balance by {@link CaptureRequest#COLOR_CORRECTION_TRANSFORM android.colorCorrection.transform}, {@link CaptureRequest#COLOR_CORRECTION_GAINS android.colorCorrection.gains} * and {@link CaptureRequest#COLOR_CORRECTION_MODE android.colorCorrection.mode}.

    *

    When set to any other modes, the camera device's auto white balance * routine is disabled. The camera device uses each particular illumination @@ -1019,8 +1020,9 @@ public final class CaptureResult extends CameraMetadata { * of the pixel array, and the width,height of the pixel array given in * {@link CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE android.sensor.info.pixelArraySize}. This may include hot pixels * that lie outside of the active array bounds given by - * android.sensor.activeArraySize.

    + * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}.

    * + * @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE * @see CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE */ public static final Key HOT_PIXEL_MAP = @@ -1099,7 +1101,7 @@ public final class CaptureResult extends CameraMetadata { * one of the values listed in {@link CameraCharacteristics#LENS_INFO_AVAILABLE_APERTURES android.lens.info.availableApertures}.

    *

    When this is supported and {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} is OFF, * this can be set along with {@link CaptureRequest#SENSOR_EXPOSURE_TIME android.sensor.exposureTime}, - * {@link CaptureRequest#SENSOR_SENSITIVITY android.sensor.sensitivity}, and android.sensor.frameDuration + * {@link CaptureRequest#SENSOR_SENSITIVITY android.sensor.sensitivity}, and {@link CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration} * to achieve manual exposure control.

    *

    The requested aperture value may take several frames to reach the * requested value; the camera device will report the current (intermediate) @@ -1114,6 +1116,7 @@ public final class CaptureResult extends CameraMetadata { * @see CameraCharacteristics#LENS_INFO_AVAILABLE_APERTURES * @see CaptureResult#LENS_STATE * @see CaptureRequest#SENSOR_EXPOSURE_TIME + * @see CaptureRequest#SENSOR_FRAME_DURATION * @see CaptureRequest#SENSOR_SENSITIVITY */ public static final Key LENS_APERTURE = @@ -1325,9 +1328,11 @@ public final class CaptureResult extends CameraMetadata { * for raw output, where only a few fixed scales may be * possible. The width and height of the crop region cannot * be set to be smaller than floor( activeArraySize.width / - * android.scaler.maxDigitalZoom ) and floor( - * activeArraySize.height / android.scaler.maxDigitalZoom), - * respectively.

    + * {@link CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM android.scaler.availableMaxDigitalZoom} ) and floor( + * activeArraySize.height / + * {@link CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM android.scaler.availableMaxDigitalZoom}), respectively.

    + * + * @see CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM */ public static final Key SCALER_CROP_REGION = new Key("android.scaler.cropRegion", android.graphics.Rect.class); @@ -1738,7 +1743,7 @@ public final class CaptureResult extends CameraMetadata { * ({@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} == OFF or {@link CaptureRequest#CONTROL_MODE android.control.mode} == OFF), * the {@link CaptureRequest#CONTROL_AE_ANTIBANDING_MODE android.control.aeAntibandingMode} doesn't do the antibanding, and the * application can ensure it selects exposure times that do not cause banding - * issues by looking into this metadata field. See android.control.aeAntibandingMode + * issues by looking into this metadata field. See {@link CaptureRequest#CONTROL_AE_ANTIBANDING_MODE android.control.aeAntibandingMode} * for more details.

    *

    Report NONE if there doesn't appear to be flickering illumination.

    *