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- * 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- * Maximum and minimum exposure compensation + *
Maximum and minimum exposure compensation * setting, in counts of - * android.control.aeCompensationStepSize - *
+ * android.control.aeCompensationStepSize */ public static final Key- * Smallest step by which exposure compensation - * can be changed - *
+ *Smallest step by which exposure compensation + * can be changed
*/ public static final Key- * List of AF modes that can be - * selected - *
+ *List of AF modes that can be + * selected
*/ public static final Key- * 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- * what subset of the scene mode enum list is - * supported. - *
+ *what subset of the scene mode enum list is + * supported.
*/ public static final Key- * List of video stabilization modes that can - * be supported - *
+ *List of video stabilization modes that can + * be supported
*/ public static final Key- * 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- * 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- * Supported resolutions for the JPEG - * thumbnail - *
+ *Supported resolutions for the JPEG + * thumbnail
*/ public static final Key- * 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- * 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- * 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- * List of supported optical image - * stabilization modes - *
+ *List of supported optical image + * stabilization modes
*/ public static final Key- * 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- * 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- * Dimensions of lens shading - * map - *
+ *Dimensions of lens shading + * map
*/ public static final Key- * 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- * 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- * 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- * List of app-visible formats - *
+ *List of app-visible formats
*/ public static final Key- * 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- * 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- * 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- * 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- * 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- * 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- * Range of valid sensitivities - *
+ *Range of valid sensitivities
*/ public static final Key- * Range of valid exposure - * times - *
+ *Range of valid exposure + * times
*/ public static final Key- * 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- * 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- * 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- * 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- * 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- * 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- * Maximum number of simultaneously detectable - * faces - *
+ *Maximum number of simultaneously detectable + * faces
*/ public static final Key- * Maximum number of supported points in the - * tonemap curve - *
+ *Maximum number of supported points in the + * tonemap curve
*/ public static final Key- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * GPS coordinates to include in output JPEG - * EXIF - *
+ *GPS coordinates to include in output JPEG + * EXIF
*/ public static final Key- * 32 characters describing GPS algorithm to - * include in EXIF - *
+ *32 characters describing GPS algorithm to + * include in EXIF
*/ public static final Key- * Time GPS fix was made to include in - * EXIF - *
+ *Time GPS fix was made to include in + * EXIF
*/ public static final Key- * Orientation of JPEG image to - * write - *
+ *Orientation of JPEG image to + * write
*/ public static final Key- * 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- * Compression quality of JPEG - * thumbnail - *
+ *Compression quality of JPEG + * thumbnail
*/ public static final Key- * Resolution of embedded JPEG - * thumbnail - *
+ *Resolution of embedded JPEG + * thumbnail
*/ public static final Key- * 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- * 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 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- * 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- * 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- * 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- * 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- * (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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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:
+ *And the exposure change in Request 4 requires resetting the black + * level offsets, then the output result metadata is expected to be:
+ *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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * GPS coordinates to include in output JPEG - * EXIF - *
+ *GPS coordinates to include in output JPEG + * EXIF
*/ public static final Key- * 32 characters describing GPS algorithm to - * include in EXIF - *
+ *32 characters describing GPS algorithm to + * include in EXIF
*/ public static final Key- * Time GPS fix was made to include in - * EXIF - *
+ *Time GPS fix was made to include in + * EXIF
*/ public static final Key- * Orientation of JPEG image to - * write - *
+ *Orientation of JPEG image to + * write
*/ public static final Key- * 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- * Compression quality of JPEG - * thumbnail - *
+ *Compression quality of JPEG + * thumbnail
*/ public static final Key- * Resolution of embedded JPEG - * thumbnail - *
+ *Resolution of embedded JPEG + * thumbnail
*/ public static final Key- * 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- * 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 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * (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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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- * 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