From ace5bf04126f7dd49d75fca9218031f0db02e5dd Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Tue, 10 Dec 2013 17:36:40 -0800 Subject: [PATCH] CameraMetadata: updated generated code (with markdown support) - also updates description of android.blackLevel.lock Change-Id: I2d10c492bd6779bbb51672da9854252ba18d4327 --- .../camera2/CameraCharacteristics.java | 339 +++------ .../hardware/camera2/CameraMetadata.java | 414 ++++------- .../hardware/camera2/CaptureRequest.java | 605 ++++++---------- .../hardware/camera2/CaptureResult.java | 672 ++++++------------ 4 files changed, 695 insertions(+), 1335 deletions(-) diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index a38beec44f935..5f9c8c2a92907 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -127,74 +127,58 @@ public final class CameraCharacteristics extends CameraMetadata { *~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/ /** - *

- * Which set of antibanding modes are - * supported - *

+ *

Which set of antibanding modes are + * supported

*/ public static final Key CONTROL_AE_AVAILABLE_ANTIBANDING_MODES = new Key("android.control.aeAvailableAntibandingModes", byte[].class); /** - *

- * List of frame rate ranges supported by the - * AE algorithm/hardware - *

+ *

List of frame rate ranges supported by the + * AE algorithm/hardware

*/ public static final Key CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES = new Key("android.control.aeAvailableTargetFpsRanges", int[].class); /** - *

- * Maximum and minimum exposure compensation + *

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

+ * android.control.aeCompensationStepSize

*/ public static final Key CONTROL_AE_COMPENSATION_RANGE = new Key("android.control.aeCompensationRange", int[].class); /** - *

- * Smallest step by which exposure compensation - * can be changed - *

+ *

Smallest step by which exposure compensation + * can be changed

*/ public static final Key CONTROL_AE_COMPENSATION_STEP = new Key("android.control.aeCompensationStep", Rational.class); /** - *

- * List of AF modes that can be - * selected - *

+ *

List of AF modes that can be + * selected

*/ public static final Key CONTROL_AF_AVAILABLE_MODES = new Key("android.control.afAvailableModes", byte[].class); /** - *

- * what subset of the full color effect enum - * list is supported - *

+ *

what subset of the full color effect enum + * list is supported

*/ public static final Key CONTROL_AVAILABLE_EFFECTS = new Key("android.control.availableEffects", byte[].class); /** - *

- * what subset of the scene mode enum list is - * supported. - *

+ *

what subset of the scene mode enum list is + * supported.

*/ public static final Key CONTROL_AVAILABLE_SCENE_MODES = new Key("android.control.availableSceneModes", byte[].class); /** - *

- * List of video stabilization modes that can - * be supported - *

+ *

List of video stabilization modes that can + * be supported

*/ public static final Key CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES = new Key("android.control.availableVideoStabilizationModes", byte[].class); @@ -205,127 +189,93 @@ public final class CameraCharacteristics extends CameraMetadata { new Key("android.control.awbAvailableModes", byte[].class); /** - *

- * For AE, AWB, and AF, how many individual - * regions can be listed for metering? - *

+ *

For AE, AWB, and AF, how many individual + * regions can be listed for metering?

*/ public static final Key CONTROL_MAX_REGIONS = new Key("android.control.maxRegions", int.class); /** - *

- * Whether this camera has a - * flash - *

- *

- * If no flash, none of the flash controls do - * anything. All other metadata should return 0 - *

+ *

Whether this camera has a + * flash

+ *

If no flash, none of the flash controls do + * anything. All other metadata should return 0

*/ public static final Key FLASH_INFO_AVAILABLE = new Key("android.flash.info.available", byte.class); /** - *

- * Supported resolutions for the JPEG - * thumbnail - *

+ *

Supported resolutions for the JPEG + * thumbnail

*/ public static final Key JPEG_AVAILABLE_THUMBNAIL_SIZES = new Key("android.jpeg.availableThumbnailSizes", android.hardware.camera2.Size[].class); /** - *

- * List of supported aperture - * values - *

- *

- * If variable aperture not available, only setting - * should be for the fixed aperture - *

+ *

List of supported aperture + * values

+ *

If variable aperture not available, only setting + * should be for the fixed aperture

*/ public static final Key LENS_INFO_AVAILABLE_APERTURES = new Key("android.lens.info.availableApertures", float[].class); /** - *

- * List of supported ND filter - * values - *

- *

- * If not available, only setting is 0. Otherwise, + *

List of supported ND filter + * values

+ *

If not available, only setting is 0. Otherwise, * lists the available exposure index values for dimming * (2 would mean the filter is set to reduce incoming - * light by two stops) - *

+ * light by two stops)

*/ public static final Key LENS_INFO_AVAILABLE_FILTER_DENSITIES = new Key("android.lens.info.availableFilterDensities", float[].class); /** - *

- * If fitted with optical zoom, what focal + *

If fitted with optical zoom, what focal * lengths are available. If not, the static focal - * length - *

- *

- * If optical zoom not supported, only one value - * should be reported - *

+ * length

+ *

If optical zoom not supported, only one value + * should be reported

*/ public static final Key LENS_INFO_AVAILABLE_FOCAL_LENGTHS = new Key("android.lens.info.availableFocalLengths", float[].class); /** - *

- * List of supported optical image - * stabilization modes - *

+ *

List of supported optical image + * stabilization modes

*/ public static final Key LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION = new Key("android.lens.info.availableOpticalStabilization", byte[].class); /** - *

- * Hyperfocal distance for this lens; set to - * 0 if fixed focus - *

- *

- * The hyperfocal distance is used for the old - * API's 'fixed' setting - *

+ *

Hyperfocal distance for this lens; set to + * 0 if fixed focus

+ *

The hyperfocal distance is used for the old + * API's 'fixed' setting

*/ public static final Key LENS_INFO_HYPERFOCAL_DISTANCE = new Key("android.lens.info.hyperfocalDistance", float.class); /** - *

- * Shortest distance from frontmost surface - * of the lens that can be focused correctly - *

- *

- * If the lens is fixed-focus, this should be - * 0 - *

+ *

Shortest distance from frontmost surface + * of the lens that can be focused correctly

+ *

If the lens is fixed-focus, this should be + * 0

*/ public static final Key LENS_INFO_MINIMUM_FOCUS_DISTANCE = new Key("android.lens.info.minimumFocusDistance", float.class); /** - *

- * Dimensions of lens shading - * map - *

+ *

Dimensions of lens shading + * map

*/ public static final Key LENS_INFO_SHADING_MAP_SIZE = new Key("android.lens.info.shadingMapSize", android.hardware.camera2.Size.class); /** - *

- * Direction the camera faces relative to - * device screen - *

+ *

Direction the camera faces relative to + * device screen

* @see #LENS_FACING_FRONT * @see #LENS_FACING_BACK */ @@ -333,18 +283,14 @@ public final class CameraCharacteristics extends CameraMetadata { new Key("android.lens.facing", int.class); /** - *

- * If set to 1, the HAL will always split result + *

If set to 1, the HAL will always split result * metadata for a single capture into multiple buffers, - * returned using multiple process_capture_result calls. - *

- *

- * Does not need to be listed in static + * returned using multiple process_capture_result calls.

+ *

Does not need to be listed in static * metadata. Support for partial results will be reworked in * future versions of camera service. This quirk will stop * working at that point; DO NOT USE without careful - * consideration of future support. - *

+ * consideration of future support.

* * Optional - This value may be null on some devices. * @@ -354,160 +300,122 @@ public final class CameraCharacteristics extends CameraMetadata { new Key("android.quirks.usePartialResult", byte.class); /** - *

- * How many output streams can be allocated at - * the same time for each type of stream - *

- *

- * Video snapshot with preview callbacks requires 3 + *

How many output streams can be allocated at + * the same time for each type of stream

+ *

Video snapshot with preview callbacks requires 3 * processed streams (preview, record, app callbacks) and - * one JPEG stream (snapshot) - *

+ * one JPEG stream (snapshot)

*/ public static final Key REQUEST_MAX_NUM_OUTPUT_STREAMS = new Key("android.request.maxNumOutputStreams", int[].class); /** - *

- * List of app-visible formats - *

+ *

List of app-visible formats

*/ public static final Key SCALER_AVAILABLE_FORMATS = new Key("android.scaler.availableFormats", int[].class); /** - *

- * The minimum frame duration that is supported + *

The minimum frame duration that is supported * for each resolution in availableJpegSizes. Should * correspond to the frame duration when only that JPEG * stream is active and captured in a burst, with all - * processing set to FAST - *

- *

- * When multiple streams are configured, the minimum - * frame duration will be >= max(individual stream min - * durations) - *

+ * processing set to FAST

+ *

When multiple streams are configured, the minimum + * frame duration will be >= max(individual stream min + * durations)

*/ public static final Key SCALER_AVAILABLE_JPEG_MIN_DURATIONS = new Key("android.scaler.availableJpegMinDurations", long[].class); /** - *

- * The resolutions available for output from - * the JPEG block. Listed as width x height - *

+ *

The resolutions available for output from + * the JPEG block. Listed as width x height

*/ public static final Key SCALER_AVAILABLE_JPEG_SIZES = new Key("android.scaler.availableJpegSizes", android.hardware.camera2.Size[].class); /** - *

- * The maximum ratio between active area width + *

The maximum ratio between active area width * and crop region width, or between active area height and * crop region height, if the crop region height is larger - * than width - *

+ * than width

*/ public static final Key SCALER_AVAILABLE_MAX_DIGITAL_ZOOM = new Key("android.scaler.availableMaxDigitalZoom", float.class); /** - *

- * The minimum frame duration that is supported + *

The minimum frame duration that is supported * for each resolution in availableProcessedSizes. Should * correspond to the frame duration when only that processed * stream is active, with all processing set to - * FAST - *

- *

- * When multiple streams are configured, the minimum - * frame duration will be >= max(individual stream min - * durations) - *

+ * FAST

+ *

When multiple streams are configured, the minimum + * frame duration will be >= max(individual stream min + * durations)

*/ public static final Key SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS = new Key("android.scaler.availableProcessedMinDurations", long[].class); /** - *

- * The resolutions available for use with + *

The resolutions available for use with * processed output streams, such as YV12, NV12, and * platform opaque YUV/RGB streams to the GPU or video - * encoders. Listed as width, height - *

- *

- * The actual supported resolution list may be limited by + * encoders. Listed as width, height

+ *

The actual supported resolution list may be limited by * consumer end points for different use cases. For example, for * recording use case, the largest supported resolution may be * limited by max supported size from encoder, for preview use * case, the largest supported resolution may be limited by max - * resolution SurfaceTexture/SurfaceView can support. - *

+ * resolution SurfaceTexture/SurfaceView can support.

*/ public static final Key SCALER_AVAILABLE_PROCESSED_SIZES = new Key("android.scaler.availableProcessedSizes", android.hardware.camera2.Size[].class); /** - *

- * Area of raw data which corresponds to only + *

Area of raw data which corresponds to only * active pixels; smaller or equal to - * pixelArraySize. - *

+ * pixelArraySize.

*/ public static final Key SENSOR_INFO_ACTIVE_ARRAY_SIZE = new Key("android.sensor.info.activeArraySize", android.graphics.Rect.class); /** - *

- * Range of valid sensitivities - *

+ *

Range of valid sensitivities

*/ public static final Key SENSOR_INFO_SENSITIVITY_RANGE = new Key("android.sensor.info.sensitivityRange", int[].class); /** - *

- * Range of valid exposure - * times - *

+ *

Range of valid exposure + * times

*/ public static final Key SENSOR_INFO_EXPOSURE_TIME_RANGE = new Key("android.sensor.info.exposureTimeRange", long[].class); /** - *

- * Maximum possible frame duration (minimum frame - * rate) - *

- *

- * Minimum duration is a function of resolution, + *

Maximum possible frame duration (minimum frame + * rate)

+ *

Minimum duration is a function of resolution, * processing settings. See * android.scaler.availableProcessedMinDurations * android.scaler.availableJpegMinDurations - * android.scaler.availableRawMinDurations - *

+ * android.scaler.availableRawMinDurations

*/ public static final Key SENSOR_INFO_MAX_FRAME_DURATION = new Key("android.sensor.info.maxFrameDuration", long.class); /** - *

- * The physical dimensions of the full pixel - * array - *

- *

- * Needed for FOV calculation for old API - *

+ *

The physical dimensions of the full pixel + * array

+ *

Needed for FOV calculation for old API

*/ public static final Key SENSOR_INFO_PHYSICAL_SIZE = new Key("android.sensor.info.physicalSize", float[].class); /** - *

- * Gain factor from electrons to raw units when - * ISO=100 - *

+ *

Gain factor from electrons to raw units when + * ISO=100

* * Optional - This value may be null on some devices. * @@ -519,16 +427,12 @@ public final class CameraCharacteristics extends CameraMetadata { new Key("android.sensor.baseGainFactor", Rational.class); /** - *

- * Maximum sensitivity that is implemented - * purely through analog gain - *

- *

- * For android.sensor.sensitivity values less than or + *

Maximum sensitivity that is implemented + * purely through analog gain

+ *

For android.sensor.sensitivity values less than or * equal to this, all applied gain must be analog. For * values above this, it can be a mix of analog and - * digital - *

+ * digital

* * Optional - This value may be null on some devices. * @@ -540,60 +444,46 @@ public final class CameraCharacteristics extends CameraMetadata { new Key("android.sensor.maxAnalogSensitivity", int.class); /** - *

- * Clockwise angle through which the output + *

Clockwise angle through which the output * image needs to be rotated to be upright on the device * screen in its native orientation. Also defines the * direction of rolling shutter readout, which is from top - * to bottom in the sensor's coordinate system - *

+ * to bottom in the sensor's coordinate system

*/ public static final Key SENSOR_ORIENTATION = new Key("android.sensor.orientation", int.class); /** - *

- * Which face detection modes are available, - * if any - *

- *

- * OFF means face detection is disabled, it must - * be included in the list. - *

- * SIMPLE means the device supports the + *

Which face detection modes are available, + * if any

+ *

OFF means face detection is disabled, it must + * be included in the list.

+ *

SIMPLE means the device supports the * android.statistics.faceRectangles and - * android.statistics.faceScores outputs. - *

- * FULL means the device additionally supports the + * android.statistics.faceScores outputs.

+ *

FULL means the device additionally supports the * android.statistics.faceIds and - * android.statistics.faceLandmarks outputs. - *

+ * android.statistics.faceLandmarks outputs.

*/ public static final Key STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES = new Key("android.statistics.info.availableFaceDetectModes", byte[].class); /** - *

- * Maximum number of simultaneously detectable - * faces - *

+ *

Maximum number of simultaneously detectable + * faces

*/ public static final Key STATISTICS_INFO_MAX_FACE_COUNT = new Key("android.statistics.info.maxFaceCount", int.class); /** - *

- * Maximum number of supported points in the - * tonemap curve - *

+ *

Maximum number of supported points in the + * tonemap curve

*/ public static final Key TONEMAP_MAX_CURVE_POINTS = new Key("android.tonemap.maxCurvePoints", int.class); /** - *

- * A list of camera LEDs that are available on this system. - *

+ *

A list of camera LEDs that are available on this system.

* @see #LED_AVAILABLE_LEDS_TRANSMIT * * @hide @@ -602,17 +492,14 @@ public final class CameraCharacteristics extends CameraMetadata { new Key("android.led.availableLeds", int[].class); /** - *

- * The camera 3 HAL device can implement one of two possible + *

The camera 3 HAL device can implement one of two possible * operational modes; limited and full. Full support is * expected from new higher-end devices. Limited mode has * hardware requirements roughly in line with those for a * camera HAL device v1 implementation, and is expected from * older or inexpensive devices. Full is a strict superset of - * limited, and they share the same essential operational flow. - *

- * For full details refer to "S3. Operational Modes" in camera3.h - *

+ * limited, and they share the same essential operational flow.

+ *

For full details refer to "S3. Operational Modes" in camera3.h

* @see #INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED * @see #INFO_SUPPORTED_HARDWARE_LEVEL_FULL */ diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index 5d0bb33363296..bd997112f39f1 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -224,9 +224,7 @@ public abstract class CameraMetadata { // /** - *

- * android.led.transmit control is used - *

+ *

android.led.transmit control is used

* @see CameraCharacteristics#LED_AVAILABLE_LEDS * @hide */ @@ -251,28 +249,22 @@ public abstract class CameraMetadata { // /** - *

- * Use the android.colorCorrection.transform matrix - * and android.colorCorrection.gains to do color conversion - *

+ *

Use the android.colorCorrection.transform matrix + * and android.colorCorrection.gains to do color conversion

* @see CaptureRequest#COLOR_CORRECTION_MODE */ public static final int COLOR_CORRECTION_MODE_TRANSFORM_MATRIX = 0; /** - *

- * Must not slow down frame rate relative to raw - * bayer output - *

+ *

Must not slow down frame rate relative to raw + * bayer output

* @see CaptureRequest#COLOR_CORRECTION_MODE */ public static final int COLOR_CORRECTION_MODE_FAST = 1; /** - *

- * Frame rate may be reduced by high - * quality - *

+ *

Frame rate may be reduced by high + * quality

* @see CaptureRequest#COLOR_CORRECTION_MODE */ public static final int COLOR_CORRECTION_MODE_HIGH_QUALITY = 2; @@ -306,52 +298,42 @@ public abstract class CameraMetadata { // /** - *

- * Autoexposure is disabled; sensor.exposureTime, - * sensor.sensitivity and sensor.frameDuration are used - *

+ *

Autoexposure is disabled; sensor.exposureTime, + * sensor.sensitivity and sensor.frameDuration are used

* @see CaptureRequest#CONTROL_AE_MODE */ public static final int CONTROL_AE_MODE_OFF = 0; /** - *

- * Autoexposure is active, no flash - * control - *

+ *

Autoexposure is active, no flash + * control

* @see CaptureRequest#CONTROL_AE_MODE */ public static final int CONTROL_AE_MODE_ON = 1; /** - *

- * if flash exists Autoexposure is active, auto + *

if flash exists Autoexposure is active, auto * flash control; flash may be fired when precapture * trigger is activated, and for captures for which - * captureIntent = STILL_CAPTURE - *

+ * captureIntent = STILL_CAPTURE

* @see CaptureRequest#CONTROL_AE_MODE */ public static final int CONTROL_AE_MODE_ON_AUTO_FLASH = 2; /** - *

- * if flash exists Autoexposure is active, auto + *

if flash exists Autoexposure is active, auto * flash control for precapture trigger and always flash - * when captureIntent = STILL_CAPTURE - *

+ * when captureIntent = STILL_CAPTURE

* @see CaptureRequest#CONTROL_AE_MODE */ public static final int CONTROL_AE_MODE_ON_ALWAYS_FLASH = 3; /** - *

- * optional Automatic red eye reduction with flash. + *

optional Automatic red eye reduction with flash. * If deemed necessary, red eye reduction sequence should * fire when precapture trigger is activated, and final * flash should fire when captureIntent = - * STILL_CAPTURE - *

+ * STILL_CAPTURE

* @see CaptureRequest#CONTROL_AE_MODE */ public static final int CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE = 4; @@ -361,20 +343,16 @@ public abstract class CameraMetadata { // /** - *

- * The trigger is idle. - *

+ *

The trigger is idle.

* @see CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER */ public static final int CONTROL_AE_PRECAPTURE_TRIGGER_IDLE = 0; /** - *

- * The precapture metering sequence + *

The precapture metering sequence * must be started. The exact effect of the precapture * trigger depends on the current AE mode and - * state. - *

+ * state.

* @see CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER */ public static final int CONTROL_AE_PRECAPTURE_TRIGGER_START = 1; @@ -384,55 +362,44 @@ public abstract class CameraMetadata { // /** - *

- * The 3A routines do not control the lens; + *

The 3A routines do not control the lens; * android.lens.focusDistance is controlled by the - * application - *

+ * application

* @see CaptureRequest#CONTROL_AF_MODE */ public static final int CONTROL_AF_MODE_OFF = 0; /** - *

- * if lens is not fixed focus. - *

- * Use android.lens.minimumFocusDistance to determine if lens + *

If lens is not fixed focus.

+ *

Use android.lens.minimumFocusDistance to determine if lens * is fixed focus In this mode, the lens does not move unless * the autofocus trigger action is called. When that trigger * is activated, AF must transition to ACTIVE_SCAN, then to * the outcome of the scan (FOCUSED or - * NOT_FOCUSED). - *

- * Triggering cancel AF resets the lens position to default, - * and sets the AF state to INACTIVE. - *

+ * NOT_FOCUSED).

+ *

Triggering cancel AF resets the lens position to default, + * and sets the AF state to INACTIVE.

* @see CaptureRequest#CONTROL_AF_MODE */ public static final int CONTROL_AF_MODE_AUTO = 1; /** - *

- * In this mode, the lens does not move unless the - * autofocus trigger action is called. - *

- * When that trigger is activated, AF must transition to + *

In this mode, the lens does not move unless the + * autofocus trigger action is called.

+ *

When that trigger is activated, AF must transition to * ACTIVE_SCAN, then to the outcome of the scan (FOCUSED or * NOT_FOCUSED). Triggering cancel AF resets the lens * position to default, and sets the AF state to - * INACTIVE. - *

+ * INACTIVE.

* @see CaptureRequest#CONTROL_AF_MODE */ public static final int CONTROL_AF_MODE_MACRO = 2; /** - *

- * In this mode, the AF algorithm modifies the lens + *

In this mode, the AF algorithm modifies the lens * position continually to attempt to provide a - * constantly-in-focus image stream. - *

- * The focusing behavior should be suitable for good quality + * constantly-in-focus image stream.

+ *

The focusing behavior should be suitable for good quality * video recording; typically this means slower focus * movement and no overshoots. When the AF trigger is not * involved, the AF algorithm should start in INACTIVE state, @@ -440,25 +407,21 @@ public abstract class CameraMetadata { * states as appropriate. When the AF trigger is activated, * the algorithm should immediately transition into * AF_FOCUSED or AF_NOT_FOCUSED as appropriate, and lock the - * lens position until a cancel AF trigger is received. - *

- * Once cancel is received, the algorithm should transition + * lens position until a cancel AF trigger is received.

+ *

Once cancel is received, the algorithm should transition * back to INACTIVE and resume passive scan. Note that this * behavior is not identical to CONTINUOUS_PICTURE, since an * ongoing PASSIVE_SCAN must immediately be - * canceled. - *

+ * canceled.

* @see CaptureRequest#CONTROL_AF_MODE */ public static final int CONTROL_AF_MODE_CONTINUOUS_VIDEO = 3; /** - *

- * In this mode, the AF algorithm modifies the lens + *

In this mode, the AF algorithm modifies the lens * position continually to attempt to provide a - * constantly-in-focus image stream. - *

- * The focusing behavior should be suitable for still image + * constantly-in-focus image stream.

+ *

The focusing behavior should be suitable for still image * capture; typically this means focusing as fast as * possible. When the AF trigger is not involved, the AF * algorithm should start in INACTIVE state, and then @@ -467,22 +430,18 @@ public abstract class CameraMetadata { * trigger is activated, the algorithm should finish its * PASSIVE_SCAN if active, and then transition into * AF_FOCUSED or AF_NOT_FOCUSED as appropriate, and lock the - * lens position until a cancel AF trigger is received. - *

- * When the AF cancel trigger is activated, the algorithm + * lens position until a cancel AF trigger is received.

+ *

When the AF cancel trigger is activated, the algorithm * should transition back to INACTIVE and then act as if it - * has just been started. - *

+ * has just been started.

* @see CaptureRequest#CONTROL_AF_MODE */ public static final int CONTROL_AF_MODE_CONTINUOUS_PICTURE = 4; /** - *

- * Extended depth of field (digital focus). AF + *

Extended depth of field (digital focus). AF * trigger is ignored, AF state should always be - * INACTIVE. - *

+ * INACTIVE.

* @see CaptureRequest#CONTROL_AF_MODE */ public static final int CONTROL_AF_MODE_EDOF = 5; @@ -492,26 +451,20 @@ public abstract class CameraMetadata { // /** - *

- * The trigger is idle. - *

+ *

The trigger is idle.

* @see CaptureRequest#CONTROL_AF_TRIGGER */ public static final int CONTROL_AF_TRIGGER_IDLE = 0; /** - *

- * Autofocus must trigger now. - *

+ *

Autofocus must trigger now.

* @see CaptureRequest#CONTROL_AF_TRIGGER */ public static final int CONTROL_AF_TRIGGER_START = 1; /** - *

- * Autofocus must return to initial - * state, and cancel any active trigger. - *

+ *

Autofocus must return to initial + * state, and cancel any active trigger.

* @see CaptureRequest#CONTROL_AF_TRIGGER */ public static final int CONTROL_AF_TRIGGER_CANCEL = 2; @@ -570,59 +523,47 @@ public abstract class CameraMetadata { // /** - *

- * This request doesn't fall into the other + *

This request doesn't fall into the other * categories. Default to preview-like - * behavior. - *

+ * behavior.

* @see CaptureRequest#CONTROL_CAPTURE_INTENT */ public static final int CONTROL_CAPTURE_INTENT_CUSTOM = 0; /** - *

- * This request is for a preview-like usecase. The + *

This request is for a preview-like usecase. The * precapture trigger may be used to start off a metering - * w/flash sequence - *

+ * w/flash sequence

* @see CaptureRequest#CONTROL_CAPTURE_INTENT */ public static final int CONTROL_CAPTURE_INTENT_PREVIEW = 1; /** - *

- * This request is for a still capture-type - * usecase. - *

+ *

This request is for a still capture-type + * usecase.

* @see CaptureRequest#CONTROL_CAPTURE_INTENT */ public static final int CONTROL_CAPTURE_INTENT_STILL_CAPTURE = 2; /** - *

- * This request is for a video recording - * usecase. - *

+ *

This request is for a video recording + * usecase.

* @see CaptureRequest#CONTROL_CAPTURE_INTENT */ public static final int CONTROL_CAPTURE_INTENT_VIDEO_RECORD = 3; /** - *

- * This request is for a video snapshot (still - * image while recording video) usecase - *

+ *

This request is for a video snapshot (still + * image while recording video) usecase

* @see CaptureRequest#CONTROL_CAPTURE_INTENT */ public static final int CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT = 4; /** - *

- * This request is for a ZSL usecase; the + *

This request is for a ZSL usecase; the * application will stream full-resolution images and * reprocess one or several later for a final - * capture - *

+ * capture

* @see CaptureRequest#CONTROL_CAPTURE_INTENT */ public static final int CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG = 5; @@ -681,36 +622,30 @@ public abstract class CameraMetadata { // /** - *

- * Full application control of pipeline. All 3A + *

Full application control of pipeline. All 3A * routines are disabled, no other settings in - * android.control.* have any effect - *

+ * android.control.* have any effect

* @see CaptureRequest#CONTROL_MODE */ public static final int CONTROL_MODE_OFF = 0; /** - *

- * Use settings for each individual 3A routine. + *

Use settings for each individual 3A routine. * Manual control of capture parameters is disabled. All * controls in android.control.* besides sceneMode take - * effect - *

+ * effect

* @see CaptureRequest#CONTROL_MODE */ public static final int CONTROL_MODE_AUTO = 1; /** - *

- * Use specific scene mode. Enabling this disables + *

Use specific scene mode. Enabling this disables * control.aeMode, control.awbMode and control.afMode * controls; the HAL must ignore those settings while * USE_SCENE_MODE is active (except for FACE_PRIORITY * scene mode). Other control entries are still active. * This setting can only be used if availableSceneModes != - * UNSUPPORTED - *

+ * UNSUPPORTED

* @see CaptureRequest#CONTROL_MODE */ public static final int CONTROL_MODE_USE_SCENE_MODE = 2; @@ -725,18 +660,15 @@ public abstract class CameraMetadata { public static final int CONTROL_SCENE_MODE_UNSUPPORTED = 0; /** - *

- * if face detection support exists Use face + *

if face detection support exists Use face * detection data to drive 3A routines. If face detection * statistics are disabled, should still operate correctly * (but not return face detection statistics to the - * framework). - *

- * Unlike the other scene modes, aeMode, awbMode, and afMode + * framework).

+ *

Unlike the other scene modes, aeMode, awbMode, and afMode * remain active when FACE_PRIORITY is set. This is due to * compatibility concerns with the old camera - * API - *

+ * API

* @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_FACE_PRIORITY = 1; @@ -821,27 +753,21 @@ public abstract class CameraMetadata { // /** - *

- * No edge enhancement is applied - *

+ *

No edge enhancement is applied

* @see CaptureRequest#EDGE_MODE */ public static final int EDGE_MODE_OFF = 0; /** - *

- * Must not slow down frame rate relative to raw - * bayer output - *

+ *

Must not slow down frame rate relative to raw + * bayer output

* @see CaptureRequest#EDGE_MODE */ public static final int EDGE_MODE_FAST = 1; /** - *

- * Frame rate may be reduced by high - * quality - *

+ *

Frame rate may be reduced by high + * quality

* @see CaptureRequest#EDGE_MODE */ public static final int EDGE_MODE_HIGH_QUALITY = 2; @@ -851,30 +777,24 @@ public abstract class CameraMetadata { // /** - *

- * Do not fire the flash for this - * capture - *

+ *

Do not fire the flash for this + * capture

* @see CaptureRequest#FLASH_MODE */ public static final int FLASH_MODE_OFF = 0; /** - *

- * if android.flash.available is true Fire flash + *

if android.flash.available is true Fire flash * for this capture based on firingPower, - * firingTime. - *

+ * firingTime.

* @see CaptureRequest#FLASH_MODE */ public static final int FLASH_MODE_SINGLE = 1; /** - *

- * if android.flash.available is true Flash + *

if android.flash.available is true Flash * continuously on, power set by - * firingPower - *

+ * firingPower

* @see CaptureRequest#FLASH_MODE */ public static final int FLASH_MODE_TORCH = 2; @@ -898,27 +818,21 @@ public abstract class CameraMetadata { // /** - *

- * No noise reduction is applied - *

+ *

No noise reduction is applied

* @see CaptureRequest#NOISE_REDUCTION_MODE */ public static final int NOISE_REDUCTION_MODE_OFF = 0; /** - *

- * Must not slow down frame rate relative to raw - * bayer output - *

+ *

Must not slow down frame rate relative to raw + * bayer output

* @see CaptureRequest#NOISE_REDUCTION_MODE */ public static final int NOISE_REDUCTION_MODE_FAST = 1; /** - *

- * May slow down frame rate to provide highest - * quality - *

+ *

May slow down frame rate to provide highest + * quality

* @see CaptureRequest#NOISE_REDUCTION_MODE */ public static final int NOISE_REDUCTION_MODE_HIGH_QUALITY = 2; @@ -933,19 +847,15 @@ public abstract class CameraMetadata { public static final int STATISTICS_FACE_DETECT_MODE_OFF = 0; /** - *

- * Optional Return rectangle and confidence - * only - *

+ *

Optional Return rectangle and confidence + * only

* @see CaptureRequest#STATISTICS_FACE_DETECT_MODE */ public static final int STATISTICS_FACE_DETECT_MODE_SIMPLE = 1; /** - *

- * Optional Return all face - * metadata - *

+ *

Optional Return all face + * metadata

* @see CaptureRequest#STATISTICS_FACE_DETECT_MODE */ public static final int STATISTICS_FACE_DETECT_MODE_FULL = 2; @@ -969,28 +879,22 @@ public abstract class CameraMetadata { // /** - *

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

+ *

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

* @see CaptureRequest#TONEMAP_MODE */ public static final int TONEMAP_MODE_CONTRAST_CURVE = 0; /** - *

- * Must not slow down frame rate relative to raw - * bayer output - *

+ *

Must not slow down frame rate relative to raw + * bayer output

* @see CaptureRequest#TONEMAP_MODE */ public static final int TONEMAP_MODE_FAST = 1; /** - *

- * Frame rate may be reduced by high - * quality - *

+ *

Frame rate may be reduced by high + * quality

* @see CaptureRequest#TONEMAP_MODE */ public static final int TONEMAP_MODE_HIGH_QUALITY = 2; @@ -1000,60 +904,48 @@ public abstract class CameraMetadata { // /** - *

- * AE is off. When a camera device is opened, it starts in - * this state. - *

+ *

AE is off. When a camera device is opened, it starts in + * this state.

* @see CaptureResult#CONTROL_AE_STATE */ public static final int CONTROL_AE_STATE_INACTIVE = 0; /** - *

- * AE doesn't yet have a good set of control values - * for the current scene - *

+ *

AE doesn't yet have a good set of control values + * for the current scene

* @see CaptureResult#CONTROL_AE_STATE */ public static final int CONTROL_AE_STATE_SEARCHING = 1; /** - *

- * AE has a good set of control values for the - * current scene - *

+ *

AE has a good set of control values for the + * current scene

* @see CaptureResult#CONTROL_AE_STATE */ public static final int CONTROL_AE_STATE_CONVERGED = 2; /** - *

- * AE has been locked (aeMode = - * LOCKED) - *

+ *

AE has been locked (aeMode = + * LOCKED)

* @see CaptureResult#CONTROL_AE_STATE */ public static final int CONTROL_AE_STATE_LOCKED = 3; /** - *

- * AE has a good set of control values, but flash + *

AE has a good set of control values, but flash * needs to be fired for good quality still - * capture - *

+ * capture

* @see CaptureResult#CONTROL_AE_STATE */ public static final int CONTROL_AE_STATE_FLASH_REQUIRED = 4; /** - *

- * AE has been asked to do a precapture sequence + *

AE has been asked to do a precapture sequence * (through the * trigger_action(CAMERA2_TRIGGER_PRECAPTURE_METERING) * call), and is currently executing it. Once PRECAPTURE * completes, AE will transition to CONVERGED or - * FLASH_REQUIRED as appropriate - *

+ * FLASH_REQUIRED as appropriate

* @see CaptureResult#CONTROL_AE_STATE */ public static final int CONTROL_AE_STATE_PRECAPTURE = 5; @@ -1063,71 +955,57 @@ public abstract class CameraMetadata { // /** - *

- * AF off or has not yet tried to scan/been asked + *

AF off or has not yet tried to scan/been asked * to scan. When a camera device is opened, it starts in - * this state. - *

+ * this state.

* @see CaptureResult#CONTROL_AF_STATE */ public static final int CONTROL_AF_STATE_INACTIVE = 0; /** - *

- * if CONTINUOUS_* modes are supported. AF is + *

if CONTINUOUS_* modes are supported. AF is * currently doing an AF scan initiated by a continuous - * autofocus mode - *

+ * autofocus mode

* @see CaptureResult#CONTROL_AF_STATE */ public static final int CONTROL_AF_STATE_PASSIVE_SCAN = 1; /** - *

- * if CONTINUOUS_* modes are supported. AF currently + *

if CONTINUOUS_* modes are supported. AF currently * believes it is in focus, but may restart scanning at - * any time. - *

+ * any time.

* @see CaptureResult#CONTROL_AF_STATE */ public static final int CONTROL_AF_STATE_PASSIVE_FOCUSED = 2; /** - *

- * if AUTO or MACRO modes are supported. AF is doing + *

if AUTO or MACRO modes are supported. AF is doing * an AF scan because it was triggered by AF - * trigger - *

+ * trigger

* @see CaptureResult#CONTROL_AF_STATE */ public static final int CONTROL_AF_STATE_ACTIVE_SCAN = 3; /** - *

- * if any AF mode besides OFF is supported. AF + *

if any AF mode besides OFF is supported. AF * believes it is focused correctly and is - * locked - *

+ * locked

* @see CaptureResult#CONTROL_AF_STATE */ public static final int CONTROL_AF_STATE_FOCUSED_LOCKED = 4; /** - *

- * if any AF mode besides OFF is supported. AF has + *

if any AF mode besides OFF is supported. AF has * failed to focus successfully and is - * locked - *

+ * locked

* @see CaptureResult#CONTROL_AF_STATE */ public static final int CONTROL_AF_STATE_NOT_FOCUSED_LOCKED = 5; /** - *

- * if CONTINUOUS_* modes are supported. AF finished a + *

if CONTINUOUS_* modes are supported. AF finished a * passive scan without finding focus, and may restart - * scanning at any time. - *

+ * scanning at any time.

* @see CaptureResult#CONTROL_AF_STATE */ public static final int CONTROL_AF_STATE_PASSIVE_UNFOCUSED = 6; @@ -1137,37 +1015,29 @@ public abstract class CameraMetadata { // /** - *

- * AWB is not in auto mode. When a camera device is opened, it - * starts in this state. - *

+ *

AWB is not in auto mode. When a camera device is opened, it + * starts in this state.

* @see CaptureResult#CONTROL_AWB_STATE */ public static final int CONTROL_AWB_STATE_INACTIVE = 0; /** - *

- * AWB doesn't yet have a good set of control - * values for the current scene - *

+ *

AWB doesn't yet have a good set of control + * values for the current scene

* @see CaptureResult#CONTROL_AWB_STATE */ public static final int CONTROL_AWB_STATE_SEARCHING = 1; /** - *

- * AWB has a good set of control values for the - * current scene - *

+ *

AWB has a good set of control values for the + * current scene

* @see CaptureResult#CONTROL_AWB_STATE */ public static final int CONTROL_AWB_STATE_CONVERGED = 2; /** - *

- * AE has been locked (aeMode = - * LOCKED) - *

+ *

AE has been locked (aeMode = + * LOCKED)

* @see CaptureResult#CONTROL_AWB_STATE */ public static final int CONTROL_AWB_STATE_LOCKED = 3; @@ -1177,36 +1047,28 @@ public abstract class CameraMetadata { // /** - *

- * No flash on camera - *

+ *

No flash on camera

* @see CaptureResult#FLASH_STATE */ public static final int FLASH_STATE_UNAVAILABLE = 0; /** - *

- * if android.flash.available is true Flash is - * charging and cannot be fired - *

+ *

if android.flash.available is true Flash is + * charging and cannot be fired

* @see CaptureResult#FLASH_STATE */ public static final int FLASH_STATE_CHARGING = 1; /** - *

- * if android.flash.available is true Flash is - * ready to fire - *

+ *

if android.flash.available is true Flash is + * ready to fire

* @see CaptureResult#FLASH_STATE */ public static final int FLASH_STATE_READY = 2; /** - *

- * if android.flash.available is true Flash fired - * for this capture - *

+ *

if android.flash.available is true Flash fired + * for this capture

* @see CaptureResult#FLASH_STATE */ public static final int FLASH_STATE_FIRED = 3; diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index 00b02fadfea85..9304cd0d70327 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -318,10 +318,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { *~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/ /** - *

- * When android.control.awbMode is not OFF, TRANSFORM_MATRIX - * should be ignored. - *

+ *

When android.control.awbMode is not OFF, TRANSFORM_MATRIX + * should be ignored.

* @see #COLOR_CORRECTION_MODE_TRANSFORM_MATRIX * @see #COLOR_CORRECTION_MODE_FAST * @see #COLOR_CORRECTION_MODE_HIGH_QUALITY @@ -330,55 +328,42 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.colorCorrection.mode", int.class); /** - *

- * A color transform matrix to use to transform - * from sensor RGB color space to output linear sRGB color space - *

- *

- * This matrix is either set by HAL when the request + *

A color transform matrix to use to transform + * from sensor RGB color space to output linear sRGB color space

+ *

This matrix is either set by HAL when the request * android.colorCorrection.mode is not TRANSFORM_MATRIX, or * directly by the application in the request when the - * android.colorCorrection.mode is TRANSFORM_MATRIX. - *

- * In the latter case, the HAL may round the matrix to account + * android.colorCorrection.mode is TRANSFORM_MATRIX.

+ *

In the latter case, the HAL may round the matrix to account * for precision issues; the final rounded matrix should be - * reported back in this matrix result metadata. - *

+ * reported back in this matrix result metadata.

*/ public static final Key COLOR_CORRECTION_TRANSFORM = new Key("android.colorCorrection.transform", Rational[].class); /** - *

- * Gains applying to Bayer color channels for - * white-balance - *

- *

- * The 4-channel white-balance gains are defined in + *

Gains applying to Bayer color channels for + * white-balance

+ *

The 4-channel white-balance gains are defined in * the order of [R G_even G_odd B], where G_even is the gain * for green pixels on even rows of the output, and G_odd * is the gain for greenpixels on the odd rows. if a HAL * does not support a separate gain for even/odd green channels, * it should use the G_even value,and write G_odd equal to - * G_even in the output result metadata. - *

- * This array is either set by HAL when the request + * G_even in the output result metadata.

+ *

This array is either set by HAL when the request * android.colorCorrection.mode is not TRANSFORM_MATRIX, or * directly by the application in the request when the - * android.colorCorrection.mode is TRANSFORM_MATRIX. - *

- * The ouput should be the gains actually applied by the HAL to - * the current frame. - *

+ * android.colorCorrection.mode is TRANSFORM_MATRIX.

+ *

The ouput should be the gains actually applied by the HAL to + * the current frame.

*/ public static final Key COLOR_CORRECTION_GAINS = new Key("android.colorCorrection.gains", float[].class); /** - *

- * Enum for controlling - * antibanding - *

+ *

Enum for controlling + * antibanding

* @see #CONTROL_AE_ANTIBANDING_MODE_OFF * @see #CONTROL_AE_ANTIBANDING_MODE_50HZ * @see #CONTROL_AE_ANTIBANDING_MODE_60HZ @@ -388,42 +373,30 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.aeAntibandingMode", int.class); /** - *

- * Adjustment to AE target image - * brightness - *

- *

- * For example, if EV step is 0.333, '6' will mean an + *

Adjustment to AE target image + * brightness

+ *

For example, if EV step is 0.333, '6' will mean an * exposure compensation of +2 EV; -3 will mean an exposure - * compensation of -1 - *

+ * compensation of -1

*/ public static final Key CONTROL_AE_EXPOSURE_COMPENSATION = new Key("android.control.aeExposureCompensation", int.class); /** - *

- * Whether AE is currently locked to its latest - * calculated values - *

- *

- * Note that even when AE is locked, the flash may be + *

Whether AE is currently locked to its latest + * calculated values

+ *

Note that even when AE is locked, the flash may be * fired if the AE mode is ON_AUTO_FLASH / ON_ALWAYS_FLASH / - * ON_AUTO_FLASH_REDEYE. - *

+ * ON_AUTO_FLASH_REDEYE.

*/ public static final Key CONTROL_AE_LOCK = new Key("android.control.aeLock", boolean.class); /** - *

- * Whether AE is currently updating the sensor - * exposure and sensitivity fields - *

- *

- * Only effective if android.control.mode = - * AUTO - *

+ *

Whether AE is currently updating the sensor + * exposure and sensitivity fields

+ *

Only effective if android.control.mode = + * AUTO

* @see #CONTROL_AE_MODE_OFF * @see #CONTROL_AE_MODE_ON * @see #CONTROL_AE_MODE_ON_AUTO_FLASH @@ -434,60 +407,45 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.aeMode", int.class); /** - *

- * List of areas to use for - * metering - *

- *

- * Each area is a rectangle plus weight: xmin, ymin, + *

List of areas to use for + * metering

+ *

Each area is a rectangle plus weight: xmin, ymin, * xmax, ymax, weight. The rectangle is defined inclusive of the - * specified coordinates. - *

- * The coordinate system is based on the active pixel array, + * specified coordinates.

+ *

The coordinate system is based on the active pixel array, * with (0,0) being the top-left pixel in the active pixel array, and * (android.sensor.info.activeArraySize.width - 1, * android.sensor.info.activeArraySize.height - 1) being the * bottom-right pixel in the active pixel array. The weight - * should be nonnegative. - *

- * If all regions have 0 weight, then no specific metering area + * should be nonnegative.

+ *

If all regions have 0 weight, then no specific metering area * needs to be used by the HAL. If the metering region is * outside the current android.scaler.cropRegion, the HAL * should ignore the sections outside the region and output the - * used sections in the frame metadata - *

+ * used sections in the frame metadata

*/ public static final Key CONTROL_AE_REGIONS = new Key("android.control.aeRegions", int[].class); /** - *

- * Range over which fps can be adjusted to - * maintain exposure - *

- *

- * Only constrains AE algorithm, not manual control - * of android.sensor.exposureTime - *

+ *

Range over which fps can be adjusted to + * maintain exposure

+ *

Only constrains AE algorithm, not manual control + * of android.sensor.exposureTime

*/ public static final Key CONTROL_AE_TARGET_FPS_RANGE = new Key("android.control.aeTargetFpsRange", int[].class); /** - *

- * Whether the HAL must trigger precapture - * metering. - *

- *

- * This entry is normally set to IDLE, or is not + *

Whether the HAL must trigger precapture + * metering.

+ *

This entry is normally set to IDLE, or is not * included at all in the request settings. When included and * set to START, the HAL must trigger the autoexposure - * precapture metering sequence. - *

- * The effect of AE precapture trigger depends on the current + * precapture metering sequence.

+ *

The effect of AE precapture trigger depends on the current * AE mode and state; see the camera HAL device v3 header for - * details. - *

+ * details.

* @see #CONTROL_AE_PRECAPTURE_TRIGGER_IDLE * @see #CONTROL_AE_PRECAPTURE_TRIGGER_START */ @@ -495,10 +453,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.aePrecaptureTrigger", int.class); /** - *

- * Whether AF is currently enabled, and what - * mode it is set to - *

+ *

Whether AF is currently enabled, and what + * mode it is set to

* @see #CONTROL_AF_MODE_OFF * @see #CONTROL_AF_MODE_AUTO * @see #CONTROL_AF_MODE_MACRO @@ -510,46 +466,35 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.afMode", int.class); /** - *

- * List of areas to use for focus - * estimation - *

- *

- * Each area is a rectangle plus weight: xmin, ymin, + *

List of areas to use for focus + * estimation

+ *

Each area is a rectangle plus weight: xmin, ymin, * xmax, ymax, weight. The rectangle is defined inclusive of the - * specified coordinates. - *

- * The coordinate system is based on the active pixel array, + * specified coordinates.

+ *

The coordinate system is based on the active pixel array, * with (0,0) being the top-left pixel in the active pixel array, and * (android.sensor.info.activeArraySize.width - 1, * android.sensor.info.activeArraySize.height - 1) being the * bottom-right pixel in the active pixel array. The weight - * should be nonnegative. - *

- * If all regions have 0 weight, then no specific focus area + * should be nonnegative.

+ *

If all regions have 0 weight, then no specific focus area * needs to be used by the HAL. If the focusing region is * outside the current android.scaler.cropRegion, the HAL * should ignore the sections outside the region and output the - * used sections in the frame metadata - *

+ * used sections in the frame metadata

*/ public static final Key CONTROL_AF_REGIONS = new Key("android.control.afRegions", int[].class); /** - *

- * Whether the HAL must trigger autofocus. - *

- *

- * This entry is normally set to IDLE, or is not - * included at all in the request settings. - *

- * When included and set to START, the HAL must trigger the + *

Whether the HAL must trigger autofocus.

+ *

This entry is normally set to IDLE, or is not + * included at all in the request settings.

+ *

When included and set to START, the HAL must trigger the * autofocus algorithm. The effect of AF trigger depends on the * current AF mode and state; see the camera HAL device v3 * header for details. When set to CANCEL, the HAL must cancel - * any active trigger, and return to initial AF state. - *

+ * any active trigger, and return to initial AF state.

* @see #CONTROL_AF_TRIGGER_IDLE * @see #CONTROL_AF_TRIGGER_START * @see #CONTROL_AF_TRIGGER_CANCEL @@ -558,28 +503,20 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.afTrigger", int.class); /** - *

- * Whether AWB is currently locked to its - * latest calculated values - *

- *

- * Note that AWB lock is only meaningful for AUTO + *

Whether AWB is currently locked to its + * latest calculated values

+ *

Note that AWB lock is only meaningful for AUTO * mode; in other modes, AWB is already fixed to a specific - * setting - *

+ * setting

*/ public static final Key CONTROL_AWB_LOCK = new Key("android.control.awbLock", boolean.class); /** - *

- * Whether AWB is currently setting the color + *

Whether AWB is currently setting the color * transform fields, and what its illumination target - * is - *

- *

- * [BC - AWB lock,AWB modes] - *

+ * is

+ *

[BC - AWB lock,AWB modes]

* @see #CONTROL_AWB_MODE_OFF * @see #CONTROL_AWB_MODE_AUTO * @see #CONTROL_AWB_MODE_INCANDESCENT @@ -594,43 +531,32 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.awbMode", int.class); /** - *

- * List of areas to use for illuminant - * estimation - *

- *

- * Only used in AUTO mode. - *

- * Each area is a rectangle plus weight: xmin, ymin, + *

List of areas to use for illuminant + * estimation

+ *

Only used in AUTO mode.

+ *

Each area is a rectangle plus weight: xmin, ymin, * xmax, ymax, weight. The rectangle is defined inclusive of the - * specified coordinates. - *

- * The coordinate system is based on the active pixel array, + * specified coordinates.

+ *

The coordinate system is based on the active pixel array, * with (0,0) being the top-left pixel in the active pixel array, and * (android.sensor.info.activeArraySize.width - 1, * android.sensor.info.activeArraySize.height - 1) being the * bottom-right pixel in the active pixel array. The weight - * should be nonnegative. - *

- * If all regions have 0 weight, then no specific metering area + * should be nonnegative.

+ *

If all regions have 0 weight, then no specific metering area * needs to be used by the HAL. If the metering region is * outside the current android.scaler.cropRegion, the HAL * should ignore the sections outside the region and output the - * used sections in the frame metadata - *

+ * used sections in the frame metadata

*/ public static final Key CONTROL_AWB_REGIONS = new Key("android.control.awbRegions", int[].class); /** - *

- * Information to 3A routines about the purpose + *

Information to 3A routines about the purpose * of this capture, to help decide optimal 3A - * strategy - *

- *

- * Only used if android.control.mode != OFF. - *

+ * strategy

+ *

Only used if android.control.mode != OFF.

* @see #CONTROL_CAPTURE_INTENT_CUSTOM * @see #CONTROL_CAPTURE_INTENT_PREVIEW * @see #CONTROL_CAPTURE_INTENT_STILL_CAPTURE @@ -642,10 +568,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.captureIntent", int.class); /** - *

- * Whether any special color effect is in use. - * Only used if android.control.mode != OFF - *

+ *

Whether any special color effect is in use. + * Only used if android.control.mode != OFF

* @see #CONTROL_EFFECT_MODE_OFF * @see #CONTROL_EFFECT_MODE_MONO * @see #CONTROL_EFFECT_MODE_NEGATIVE @@ -660,10 +584,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.effectMode", int.class); /** - *

- * Overall mode of 3A control - * routines - *

+ *

Overall mode of 3A control + * routines

* @see #CONTROL_MODE_OFF * @see #CONTROL_MODE_AUTO * @see #CONTROL_MODE_USE_SCENE_MODE @@ -672,10 +594,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.mode", int.class); /** - *

- * Which scene mode is active when - * android.control.mode = SCENE_MODE - *

+ *

Which scene mode is active when + * android.control.mode = SCENE_MODE

* @see #CONTROL_SCENE_MODE_UNSUPPORTED * @see #CONTROL_SCENE_MODE_FACE_PRIORITY * @see #CONTROL_SCENE_MODE_ACTION @@ -698,24 +618,18 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.control.sceneMode", int.class); /** - *

- * Whether video stabilization is - * active - *

- *

- * If enabled, video stabilization can modify the + *

Whether video stabilization is + * active

+ *

If enabled, video stabilization can modify the * android.scaler.cropRegion to keep the video stream - * stabilized - *

+ * stabilized

*/ public static final Key CONTROL_VIDEO_STABILIZATION_MODE = new Key("android.control.videoStabilizationMode", boolean.class); /** - *

- * Operation mode for edge - * enhancement - *

+ *

Operation mode for edge + * enhancement

* @see #EDGE_MODE_OFF * @see #EDGE_MODE_FAST * @see #EDGE_MODE_HIGH_QUALITY @@ -724,9 +638,7 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.edge.mode", int.class); /** - *

- * Select flash operation mode - *

+ *

Select flash operation mode

* @see #FLASH_MODE_OFF * @see #FLASH_MODE_SINGLE * @see #FLASH_MODE_TORCH @@ -735,128 +647,92 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.flash.mode", int.class); /** - *

- * GPS coordinates to include in output JPEG - * EXIF - *

+ *

GPS coordinates to include in output JPEG + * EXIF

*/ public static final Key JPEG_GPS_COORDINATES = new Key("android.jpeg.gpsCoordinates", double[].class); /** - *

- * 32 characters describing GPS algorithm to - * include in EXIF - *

+ *

32 characters describing GPS algorithm to + * include in EXIF

*/ public static final Key JPEG_GPS_PROCESSING_METHOD = new Key("android.jpeg.gpsProcessingMethod", String.class); /** - *

- * Time GPS fix was made to include in - * EXIF - *

+ *

Time GPS fix was made to include in + * EXIF

*/ public static final Key JPEG_GPS_TIMESTAMP = new Key("android.jpeg.gpsTimestamp", long.class); /** - *

- * Orientation of JPEG image to - * write - *

+ *

Orientation of JPEG image to + * write

*/ public static final Key JPEG_ORIENTATION = new Key("android.jpeg.orientation", int.class); /** - *

- * Compression quality of the final JPEG - * image - *

- *

- * 85-95 is typical usage range - *

+ *

Compression quality of the final JPEG + * image

+ *

85-95 is typical usage range

*/ public static final Key JPEG_QUALITY = new Key("android.jpeg.quality", byte.class); /** - *

- * Compression quality of JPEG - * thumbnail - *

+ *

Compression quality of JPEG + * thumbnail

*/ public static final Key JPEG_THUMBNAIL_QUALITY = new Key("android.jpeg.thumbnailQuality", byte.class); /** - *

- * Resolution of embedded JPEG - * thumbnail - *

+ *

Resolution of embedded JPEG + * thumbnail

*/ public static final Key JPEG_THUMBNAIL_SIZE = new Key("android.jpeg.thumbnailSize", android.hardware.camera2.Size.class); /** - *

- * Size of the lens aperture - *

- *

- * Will not be supported on most devices. Can only - * pick from supported list - *

+ *

Size of the lens aperture

+ *

Will not be supported on most devices. Can only + * pick from supported list

*/ public static final Key LENS_APERTURE = new Key("android.lens.aperture", float.class); /** - *

- * State of lens neutral density - * filter(s) - *

- *

- * Will not be supported on most devices. Can only - * pick from supported list - *

+ *

State of lens neutral density + * filter(s)

+ *

Will not be supported on most devices. Can only + * pick from supported list

*/ public static final Key LENS_FILTER_DENSITY = new Key("android.lens.filterDensity", float.class); /** - *

- * Lens optical zoom setting - *

- *

- * Will not be supported on most devices. - *

+ *

Lens optical zoom setting

+ *

Will not be supported on most devices.

*/ public static final Key LENS_FOCAL_LENGTH = new Key("android.lens.focalLength", float.class); /** - *

- * Distance to plane of sharpest focus, - * measured from frontmost surface of the lens - *

- *

- * 0 = infinity focus. Used value should be clamped - * to (0,minimum focus distance) - *

+ *

Distance to plane of sharpest focus, + * measured from frontmost surface of the lens

+ *

0 = infinity focus. Used value should be clamped + * to (0,minimum focus distance)

*/ public static final Key LENS_FOCUS_DISTANCE = new Key("android.lens.focusDistance", float.class); /** - *

- * Whether optical image stabilization is - * enabled. - *

- *

- * Will not be supported on most devices. - *

+ *

Whether optical image stabilization is + * enabled.

+ *

Will not be supported on most devices.

* @see #LENS_OPTICAL_STABILIZATION_MODE_OFF * @see #LENS_OPTICAL_STABILIZATION_MODE_ON */ @@ -864,10 +740,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.lens.opticalStabilizationMode", int.class); /** - *

- * Mode of operation for the noise reduction - * algorithm - *

+ *

Mode of operation for the noise reduction + * algorithm

* @see #NOISE_REDUCTION_MODE_OFF * @see #NOISE_REDUCTION_MODE_FAST * @see #NOISE_REDUCTION_MODE_HIGH_QUALITY @@ -876,11 +750,9 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.noiseReduction.mode", int.class); /** - *

- * An application-specified ID for the current + *

An application-specified ID for the current * request. Must be maintained unchanged in output - * frame - *

+ * frame

* * @hide */ @@ -888,32 +760,24 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.request.id", int.class); /** - *

- * (x, y, width, height). - *

- * A rectangle with the top-level corner of (x,y) and size + *

(x, y, width, height).

+ *

A rectangle with the top-level corner of (x,y) and size * (width, height). The region of the sensor that is used for * output. Each stream must use this rectangle to produce its * output, cropping to a smaller region if necessary to - * maintain the stream's aspect ratio. - *

- * HAL2.x uses only (x, y, width) - *

- *

- * Any additional per-stream cropping must be done to - * maximize the final pixel area of the stream. - *

- * For example, if the crop region is set to a 4:3 aspect + * maintain the stream's aspect ratio.

+ *

HAL2.x uses only (x, y, width)

+ *

Any additional per-stream cropping must be done to + * maximize the final pixel area of the stream.

+ *

For example, if the crop region is set to a 4:3 aspect * ratio, then 4:3 streams should use the exact crop * region. 16:9 streams should further crop vertically - * (letterbox). - *

- * Conversely, if the crop region is set to a 16:9, then 4:3 + * (letterbox).

+ *

Conversely, if the crop region is set to a 16:9, then 4:3 * outputs should crop horizontally (pillarbox), and 16:9 * streams should match exactly. These additional crops must - * be centered within the crop region. - *

- * The output streams must maintain square pixels at all + * be centered within the crop region.

+ *

The output streams must maintain square pixels at all * times, no matter what the relative aspect ratios of the * crop region and the stream are. Negative values for * corner are allowed for raw output if full pixel array is @@ -924,67 +788,48 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { * be set to be smaller than floor( activeArraySize.width / * android.scaler.maxDigitalZoom ) and floor( * activeArraySize.height / android.scaler.maxDigitalZoom), - * respectively. - *

+ * respectively.

*/ public static final Key SCALER_CROP_REGION = new Key("android.scaler.cropRegion", android.graphics.Rect.class); /** - *

- * Duration each pixel is exposed to - * light. - *

- * If the sensor can't expose this exact duration, it should shorten the - * duration exposed to the nearest possible value (rather than expose longer). - *

- *

- * 1/10000 - 30 sec range. No bulb mode - *

+ *

Duration each pixel is exposed to + * light.

+ *

If the sensor can't expose this exact duration, it should shorten the + * duration exposed to the nearest possible value (rather than expose longer).

+ *

1/10000 - 30 sec range. No bulb mode

*/ public static final Key SENSOR_EXPOSURE_TIME = new Key("android.sensor.exposureTime", long.class); /** - *

- * Duration from start of frame exposure to - * start of next frame exposure - *

- *

- * Exposure time has priority, so duration is set to - * max(duration, exposure time + overhead) - *

+ *

Duration from start of frame exposure to + * start of next frame exposure

+ *

Exposure time has priority, so duration is set to + * max(duration, exposure time + overhead)

*/ public static final Key SENSOR_FRAME_DURATION = new Key("android.sensor.frameDuration", long.class); /** - *

- * Gain applied to image data. Must be + *

Gain applied to image data. Must be * implemented through analog gain only if set to values - * below 'maximum analog sensitivity'. - *

- * If the sensor can't apply this exact gain, it should lessen the - * gain to the nearest possible value (rather than gain more). - *

- *

- * ISO 12232:2006 REI method - *

+ * below 'maximum analog sensitivity'.

+ *

If the sensor can't apply this exact gain, it should lessen the + * gain to the nearest possible value (rather than gain more).

+ *

ISO 12232:2006 REI method

*/ public static final Key SENSOR_SENSITIVITY = new Key("android.sensor.sensitivity", int.class); /** - *

- * State of the face detector - * unit - *

- *

- * Whether face detection is enabled, and whether it + *

State of the face detector + * unit

+ *

Whether face detection is enabled, and whether it * should output just the basic fields or the full set of * fields. Value must be one of the - * android.statistics.info.availableFaceDetectModes. - *

+ * android.statistics.info.availableFaceDetectModes.

* @see #STATISTICS_FACE_DETECT_MODE_OFF * @see #STATISTICS_FACE_DETECT_MODE_SIMPLE * @see #STATISTICS_FACE_DETECT_MODE_FULL @@ -993,15 +838,11 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.statistics.faceDetectMode", int.class); /** - *

- * Whether the HAL needs to output the lens - * shading map in output result metadata - *

- *

- * When set to ON, + *

Whether the HAL needs to output the lens + * shading map in output result metadata

+ *

When set to ON, * android.statistics.lensShadingMap must be provided in - * the output result metdata. - *

+ * the output result metdata.

* @see #STATISTICS_LENS_SHADING_MAP_MODE_OFF * @see #STATISTICS_LENS_SHADING_MAP_MODE_ON */ @@ -1009,56 +850,40 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.statistics.lensShadingMapMode", int.class); /** - *

- * Table mapping blue input values to output - * values - *

- *

- * Tonemapping / contrast / gamma curve for the blue - * channel, to use when android.tonemap.mode is CONTRAST_CURVE. - *

- * See android.tonemap.curveRed for more details. - *

+ *

Table mapping blue input values to output + * values

+ *

Tonemapping / contrast / gamma curve for the blue + * channel, to use when android.tonemap.mode is CONTRAST_CURVE.

+ *

See android.tonemap.curveRed for more details.

*/ public static final Key TONEMAP_CURVE_BLUE = new Key("android.tonemap.curveBlue", float[].class); /** - *

- * Table mapping green input values to output - * values - *

- *

- * Tonemapping / contrast / gamma curve for the green - * channel, to use when android.tonemap.mode is CONTRAST_CURVE. - *

- * See android.tonemap.curveRed for more details. - *

+ *

Table mapping green input values to output + * values

+ *

Tonemapping / contrast / gamma curve for the green + * channel, to use when android.tonemap.mode is CONTRAST_CURVE.

+ *

See android.tonemap.curveRed for more details.

*/ public static final Key TONEMAP_CURVE_GREEN = new Key("android.tonemap.curveGreen", float[].class); /** - *

- * Table mapping red input values to output - * values - *

- *

- * Tonemapping / contrast / gamma curve for the red - * channel, to use when android.tonemap.mode is CONTRAST_CURVE. - *

- * Since the input and output ranges may vary depending on + *

Table mapping red input values to output + * values

+ *

Tonemapping / contrast / gamma curve for the red + * channel, to use when android.tonemap.mode is CONTRAST_CURVE.

+ *

Since the input and output ranges may vary depending on * the camera pipeline, the input and output pixel values * are represented by normalized floating-point values - * between 0 and 1, with 0 == black and 1 == white. - *

- * The curve should be linearly interpolated between the + * between 0 and 1, with 0 == black and 1 == white.

+ *

The curve should be linearly interpolated between the * defined points. The points will be listed in increasing * order of P_IN. For example, if the array is: [0.0, 0.0, - * 0.3, 0.5, 1.0, 1.0], then the input->output mapping - * for a few sample points would be: 0 -> 0, 0.15 -> - * 0.25, 0.3 -> 0.5, 0.5 -> 0.64 - *

+ * 0.3, 0.5, 1.0, 1.0], then the input->output mapping + * for a few sample points would be: 0 -> 0, 0.15 -> + * 0.25, 0.3 -> 0.5, 0.5 -> 0.64

*/ public static final Key TONEMAP_CURVE_RED = new Key("android.tonemap.curveRed", float[].class); @@ -1072,20 +897,16 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.tonemap.mode", int.class); /** - *

- * This LED is nominally used to indicate to the user + *

This LED is nominally used to indicate to the user * that the camera is powered on and may be streaming images back to the * Application Processor. In certain rare circumstances, the OS may * disable this when video is processed locally and not transmitted to - * any untrusted applications. - *

- * In particular, the LED *must* always be on when the data could be - * transmitted off the device. The LED *should* always be on whenever - * data is stored locally on the device. - *

- * The LED *may* be off if a trusted application is using the data that - * doesn't violate the above rules. - *

+ * any untrusted applications.

+ *

In particular, the LED must always be on when the data could be + * transmitted off the device. The LED should always be on whenever + * data is stored locally on the device.

+ *

The LED may be off if a trusted application is using the data that + * doesn't violate the above rules.

* * @hide */ @@ -1093,28 +914,44 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key("android.led.transmit", boolean.class); /** - *

- * Whether black-level compensation is locked - * to its current values, or is free to vary - *

- *

- * When set to ON, the values used for black-level + *

Whether black-level compensation is locked + * to its current values, or is free to vary

+ *

When set to ON, the values used for black-level * compensation must not change until the lock is set to - * OFF - *

- * Since changes to certain capture parameters (such as + * OFF

+ *

Since changes to certain capture parameters (such as * exposure time) may require resetting of black level * compensation, the HAL must report whether setting the * black level lock was successful in the output result - * metadata. - *

- * The black level locking must happen at the sensor, and not at the ISP. + * metadata.

+ *

For example, if a sequence of requests is as follows:

+ *
    + *
  • Request 1: Exposure = 10ms, Black level lock = OFF
  • + *
  • Request 2: Exposure = 10ms, Black level lock = ON
  • + *
  • Request 3: Exposure = 10ms, Black level lock = ON
  • + *
  • Request 4: Exposure = 20ms, Black level lock = ON
  • + *
  • Request 5: Exposure = 20ms, Black level lock = ON
  • + *
  • Request 6: Exposure = 20ms, Black level lock = ON
  • + *
+ *

And the exposure change in Request 4 requires resetting the black + * level offsets, then the output result metadata is expected to be:

+ *
    + *
  • Result 1: Exposure = 10ms, Black level lock = OFF
  • + *
  • Result 2: Exposure = 10ms, Black level lock = ON
  • + *
  • Result 3: Exposure = 10ms, Black level lock = ON
  • + *
  • Result 4: Exposure = 20ms, Black level lock = OFF
  • + *
  • Result 5: Exposure = 20ms, Black level lock = ON
  • + *
  • Result 6: Exposure = 20ms, Black level lock = ON
  • + *
+ *

This indicates to the application that on frame 4, black levels were + * reset due to exposure value changes, and pixel values may not be + * consistent across captures.

+ *

The black level locking must happen at the sensor, and not at the ISP. * If for some reason black level locking is no longer legal (for example, * the analog gain has changed, which forces black levels to be * recalculated), then the HAL is free to override this request (and it * must report 'OFF' when this does happen) until the next time locking - * is legal again. - *

+ * is legal again.

*/ public static final Key BLACK_LEVEL_LOCK = new Key("android.blackLevel.lock", boolean.class); diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index 7224577289c7a..2d686f9bc5672 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -123,61 +123,46 @@ public final class CaptureResult extends CameraMetadata { *~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/ /** - *

- * A color transform matrix to use to transform - * from sensor RGB color space to output linear sRGB color space - *

- *

- * This matrix is either set by HAL when the request + *

A color transform matrix to use to transform + * from sensor RGB color space to output linear sRGB color space

+ *

This matrix is either set by HAL when the request * android.colorCorrection.mode is not TRANSFORM_MATRIX, or * directly by the application in the request when the - * android.colorCorrection.mode is TRANSFORM_MATRIX. - *

- * In the latter case, the HAL may round the matrix to account + * android.colorCorrection.mode is TRANSFORM_MATRIX.

+ *

In the latter case, the HAL may round the matrix to account * for precision issues; the final rounded matrix should be - * reported back in this matrix result metadata. - *

+ * reported back in this matrix result metadata.

*/ public static final Key COLOR_CORRECTION_TRANSFORM = new Key("android.colorCorrection.transform", Rational[].class); /** - *

- * Gains applying to Bayer color channels for - * white-balance - *

- *

- * The 4-channel white-balance gains are defined in + *

Gains applying to Bayer color channels for + * white-balance

+ *

The 4-channel white-balance gains are defined in * the order of [R G_even G_odd B], where G_even is the gain * for green pixels on even rows of the output, and G_odd * is the gain for greenpixels on the odd rows. if a HAL * does not support a separate gain for even/odd green channels, * it should use the G_even value,and write G_odd equal to - * G_even in the output result metadata. - *

- * This array is either set by HAL when the request + * G_even in the output result metadata.

+ *

This array is either set by HAL when the request * android.colorCorrection.mode is not TRANSFORM_MATRIX, or * directly by the application in the request when the - * android.colorCorrection.mode is TRANSFORM_MATRIX. - *

- * The ouput should be the gains actually applied by the HAL to - * the current frame. - *

+ * android.colorCorrection.mode is TRANSFORM_MATRIX.

+ *

The ouput should be the gains actually applied by the HAL to + * the current frame.

*/ public static final Key COLOR_CORRECTION_GAINS = new Key("android.colorCorrection.gains", float[].class); /** - *

- * The ID sent with the latest - * CAMERA2_TRIGGER_PRECAPTURE_METERING call - *

- *

- * Must be 0 if no + *

The ID sent with the latest + * CAMERA2_TRIGGER_PRECAPTURE_METERING call

+ *

Must be 0 if no * CAMERA2_TRIGGER_PRECAPTURE_METERING trigger received yet * by HAL. Always updated even if AE algorithm ignores the - * trigger - *

+ * trigger

* * @hide */ @@ -185,41 +170,31 @@ public final class CaptureResult extends CameraMetadata { new Key("android.control.aePrecaptureId", int.class); /** - *

- * List of areas to use for - * metering - *

- *

- * Each area is a rectangle plus weight: xmin, ymin, + *

List of areas to use for + * metering

+ *

Each area is a rectangle plus weight: xmin, ymin, * xmax, ymax, weight. The rectangle is defined inclusive of the - * specified coordinates. - *

- * The coordinate system is based on the active pixel array, + * specified coordinates.

+ *

The coordinate system is based on the active pixel array, * with (0,0) being the top-left pixel in the active pixel array, and * (android.sensor.info.activeArraySize.width - 1, * android.sensor.info.activeArraySize.height - 1) being the * bottom-right pixel in the active pixel array. The weight - * should be nonnegative. - *

- * If all regions have 0 weight, then no specific metering area + * should be nonnegative.

+ *

If all regions have 0 weight, then no specific metering area * needs to be used by the HAL. If the metering region is * outside the current android.scaler.cropRegion, the HAL * should ignore the sections outside the region and output the - * used sections in the frame metadata - *

+ * used sections in the frame metadata

*/ public static final Key CONTROL_AE_REGIONS = new Key("android.control.aeRegions", int[].class); /** - *

- * Current state of AE algorithm - *

- *

- * Whenever the AE algorithm state changes, a + *

Current state of AE algorithm

+ *

Whenever the AE algorithm state changes, a * MSG_AUTOEXPOSURE notification must be send if a - * notification callback is registered. - *

+ * notification callback is registered.

* @see #CONTROL_AE_STATE_INACTIVE * @see #CONTROL_AE_STATE_SEARCHING * @see #CONTROL_AE_STATE_CONVERGED @@ -231,10 +206,8 @@ public final class CaptureResult extends CameraMetadata { new Key("android.control.aeState", int.class); /** - *

- * Whether AF is currently enabled, and what - * mode it is set to - *

+ *

Whether AF is currently enabled, and what + * mode it is set to

* @see #CONTROL_AF_MODE_OFF * @see #CONTROL_AF_MODE_AUTO * @see #CONTROL_AF_MODE_MACRO @@ -246,41 +219,31 @@ public final class CaptureResult extends CameraMetadata { new Key("android.control.afMode", int.class); /** - *

- * List of areas to use for focus - * estimation - *

- *

- * Each area is a rectangle plus weight: xmin, ymin, + *

List of areas to use for focus + * estimation

+ *

Each area is a rectangle plus weight: xmin, ymin, * xmax, ymax, weight. The rectangle is defined inclusive of the - * specified coordinates. - *

- * The coordinate system is based on the active pixel array, + * specified coordinates.

+ *

The coordinate system is based on the active pixel array, * with (0,0) being the top-left pixel in the active pixel array, and * (android.sensor.info.activeArraySize.width - 1, * android.sensor.info.activeArraySize.height - 1) being the * bottom-right pixel in the active pixel array. The weight - * should be nonnegative. - *

- * If all regions have 0 weight, then no specific focus area + * should be nonnegative.

+ *

If all regions have 0 weight, then no specific focus area * needs to be used by the HAL. If the focusing region is * outside the current android.scaler.cropRegion, the HAL * should ignore the sections outside the region and output the - * used sections in the frame metadata - *

+ * used sections in the frame metadata

*/ public static final Key CONTROL_AF_REGIONS = new Key("android.control.afRegions", int[].class); /** - *

- * Current state of AF algorithm - *

- *

- * Whenever the AF algorithm state changes, a + *

Current state of AF algorithm

+ *

Whenever the AF algorithm state changes, a * MSG_AUTOFOCUS notification must be send if a notification - * callback is registered. - *

+ * callback is registered.

* @see #CONTROL_AF_STATE_INACTIVE * @see #CONTROL_AF_STATE_PASSIVE_SCAN * @see #CONTROL_AF_STATE_PASSIVE_FOCUSED @@ -293,15 +256,11 @@ public final class CaptureResult extends CameraMetadata { new Key("android.control.afState", int.class); /** - *

- * The ID sent with the latest - * CAMERA2_TRIGGER_AUTOFOCUS call - *

- *

- * Must be 0 if no CAMERA2_TRIGGER_AUTOFOCUS trigger + *

The ID sent with the latest + * CAMERA2_TRIGGER_AUTOFOCUS call

+ *

Must be 0 if no CAMERA2_TRIGGER_AUTOFOCUS trigger * received yet by HAL. Always updated even if AF algorithm - * ignores the trigger - *

+ * ignores the trigger

* * @hide */ @@ -309,14 +268,10 @@ public final class CaptureResult extends CameraMetadata { new Key("android.control.afTriggerId", int.class); /** - *

- * Whether AWB is currently setting the color + *

Whether AWB is currently setting the color * transform fields, and what its illumination target - * is - *

- *

- * [BC - AWB lock,AWB modes] - *

+ * is

+ *

[BC - AWB lock,AWB modes]

* @see #CONTROL_AWB_MODE_OFF * @see #CONTROL_AWB_MODE_AUTO * @see #CONTROL_AWB_MODE_INCANDESCENT @@ -331,43 +286,32 @@ public final class CaptureResult extends CameraMetadata { new Key("android.control.awbMode", int.class); /** - *

- * List of areas to use for illuminant - * estimation - *

- *

- * Only used in AUTO mode. - *

- * Each area is a rectangle plus weight: xmin, ymin, + *

List of areas to use for illuminant + * estimation

+ *

Only used in AUTO mode.

+ *

Each area is a rectangle plus weight: xmin, ymin, * xmax, ymax, weight. The rectangle is defined inclusive of the - * specified coordinates. - *

- * The coordinate system is based on the active pixel array, + * specified coordinates.

+ *

The coordinate system is based on the active pixel array, * with (0,0) being the top-left pixel in the active pixel array, and * (android.sensor.info.activeArraySize.width - 1, * android.sensor.info.activeArraySize.height - 1) being the * bottom-right pixel in the active pixel array. The weight - * should be nonnegative. - *

- * If all regions have 0 weight, then no specific metering area + * should be nonnegative.

+ *

If all regions have 0 weight, then no specific metering area * needs to be used by the HAL. If the metering region is * outside the current android.scaler.cropRegion, the HAL * should ignore the sections outside the region and output the - * used sections in the frame metadata - *

+ * used sections in the frame metadata

*/ public static final Key CONTROL_AWB_REGIONS = new Key("android.control.awbRegions", int[].class); /** - *

- * Current state of AWB algorithm - *

- *

- * Whenever the AWB algorithm state changes, a + *

Current state of AWB algorithm

+ *

Whenever the AWB algorithm state changes, a * MSG_AUTOWHITEBALANCE notification must be send if a - * notification callback is registered. - *

+ * notification callback is registered.

* @see #CONTROL_AWB_STATE_INACTIVE * @see #CONTROL_AWB_STATE_SEARCHING * @see #CONTROL_AWB_STATE_CONVERGED @@ -377,10 +321,8 @@ public final class CaptureResult extends CameraMetadata { new Key("android.control.awbState", int.class); /** - *

- * Overall mode of 3A control - * routines - *

+ *

Overall mode of 3A control + * routines

* @see #CONTROL_MODE_OFF * @see #CONTROL_MODE_AUTO * @see #CONTROL_MODE_USE_SCENE_MODE @@ -389,10 +331,8 @@ public final class CaptureResult extends CameraMetadata { new Key("android.control.mode", int.class); /** - *

- * Operation mode for edge - * enhancement - *

+ *

Operation mode for edge + * enhancement

* @see #EDGE_MODE_OFF * @see #EDGE_MODE_FAST * @see #EDGE_MODE_HIGH_QUALITY @@ -401,9 +341,7 @@ public final class CaptureResult extends CameraMetadata { new Key("android.edge.mode", int.class); /** - *

- * Select flash operation mode - *

+ *

Select flash operation mode

* @see #FLASH_MODE_OFF * @see #FLASH_MODE_SINGLE * @see #FLASH_MODE_TORCH @@ -412,10 +350,8 @@ public final class CaptureResult extends CameraMetadata { new Key("android.flash.mode", int.class); /** - *

- * Current state of the flash - * unit - *

+ *

Current state of the flash + * unit

* @see #FLASH_STATE_UNAVAILABLE * @see #FLASH_STATE_CHARGING * @see #FLASH_STATE_READY @@ -425,140 +361,100 @@ public final class CaptureResult extends CameraMetadata { new Key("android.flash.state", int.class); /** - *

- * GPS coordinates to include in output JPEG - * EXIF - *

+ *

GPS coordinates to include in output JPEG + * EXIF

*/ public static final Key JPEG_GPS_COORDINATES = new Key("android.jpeg.gpsCoordinates", double[].class); /** - *

- * 32 characters describing GPS algorithm to - * include in EXIF - *

+ *

32 characters describing GPS algorithm to + * include in EXIF

*/ public static final Key JPEG_GPS_PROCESSING_METHOD = new Key("android.jpeg.gpsProcessingMethod", String.class); /** - *

- * Time GPS fix was made to include in - * EXIF - *

+ *

Time GPS fix was made to include in + * EXIF

*/ public static final Key JPEG_GPS_TIMESTAMP = new Key("android.jpeg.gpsTimestamp", long.class); /** - *

- * Orientation of JPEG image to - * write - *

+ *

Orientation of JPEG image to + * write

*/ public static final Key JPEG_ORIENTATION = new Key("android.jpeg.orientation", int.class); /** - *

- * Compression quality of the final JPEG - * image - *

- *

- * 85-95 is typical usage range - *

+ *

Compression quality of the final JPEG + * image

+ *

85-95 is typical usage range

*/ public static final Key JPEG_QUALITY = new Key("android.jpeg.quality", byte.class); /** - *

- * Compression quality of JPEG - * thumbnail - *

+ *

Compression quality of JPEG + * thumbnail

*/ public static final Key JPEG_THUMBNAIL_QUALITY = new Key("android.jpeg.thumbnailQuality", byte.class); /** - *

- * Resolution of embedded JPEG - * thumbnail - *

+ *

Resolution of embedded JPEG + * thumbnail

*/ public static final Key JPEG_THUMBNAIL_SIZE = new Key("android.jpeg.thumbnailSize", android.hardware.camera2.Size.class); /** - *

- * Size of the lens aperture - *

- *

- * Will not be supported on most devices. Can only - * pick from supported list - *

+ *

Size of the lens aperture

+ *

Will not be supported on most devices. Can only + * pick from supported list

*/ public static final Key LENS_APERTURE = new Key("android.lens.aperture", float.class); /** - *

- * State of lens neutral density - * filter(s) - *

- *

- * Will not be supported on most devices. Can only - * pick from supported list - *

+ *

State of lens neutral density + * filter(s)

+ *

Will not be supported on most devices. Can only + * pick from supported list

*/ public static final Key LENS_FILTER_DENSITY = new Key("android.lens.filterDensity", float.class); /** - *

- * Lens optical zoom setting - *

- *

- * Will not be supported on most devices. - *

+ *

Lens optical zoom setting

+ *

Will not be supported on most devices.

*/ public static final Key LENS_FOCAL_LENGTH = new Key("android.lens.focalLength", float.class); /** - *

- * Distance to plane of sharpest focus, - * measured from frontmost surface of the lens - *

- *

- * Should be zero for fixed-focus cameras - *

+ *

Distance to plane of sharpest focus, + * measured from frontmost surface of the lens

+ *

Should be zero for fixed-focus cameras

*/ public static final Key LENS_FOCUS_DISTANCE = new Key("android.lens.focusDistance", float.class); /** - *

- * The range of scene distances that are in - * sharp focus (depth of field) - *

- *

- * If variable focus not supported, can still report - * fixed depth of field range - *

+ *

The range of scene distances that are in + * sharp focus (depth of field)

+ *

If variable focus not supported, can still report + * fixed depth of field range

*/ public static final Key LENS_FOCUS_RANGE = new Key("android.lens.focusRange", float[].class); /** - *

- * Whether optical image stabilization is - * enabled. - *

- *

- * Will not be supported on most devices. - *

+ *

Whether optical image stabilization is + * enabled.

+ *

Will not be supported on most devices.

* @see #LENS_OPTICAL_STABILIZATION_MODE_OFF * @see #LENS_OPTICAL_STABILIZATION_MODE_ON */ @@ -566,9 +462,7 @@ public final class CaptureResult extends CameraMetadata { new Key("android.lens.opticalStabilizationMode", int.class); /** - *

- * Current lens status - *

+ *

Current lens status

* @see #LENS_STATE_STATIONARY * @see #LENS_STATE_MOVING */ @@ -576,10 +470,8 @@ public final class CaptureResult extends CameraMetadata { new Key("android.lens.state", int.class); /** - *

- * Mode of operation for the noise reduction - * algorithm - *

+ *

Mode of operation for the noise reduction + * algorithm

* @see #NOISE_REDUCTION_MODE_OFF * @see #NOISE_REDUCTION_MODE_FAST * @see #NOISE_REDUCTION_MODE_HIGH_QUALITY @@ -588,14 +480,11 @@ public final class CaptureResult extends CameraMetadata { new Key("android.noiseReduction.mode", int.class); /** - *

- * Whether a result given to the framework is the + *

Whether a result given to the framework is the * final one for the capture, or only a partial that contains a * subset of the full set of dynamic metadata - * values. - *

- *

- * The entries in the result metadata buffers for a + * values.

+ *

The entries in the result metadata buffers for a * single capture may not overlap, except for this entry. The * FINAL buffers must retain FIFO ordering relative to the * requests that generate them, so the FINAL buffer for frame 3 must @@ -603,8 +492,7 @@ public final class CaptureResult extends CameraMetadata { * before the FINAL buffer for frame 4. PARTIAL buffers may be returned * in any order relative to other frames, but all PARTIAL buffers for a given * capture must arrive before the FINAL buffer for that capture. This entry may - * only be used by the HAL if quirks.usePartialResult is set to 1. - *

+ * only be used by the HAL if quirks.usePartialResult is set to 1.

* * Optional - This value may be null on some devices. * @@ -614,24 +502,18 @@ public final class CaptureResult extends CameraMetadata { new Key("android.quirks.partialResult", boolean.class); /** - *

- * A frame counter set by the framework. This value monotonically + *

A frame counter set by the framework. This value monotonically * increases with every new result (that is, each new result has a unique - * frameCount value). - *

- *

- * Reset on release() - *

+ * frameCount value).

+ *

Reset on release()

*/ public static final Key REQUEST_FRAME_COUNT = new Key("android.request.frameCount", int.class); /** - *

- * An application-specified ID for the current + *

An application-specified ID for the current * request. Must be maintained unchanged in output - * frame - *

+ * frame

* * @hide */ @@ -639,32 +521,24 @@ public final class CaptureResult extends CameraMetadata { new Key("android.request.id", int.class); /** - *

- * (x, y, width, height). - *

- * A rectangle with the top-level corner of (x,y) and size + *

(x, y, width, height).

+ *

A rectangle with the top-level corner of (x,y) and size * (width, height). The region of the sensor that is used for * output. Each stream must use this rectangle to produce its * output, cropping to a smaller region if necessary to - * maintain the stream's aspect ratio. - *

- * HAL2.x uses only (x, y, width) - *

- *

- * Any additional per-stream cropping must be done to - * maximize the final pixel area of the stream. - *

- * For example, if the crop region is set to a 4:3 aspect + * maintain the stream's aspect ratio.

+ *

HAL2.x uses only (x, y, width)

+ *

Any additional per-stream cropping must be done to + * maximize the final pixel area of the stream.

+ *

For example, if the crop region is set to a 4:3 aspect * ratio, then 4:3 streams should use the exact crop * region. 16:9 streams should further crop vertically - * (letterbox). - *

- * Conversely, if the crop region is set to a 16:9, then 4:3 + * (letterbox).

+ *

Conversely, if the crop region is set to a 16:9, then 4:3 * outputs should crop horizontally (pillarbox), and 16:9 * streams should match exactly. These additional crops must - * be centered within the crop region. - *

- * The output streams must maintain square pixels at all + * be centered within the crop region.

+ *

The output streams must maintain square pixels at all * times, no matter what the relative aspect ratios of the * crop region and the stream are. Negative values for * corner are allowed for raw output if full pixel array is @@ -675,77 +549,55 @@ public final class CaptureResult extends CameraMetadata { * be set to be smaller than floor( activeArraySize.width / * android.scaler.maxDigitalZoom ) and floor( * activeArraySize.height / android.scaler.maxDigitalZoom), - * respectively. - *

+ * respectively.

*/ public static final Key SCALER_CROP_REGION = new Key("android.scaler.cropRegion", android.graphics.Rect.class); /** - *

- * Duration each pixel is exposed to - * light. - *

- * If the sensor can't expose this exact duration, it should shorten the - * duration exposed to the nearest possible value (rather than expose longer). - *

- *

- * 1/10000 - 30 sec range. No bulb mode - *

+ *

Duration each pixel is exposed to + * light.

+ *

If the sensor can't expose this exact duration, it should shorten the + * duration exposed to the nearest possible value (rather than expose longer).

+ *

1/10000 - 30 sec range. No bulb mode

*/ public static final Key SENSOR_EXPOSURE_TIME = new Key("android.sensor.exposureTime", long.class); /** - *

- * Duration from start of frame exposure to - * start of next frame exposure - *

- *

- * Exposure time has priority, so duration is set to - * max(duration, exposure time + overhead) - *

+ *

Duration from start of frame exposure to + * start of next frame exposure

+ *

Exposure time has priority, so duration is set to + * max(duration, exposure time + overhead)

*/ public static final Key SENSOR_FRAME_DURATION = new Key("android.sensor.frameDuration", long.class); /** - *

- * Gain applied to image data. Must be + *

Gain applied to image data. Must be * implemented through analog gain only if set to values - * below 'maximum analog sensitivity'. - *

- * If the sensor can't apply this exact gain, it should lessen the - * gain to the nearest possible value (rather than gain more). - *

- *

- * ISO 12232:2006 REI method - *

+ * below 'maximum analog sensitivity'.

+ *

If the sensor can't apply this exact gain, it should lessen the + * gain to the nearest possible value (rather than gain more).

+ *

ISO 12232:2006 REI method

*/ public static final Key SENSOR_SENSITIVITY = new Key("android.sensor.sensitivity", int.class); /** - *

- * Time at start of exposure of first - * row - *

- *

- * Monotonic, should be synced to other timestamps in - * system - *

+ *

Time at start of exposure of first + * row

+ *

Monotonic, should be synced to other timestamps in + * system

*/ public static final Key SENSOR_TIMESTAMP = new Key("android.sensor.timestamp", long.class); /** - *

- * The temperature of the sensor, sampled at the time - * exposure began for this frame. - *

- * The thermal diode being queried should be inside the sensor PCB, or - * somewhere close to it. - *

+ *

The temperature of the sensor, sampled at the time + * exposure began for this frame.

+ *

The thermal diode being queried should be inside the sensor PCB, or + * somewhere close to it.

* * Optional - This value may be null on some devices. * @@ -757,16 +609,12 @@ public final class CaptureResult extends CameraMetadata { new Key("android.sensor.temperature", float.class); /** - *

- * State of the face detector - * unit - *

- *

- * Whether face detection is enabled, and whether it + *

State of the face detector + * unit

+ *

Whether face detection is enabled, and whether it * should output just the basic fields or the full set of * fields. Value must be one of the - * android.statistics.info.availableFaceDetectModes. - *

+ * android.statistics.info.availableFaceDetectModes.

* @see #STATISTICS_FACE_DETECT_MODE_OFF * @see #STATISTICS_FACE_DETECT_MODE_SIMPLE * @see #STATISTICS_FACE_DETECT_MODE_FULL @@ -775,13 +623,9 @@ public final class CaptureResult extends CameraMetadata { new Key("android.statistics.faceDetectMode", int.class); /** - *

- * List of unique IDs for detected - * faces - *

- *

- * Only available if faceDetectMode == FULL - *

+ *

List of unique IDs for detected + * faces

+ *

Only available if faceDetectMode == FULL

* * @hide */ @@ -789,13 +633,9 @@ public final class CaptureResult extends CameraMetadata { new Key("android.statistics.faceIds", int[].class); /** - *

- * List of landmarks for detected - * faces - *

- *

- * Only available if faceDetectMode == FULL - *

+ *

List of landmarks for detected + * faces

+ *

Only available if faceDetectMode == FULL

* * @hide */ @@ -803,13 +643,9 @@ public final class CaptureResult extends CameraMetadata { new Key("android.statistics.faceLandmarks", int[].class); /** - *

- * List of the bounding rectangles for detected - * faces - *

- *

- * Only available if faceDetectMode != OFF - *

+ *

List of the bounding rectangles for detected + * faces

+ *

Only available if faceDetectMode != OFF

* * @hide */ @@ -817,14 +653,10 @@ public final class CaptureResult extends CameraMetadata { new Key("android.statistics.faceRectangles", android.graphics.Rect[].class); /** - *

- * List of the face confidence scores for - * detected faces - *

- *

- * Only available if faceDetectMode != OFF. The value should be - * meaningful (for example, setting 100 at all times is illegal). - *

+ *

List of the face confidence scores for + * detected faces

+ *

Only available if faceDetectMode != OFF. The value should be + * meaningful (for example, setting 100 at all times is illegal).

* * @hide */ @@ -832,80 +664,59 @@ public final class CaptureResult extends CameraMetadata { new Key("android.statistics.faceScores", byte[].class); /** - *

- * A low-resolution map of lens shading, per - * color channel - *

- *

- * Assume bilinear interpolation of map. The least + *

A low-resolution map of lens shading, per + * color channel

+ *

Assume bilinear interpolation of map. The least * shaded section of the image should have a gain factor * of 1; all other sections should have gains above 1. * the map should be on the order of 30-40 rows, and - * must be smaller than 64x64. - *

- * When android.colorCorrection.mode = TRANSFORM_MATRIX, the map - * must take into account the colorCorrection settings. - *

+ * must be smaller than 64x64.

+ *

When android.colorCorrection.mode = TRANSFORM_MATRIX, the map + * must take into account the colorCorrection settings.

*/ public static final Key STATISTICS_LENS_SHADING_MAP = new Key("android.statistics.lensShadingMap", float[].class); /** - *

- * The best-fit color channel gains calculated - * by the HAL's statistics units for the current output frame - *

- *

- * This may be different than the gains used for this frame, + *

The best-fit color channel gains calculated + * by the HAL's statistics units for the current output frame

+ *

This may be different than the gains used for this frame, * since statistics processing on data from a new frame * typically completes after the transform has already been - * applied to that frame. - *

- * The 4 channel gains are defined in Bayer domain, - * see android.colorCorrection.gains for details. - *

- * This value should always be calculated by the AWB block, - * regardless of the android.control.* current values. - *

+ * applied to that frame.

+ *

The 4 channel gains are defined in Bayer domain, + * see android.colorCorrection.gains for details.

+ *

This value should always be calculated by the AWB block, + * regardless of the android.control.* current values.

*/ public static final Key STATISTICS_PREDICTED_COLOR_GAINS = new Key("android.statistics.predictedColorGains", float[].class); /** - *

- * The best-fit color transform matrix estimate + *

The best-fit color transform matrix estimate * calculated by the HAL's statistics units for the current - * output frame - *

- *

- * The HAL must provide the estimate from its + * output frame

+ *

The HAL must provide the estimate from its * statistics unit on the white balance transforms to use * for the next frame. These are the values the HAL believes * are the best fit for the current output frame. This may * be different than the transform used for this frame, since * statistics processing on data from a new frame typically * completes after the transform has already been applied to - * that frame. - *

- * These estimates must be provided for all frames, even if - * capture settings and color transforms are set by the application. - *

- * This value should always be calculated by the AWB block, - * regardless of the android.control.* current values. - *

+ * that frame.

+ *

These estimates must be provided for all frames, even if + * capture settings and color transforms are set by the application.

+ *

This value should always be calculated by the AWB block, + * regardless of the android.control.* current values.

*/ public static final Key STATISTICS_PREDICTED_COLOR_TRANSFORM = new Key("android.statistics.predictedColorTransform", Rational[].class); /** - *

- * The HAL estimated scene illumination lighting - * frequency - *

- *

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

+ *

The HAL estimated scene illumination lighting + * frequency

+ *

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

* @see #STATISTICS_SCENE_FLICKER_NONE * @see #STATISTICS_SCENE_FLICKER_50HZ * @see #STATISTICS_SCENE_FLICKER_60HZ @@ -914,56 +725,40 @@ public final class CaptureResult extends CameraMetadata { new Key("android.statistics.sceneFlicker", int.class); /** - *

- * Table mapping blue input values to output - * values - *

- *

- * Tonemapping / contrast / gamma curve for the blue - * channel, to use when android.tonemap.mode is CONTRAST_CURVE. - *

- * See android.tonemap.curveRed for more details. - *

+ *

Table mapping blue input values to output + * values

+ *

Tonemapping / contrast / gamma curve for the blue + * channel, to use when android.tonemap.mode is CONTRAST_CURVE.

+ *

See android.tonemap.curveRed for more details.

*/ public static final Key TONEMAP_CURVE_BLUE = new Key("android.tonemap.curveBlue", float[].class); /** - *

- * Table mapping green input values to output - * values - *

- *

- * Tonemapping / contrast / gamma curve for the green - * channel, to use when android.tonemap.mode is CONTRAST_CURVE. - *

- * See android.tonemap.curveRed for more details. - *

+ *

Table mapping green input values to output + * values

+ *

Tonemapping / contrast / gamma curve for the green + * channel, to use when android.tonemap.mode is CONTRAST_CURVE.

+ *

See android.tonemap.curveRed for more details.

*/ public static final Key TONEMAP_CURVE_GREEN = new Key("android.tonemap.curveGreen", float[].class); /** - *

- * Table mapping red input values to output - * values - *

- *

- * Tonemapping / contrast / gamma curve for the red - * channel, to use when android.tonemap.mode is CONTRAST_CURVE. - *

- * Since the input and output ranges may vary depending on + *

Table mapping red input values to output + * values

+ *

Tonemapping / contrast / gamma curve for the red + * channel, to use when android.tonemap.mode is CONTRAST_CURVE.

+ *

Since the input and output ranges may vary depending on * the camera pipeline, the input and output pixel values * are represented by normalized floating-point values - * between 0 and 1, with 0 == black and 1 == white. - *

- * The curve should be linearly interpolated between the + * between 0 and 1, with 0 == black and 1 == white.

+ *

The curve should be linearly interpolated between the * defined points. The points will be listed in increasing * order of P_IN. For example, if the array is: [0.0, 0.0, - * 0.3, 0.5, 1.0, 1.0], then the input->output mapping - * for a few sample points would be: 0 -> 0, 0.15 -> - * 0.25, 0.3 -> 0.5, 0.5 -> 0.64 - *

+ * 0.3, 0.5, 1.0, 1.0], then the input->output mapping + * for a few sample points would be: 0 -> 0, 0.15 -> + * 0.25, 0.3 -> 0.5, 0.5 -> 0.64

*/ public static final Key TONEMAP_CURVE_RED = new Key("android.tonemap.curveRed", float[].class); @@ -977,20 +772,16 @@ public final class CaptureResult extends CameraMetadata { new Key("android.tonemap.mode", int.class); /** - *

- * This LED is nominally used to indicate to the user + *

This LED is nominally used to indicate to the user * that the camera is powered on and may be streaming images back to the * Application Processor. In certain rare circumstances, the OS may * disable this when video is processed locally and not transmitted to - * any untrusted applications. - *

- * In particular, the LED *must* always be on when the data could be - * transmitted off the device. The LED *should* always be on whenever - * data is stored locally on the device. - *

- * The LED *may* be off if a trusted application is using the data that - * doesn't violate the above rules. - *

+ * any untrusted applications.

+ *

In particular, the LED must always be on when the data could be + * transmitted off the device. The LED should always be on whenever + * data is stored locally on the device.

+ *

The LED may be off if a trusted application is using the data that + * doesn't violate the above rules.

* * @hide */ @@ -998,28 +789,11 @@ public final class CaptureResult extends CameraMetadata { new Key("android.led.transmit", boolean.class); /** - *

- * Whether black-level compensation is locked - * to its current values, or is free to vary - *

- *

- * When set to ON, the values used for black-level - * compensation must not change until the lock is set to - * OFF - *

- * Since changes to certain capture parameters (such as - * exposure time) may require resetting of black level - * compensation, the HAL must report whether setting the - * black level lock was successful in the output result - * metadata. - *

- * The black level locking must happen at the sensor, and not at the ISP. - * If for some reason black level locking is no longer legal (for example, - * the analog gain has changed, which forces black levels to be - * recalculated), then the HAL is free to override this request (and it - * must report 'OFF' when this does happen) until the next time locking - * is legal again. - *

+ *

Whether black-level compensation is locked + * to its current values, or is free to vary

+ *

Whether the black level offset was locked for this frame. + * Should be ON if android.blackLevel.lock was ON in the capture request, + * unless a change in capture settings forced a black level reset.

*/ public static final Key BLACK_LEVEL_LOCK = new Key("android.blackLevel.lock", boolean.class);