From 9dc7ec1f54288ed824e07c004f960bcfd493f582 Mon Sep 17 00:00:00 2001
From: Eino-Ville Talvala Range of valid values: For processed (and stalling) format streams, >= 1.
A processed and stalling format is defined as any non-RAW format with a stallDurations - * > 0. Typically only the {@link android.graphics.ImageFormat#JPEG JPEG format} is a - * stalling format.
+ * > 0. Typically only the {@link android.graphics.ImageFormat#JPEG JPEG format} is a stalling format. *For full guarantees, query {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration } with a * processed format -- it will return a non-0 value for a stalling stream.
*LEGACY devices will support up to 1 processing/stalling stream.
@@ -1535,8 +1534,7 @@ public final class CameraCharacteristics extends CameraMetadataA list of all keys that the camera device has available - * to use with {@link android.hardware.camera2.CaptureResult }.
+ *A list of all keys that the camera device has available to use with {@link android.hardware.camera2.CaptureResult }.
*Attempting to get a key from a CaptureResult that is not
* listed here will always return a A list of all keys that the camera device has available
- * to use with {@link android.hardware.camera2.CameraCharacteristics }. A list of all keys that the camera device has available to use with {@link android.hardware.camera2.CameraCharacteristics }. This entry follows the same rules as
* android.request.availableResultKeys (except that it applies for
* CameraCharacteristics instead of CaptureResult). See above for more
@@ -1843,8 +1840,6 @@ public final class CameraCharacteristics extends CameraMetadata (Keep in sync with
- * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }) Units: (format, width, height, ns) x n This key is available on all devices. All other formats may or may not have an allowed stall duration on
* a per-capability basis; refer to {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities}
* for more details. See {@link CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration} for more information about
* calculating the max frame rate (absent stalls). (Keep up to date with
- * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration } ) Units: (format, width, height, ns) x n This key is available on all devices. If a camera device supports raw sensor formats, either this or
* {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE android.sensor.info.preCorrectionActiveArraySize} is the maximum dimensions for the raw
- * output formats listed in {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} (this depends on
- * whether or not the image sensor returns buffers containing pixels that are not
- * part of the active array region for blacklevel calibration or other purposes).null value. Getting a key from
* a CaptureResult that is listed here will generally never return a null
@@ -1561,8 +1559,7 @@ public final class CameraCharacteristics extends CameraMetadata
Some parts of the full pixel array may not receive light from the scene,
* or be otherwise inactive. The {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE android.sensor.info.preCorrectionActiveArraySize} key
* defines the rectangle of active pixels that will be included in processed image
@@ -2205,7 +2199,6 @@ public final class CameraCharacteristics extends CameraMetadata
This key is available on all devices.
* - * @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP * @see CameraCharacteristics#SENSOR_INFO_PHYSICAL_SIZE * @see CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE */ @@ -2838,7 +2831,7 @@ public final class CameraCharacteristics extends CameraMetadataSome features are not part of any particular hardware level or capability and must be * queried separately. These include:
*(Keep in sync with {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration })
*Units: (format, width, height, ns) x n
*Optional - This value may be {@code null} on some devices.
*Limited capability -
diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java
index 8c8c49fa63730..4b57018bfddfd 100644
--- a/core/java/android/hardware/camera2/CameraMetadata.java
+++ b/core/java/android/hardware/camera2/CameraMetadata.java
@@ -587,8 +587,8 @@ public abstract class CameraMetadata
If the device supports the {@link android.graphics.ImageFormat#RAW10 }, {@link android.graphics.ImageFormat#RAW12 }, then those can also be captured at the same rate - * as the maximum-size YUV_420_888 resolution is.
+ *If the device supports the {@link android.graphics.ImageFormat#RAW10 }, {@link android.graphics.ImageFormat#RAW12 }, then those can also be + * captured at the same rate as the maximum-size YUV_420_888 resolution is.
*If the device supports the PRIVATE_REPROCESSING capability, then the same guarantees * as for the YUV_420_888 format also apply to the {@link android.graphics.ImageFormat#PRIVATE } format.
*In addition, the {@link CameraCharacteristics#SYNC_MAX_LATENCY android.sync.maxLatency} field is guaranted to have a value between 0
@@ -610,25 +610,22 @@ public abstract class CameraMetadata
{@link CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS android.request.maxNumInputStreams} == 1.The camera device can produce depth measurements from its field of view.
*This capability requires the camera device to support the following:
*Generally, depth output operates at a slower frame rate than standard color capture,
* so the DEPTH16 and DEPTH_POINT_CLOUD formats will commonly have a stall duration that
- * should be accounted for (see
- * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }).
+ * should be accounted for (see {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }).
* On a device that supports both depth and color-based output, to enable smooth preview,
* using a repeating burst is recommended, where a depth-output target is only included
* once every N frames, where N is the ratio between preview output rate and depth output
@@ -692,23 +688,19 @@ public abstract class CameraMetadata The device supports constrained high speed video recording (frame rate >=120fps)
- * use case. The camera device will support high speed capture session created by
- * {@link android.hardware.camera2.CameraDevice#createConstrainedHighSpeedCaptureSession }, which
- * only accepts high speed request lists created by
- * {@link android.hardware.camera2.CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList }. A camera device can still support high speed video streaming by advertising the high speed
- * FPS ranges in {@link CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES android.control.aeAvailableTargetFpsRanges}. For this case, all normal
- * capture request per frame control and synchronization requirements will apply to
- * the high speed fps ranges, the same as all other fps ranges. This capability describes
- * the capability of a specialized operating mode with many limitations (see below), which
- * is only targeted at high speed video recording. The supported high speed video sizes and fps ranges are specified in
- * {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoFpsRanges }.
- * To get desired output frame rates, the application is only allowed to select video size
- * and FPS range combinations provided by
- * {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoSizes }.
- * The fps range can be controlled via {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE android.control.aeTargetFpsRange}. The device supports constrained high speed video recording (frame rate >=120fps) use
+ * case. The camera device will support high speed capture session created by {@link android.hardware.camera2.CameraDevice#createConstrainedHighSpeedCaptureSession }, which
+ * only accepts high speed request lists created by {@link android.hardware.camera2.CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList }. A camera device can still support high speed video streaming by advertising the high
+ * speed FPS ranges in {@link CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES android.control.aeAvailableTargetFpsRanges}. For this case, all
+ * normal capture request per frame control and synchronization requirements will apply
+ * to the high speed fps ranges, the same as all other fps ranges. This capability
+ * describes the capability of a specialized operating mode with many limitations (see
+ * below), which is only targeted at high speed video recording. The supported high speed video sizes and fps ranges are specified in {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoFpsRanges }.
+ * To get desired output frame rates, the application is only allowed to select video
+ * size and FPS range combinations provided by {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoSizes }. The
+ * fps range can be controlled via {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE android.control.aeTargetFpsRange}. In this capability, the camera device will override aeMode, awbMode, and afMode to
* ON, AUTO, and CONTINUOUS_VIDEO, respectively. All post-processing block mode
* controls will be overridden to be FAST. Therefore, no manual control of capture
@@ -743,19 +735,16 @@ public abstract class CameraMetadata The camera device will only support up to 2 high speed simultaneous output surfaces
- * (preview and recording surfaces)
- * in this mode. Above controls will be effective only if all of below conditions are true:
When above conditions are NOT satistied,
* {@link android.hardware.camera2.CameraDevice#createConstrainedHighSpeedCaptureSession }
@@ -1038,8 +1027,7 @@ public abstract class CameraMetadata This camera device is running in backward compatibility mode. Only the stream configurations listed in the Only the stream configurations listed in the A This camera device is capable of YUV reprocessing and RAW data capture, in addition to
* FULL-level capabilities. The stream configurations listed in the The following additional capabilities are guaranteed to be supported: Edge enhancement is applied at different levels for different output streams,
- * based on resolution. Streams at maximum recording resolution (see {@link android.hardware.camera2.CameraDevice#createCaptureSession }) or below have
- * edge enhancement applied, while higher-resolution streams have no edge enhancement
- * applied. The level of edge enhancement for low-resolution streams is tuned so that
- * frame rate is not impacted, and the quality is equal to or better than FAST (since it
- * is only applied to lower-resolution outputs, quality may improve from FAST). Edge enhancement is applied at different
+ * levels for different output streams, based on resolution. Streams at maximum recording
+ * resolution (see {@link android.hardware.camera2.CameraDevice#createCaptureSession })
+ * or below have edge enhancement applied, while higher-resolution streams have no edge
+ * enhancement applied. The level of edge enhancement for low-resolution streams is tuned
+ * so that frame rate is not impacted, and the quality is equal to or better than FAST
+ * (since it is only applied to lower-resolution outputs, quality may improve from FAST). This mode is intended to be used by applications operating in a zero-shutter-lag mode
* with YUV or PRIVATE reprocessing, where the application continuously captures
* high-resolution intermediate buffers into a circular buffer, from which a final image is
@@ -2287,12 +2275,12 @@ public abstract class CameraMetadata Noise reduction is applied at different levels for different output streams,
- * based on resolution. Streams at maximum recording resolution (see {@link android.hardware.camera2.CameraDevice#createCaptureSession }) or below have noise
- * reduction applied, while higher-resolution streams have MINIMAL (if supported) or no
- * noise reduction applied (if MINIMAL is not supported.) The degree of noise reduction
- * for low-resolution streams is tuned so that frame rate is not impacted, and the quality
- * is equal to or better than FAST (since it is only applied to lower-resolution outputs,
- * quality may improve from FAST). This mode is intended to be used by applications operating in a zero-shutter-lag mode
* with YUV or PRIVATE reprocessing, where the application continuously captures
* high-resolution intermediate buffers into a circular buffer, from which a final image is
diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java
index c41fc0207d924..0262ecb54f0de 100644
--- a/core/java/android/hardware/camera2/CaptureRequest.java
+++ b/core/java/android/hardware/camera2/CaptureRequest.java
@@ -680,7 +680,7 @@ public final class CaptureRequest extends CameraMetadata The expected processing pipeline is as follows: The white balance is encoded by two values, a 4-channel white-balance
* gain vector (applied in the Bayer domain), and a 3x3 color transform
* matrix (applied after demosaic). When set to AUTO, the individual algorithm controls in
* android.control.* are in effect, such as {@link CaptureRequest#CONTROL_AF_MODE android.control.afMode}. When set to USE_SCENE_MODE, the individual controls in
- * android.control.* are mostly disabled, and the camera device implements
- * one of the scene mode settings (such as ACTION, SUNSET, or PARTY)
- * as it wishes. The camera device scene mode 3A settings are provided by
- * {@link android.hardware.camera2.CaptureResult capture results}.LEGACY table in the {@link android.hardware.camera2.CameraDevice#createCaptureSession createCaptureSession}
- * documentation are supported.LEGACY table in the {@link android.hardware.camera2.CameraDevice#createCaptureSession createCaptureSession} documentation are supported.LEGACY device does not support per-frame control, manual sensor control, manual
* post-processing, arbitrary cropping regions, and has relaxed performance constraints.
* No additional capabilities beyond BACKWARD_COMPATIBLE will ever be listed by a
@@ -1061,8 +1049,7 @@ public abstract class CameraMetadataLEVEL_3, RAW, FULL, LEGACY and
- * LIMITED tables in the {@link android.hardware.camera2.CameraDevice#createCaptureSession createCaptureSession}
- * documentation are guaranteed to be supported.LIMITED tables in the {@link android.hardware.camera2.CameraDevice#createCaptureSession createCaptureSession} documentation are guaranteed to be supported.
*
YUV_REPROCESSING capability ({@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} contains
@@ -2155,12 +2142,13 @@ public abstract class CameraMetadata

When set to OFF_KEEP_STATE, it is similar to OFF mode, the only difference
* is that this frame will not be used by camera device background 3A statistics
* update, as if this frame is never captured. This mode can be used in the scenario
@@ -2268,45 +2268,35 @@ public final class CaptureRequest extends CameraMetadata
The necessary information for the application, given the model above, - * is provided via the {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} field using + *
The necessary information for the application, given the model above, is provided via * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }. - * These are used to determine the maximum frame rate / minimum frame - * duration that is possible for a given stream configuration.
+ * These are used to determine the maximum frame rate / minimum frame duration that is + * possible for a given stream configuration. *Specifically, the application can use the following rules to * determine the minimum frame duration it can request from the camera * device:
*S.S, by looking
- * it up in {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} using {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }
- * (with its respective size/format). Let this set of frame durations be
- * called F.R, the minimum frame duration allowed
- * for R is the maximum out of all values in F. Let the streams
- * used in R be called S_r.S.S, by looking it up in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }
+ * (with its respective size/format). Let this set of frame durations be called F.R, the minimum frame duration allowed for R is the maximum
+ * out of all values in F. Let the streams used in R be called S_r.If none of the streams in S_r have a stall time (listed in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }
- * using its respective size/format), then the frame duration in F
- * determines the steady state frame rate that the application will get
- * if it uses R as a repeating request. Let this special kind of
- * request be called Rsimple.
A repeating request Rsimple can be occasionally interleaved
- * by a single capture of a new request Rstall (which has at least
- * one in-use stream with a non-0 stall time) and if Rstall has the
- * same minimum frame duration this will not cause a frame rate loss
- * if all buffers from the previous Rstall have already been
- * delivered.
For more details about stalling, see - * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }.
+ * using its respective size/format), then the frame duration inF determines the steady
+ * state frame rate that the application will get if it uses R as a repeating request. Let
+ * this special kind of request be called Rsimple.
+ * A repeating request Rsimple can be occasionally interleaved by a single capture of a
+ * new request Rstall (which has at least one in-use stream with a non-0 stall time) and if
+ * Rstall has the same minimum frame duration this will not cause a frame rate loss if all
+ * buffers from the previous Rstall have already been delivered.
For more details about stalling, see {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }.
*This control is only effective if {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} or {@link CaptureRequest#CONTROL_MODE android.control.mode} is set to * OFF; otherwise the auto-exposure algorithm will override this value.
*Units: Nanoseconds
*Range of valid values:
- * See {@link CameraCharacteristics#SENSOR_INFO_MAX_FRAME_DURATION android.sensor.info.maxFrameDuration},
- * {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap}. The duration
- * is capped to max(duration, exposureTime + overhead).
max(duration, exposureTime + overhead).
* Optional - This value may be {@code null} on some devices.
*Full capability -
* Present on all camera devices that report being {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_FULL HARDWARE_LEVEL_FULL} devices in the
@@ -2315,7 +2305,6 @@ public final class CaptureRequest extends CameraMetadata Linear mapping: Invert mapping: Gamma 1/2.2 mapping, with 16 control points: Standard sRGB gamma mapping, per IEC 61966-2-1:1999, with 16 control points: Range of valid values: Linear mapping: Invert mapping: Gamma 1/2.2 mapping, with 16 control points: Standard sRGB gamma mapping, per IEC 61966-2-1:1999, with 16 control points: Optional - This value may be {@code null} on some devices. Full capability -
* Present on all camera devices that report being {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_FULL HARDWARE_LEVEL_FULL} devices in the
@@ -2756,9 +2745,9 @@ public final class CaptureRequest extends CameraMetadata The tonemap curve will be defined by specified standard. sRGB (approximated by 16 control points): Rec. 709 (approximated by 16 control points): Note that above figures show a 16 control points approximation of preset
* curves. Camera devices may apply a different approximation to the curve. Possible values:
diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java
index 6d80c20a84afb..cfad098c0cd27 100644
--- a/core/java/android/hardware/camera2/CaptureResult.java
+++ b/core/java/android/hardware/camera2/CaptureResult.java
@@ -390,7 +390,7 @@ public class CaptureResult extends CameraMetadata The expected processing pipeline is as follows: The white balance is encoded by two values, a 4-channel white-balance
* gain vector (applied in the Bayer domain), and a 3x3 color transform
* matrix (applied after demosaic). When set to AUTO, the individual algorithm controls in
* android.control.* are in effect, such as {@link CaptureRequest#CONTROL_AF_MODE android.control.afMode}. When set to USE_SCENE_MODE, the individual controls in
- * android.control.* are mostly disabled, and the camera device implements
- * one of the scene mode settings (such as ACTION, SUNSET, or PARTY)
- * as it wishes. The camera device scene mode 3A settings are provided by
- * {@link android.hardware.camera2.CaptureResult capture results}.
- * android.tonemap.curveRed = [ 0, 0, 1.0, 1.0 ]
* 

- * android.tonemap.curveRed = [ 0, 1.0, 1.0, 0 ]
* 

- * android.tonemap.curveRed = [
* 0.0000, 0.0000, 0.0667, 0.2920, 0.1333, 0.4002, 0.2000, 0.4812,
@@ -2596,7 +2585,7 @@ public final class CaptureRequest extends CameraMetadata

- * android.tonemap.curveRed = [
* 0.0000, 0.0000, 0.0667, 0.2864, 0.1333, 0.4007, 0.2000, 0.4845,
@@ -2604,7 +2593,7 @@ public final class CaptureRequest extends CameraMetadata

* 0-1 on both input and output coordinates, normalized
* as a floating-point value such that 0 == black and 1 == white.
- * curveRed = [ (0, 0), (1.0, 1.0) ]
* 

- * curveRed = [ (0, 1.0), (1.0, 0) ]
* 

- * curveRed = [
* (0.0000, 0.0000), (0.0667, 0.2920), (0.1333, 0.4002), (0.2000, 0.4812),
@@ -2658,7 +2647,7 @@ public final class CaptureRequest extends CameraMetadata

- * curveRed = [
* (0.0000, 0.0000), (0.0667, 0.2864), (0.1333, 0.4007), (0.2000, 0.4845),
@@ -2666,7 +2655,7 @@ public final class CaptureRequest extends CameraMetadata







When set to OFF_KEEP_STATE, it is similar to OFF mode, the only difference
* is that this frame will not be used by camera device background 3A statistics
* update, as if this frame is never captured. This mode can be used in the scenario
@@ -3108,45 +3108,35 @@ public class CaptureResult extends CameraMetadata
The necessary information for the application, given the model above, - * is provided via the {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} field using + *
The necessary information for the application, given the model above, is provided via * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }. - * These are used to determine the maximum frame rate / minimum frame - * duration that is possible for a given stream configuration.
+ * These are used to determine the maximum frame rate / minimum frame duration that is + * possible for a given stream configuration. *Specifically, the application can use the following rules to * determine the minimum frame duration it can request from the camera * device:
*S.S, by looking
- * it up in {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} using {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }
- * (with its respective size/format). Let this set of frame durations be
- * called F.R, the minimum frame duration allowed
- * for R is the maximum out of all values in F. Let the streams
- * used in R be called S_r.S.S, by looking it up in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }
+ * (with its respective size/format). Let this set of frame durations be called F.R, the minimum frame duration allowed for R is the maximum
+ * out of all values in F. Let the streams used in R be called S_r.If none of the streams in S_r have a stall time (listed in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }
- * using its respective size/format), then the frame duration in F
- * determines the steady state frame rate that the application will get
- * if it uses R as a repeating request. Let this special kind of
- * request be called Rsimple.
A repeating request Rsimple can be occasionally interleaved
- * by a single capture of a new request Rstall (which has at least
- * one in-use stream with a non-0 stall time) and if Rstall has the
- * same minimum frame duration this will not cause a frame rate loss
- * if all buffers from the previous Rstall have already been
- * delivered.
For more details about stalling, see - * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }.
+ * using its respective size/format), then the frame duration inF determines the steady
+ * state frame rate that the application will get if it uses R as a repeating request. Let
+ * this special kind of request be called Rsimple.
+ * A repeating request Rsimple can be occasionally interleaved by a single capture of a
+ * new request Rstall (which has at least one in-use stream with a non-0 stall time) and if
+ * Rstall has the same minimum frame duration this will not cause a frame rate loss if all
+ * buffers from the previous Rstall have already been delivered.
For more details about stalling, see {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }.
*This control is only effective if {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} or {@link CaptureRequest#CONTROL_MODE android.control.mode} is set to * OFF; otherwise the auto-exposure algorithm will override this value.
*Units: Nanoseconds
*Range of valid values:
- * See {@link CameraCharacteristics#SENSOR_INFO_MAX_FRAME_DURATION android.sensor.info.maxFrameDuration},
- * {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap}. The duration
- * is capped to max(duration, exposureTime + overhead).
max(duration, exposureTime + overhead).
* Optional - This value may be {@code null} on some devices.
*Full capability -
* Present on all camera devices that report being {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_FULL HARDWARE_LEVEL_FULL} devices in the
@@ -3155,7 +3145,6 @@ public class CaptureResult extends CameraMetadata
This key will be available if {@link CameraCharacteristics#SENSOR_OPTICAL_BLACK_REGIONS android.sensor.opticalBlackRegions} is - * available or the camera device advertises this key via - * {@link android.hardware.camera2.CameraCharacteristics#getAvailableCaptureResultKeys }.
+ *This key will be available if {@link CameraCharacteristics#SENSOR_OPTICAL_BLACK_REGIONS android.sensor.opticalBlackRegions} is available or the + * camera device advertises this key via {@link android.hardware.camera2.CameraCharacteristics#getAvailableCaptureResultKeys }.
*Range of valid values:
* >= 0 for each.
Optional - This value may be {@code null} on some devices.
@@ -3640,13 +3628,13 @@ public class CaptureResult extends CameraMetadataThe low-resolution scaling map images for each channel are * (displayed using nearest-neighbor interpolation):
- *
- *
- *
- * 
+ *
+ *
+ * 
As a visualization only, inverting the full-color map to recover an * image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:
- *

Range of valid values:
* Each gain factor is >= 1
Optional - This value may be {@code null} on some devices.
@@ -3707,14 +3695,14 @@ public class CaptureResult extends CameraMetadataThe low-resolution scaling map images for each channel are * (displayed using nearest-neighbor interpolation):
- *
- *
- *
- * 
+ *
+ *
+ * 
As a visualization only, inverting the full-color map to recover an * image of a gray wall (using bicubic interpolation for visual quality) * as captured by the sensor gives:
- *

Note that the RAW image data might be subject to lens shading
* correction not reported on this map. Query
* {@link CameraCharacteristics#SENSOR_INFO_LENS_SHADING_APPLIED android.sensor.info.lensShadingApplied} to see if RAW image data has subject
@@ -3947,11 +3935,11 @@ public class CaptureResult extends CameraMetadata Linear mapping: Invert mapping: Gamma 1/2.2 mapping, with 16 control points: Standard sRGB gamma mapping, per IEC 61966-2-1:1999, with 16 control points: Range of valid values: Linear mapping: Invert mapping: Gamma 1/2.2 mapping, with 16 control points: Standard sRGB gamma mapping, per IEC 61966-2-1:1999, with 16 control points: Optional - This value may be {@code null} on some devices. Full capability -
* Present on all camera devices that report being {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_FULL HARDWARE_LEVEL_FULL} devices in the
@@ -4119,9 +4107,9 @@ public class CaptureResult extends CameraMetadata The tonemap curve will be defined by specified standard. sRGB (approximated by 16 control points): Rec. 709 (approximated by 16 control points): Note that above figures show a 16 control points approximation of preset
* curves. Camera devices may apply a different approximation to the curve. Possible values:
diff --git a/docs/html/reference/images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png b/docs/html/reference/images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png
new file mode 100644
index 0000000000000000000000000000000000000000..7578b48770fb41950714a2853ccccafc43137565
GIT binary patch
literal 25603
zcmZsC1yodD^zO`1LysUOH7MN!(lvrXs30OC-AaeRAT{U!Dk(@w3#fGW&?%BC4kg_=
zbi=#o@4dJFYyDZQ#c=1|ea|^}-?P8H_xHWkdU%hL>>3#e1fo<^y{!!bK` Revq$bUF3Io;r|D{!QcutD>0%RpKVAU$Bem4nWy%uJIV
z?2v&Xre$<{Z(gM)f0ZLp*&HH=S($c<(1qz-9IZa>x{#_MLD_bx45iGIb^
zljp>yL(edEL_s(>vGoSGGrJ_&Q6>Tbi(9RRUXK${B%e(5c}w-aUfPy{j;~t&RAfr*
zPFO0hFIswW{fWHuA%?51W?DMHt8W6K1C#zHGc5|2tGA}I$1omnKI2FkD)9~-9WeF$
z
- * android.tonemap.curveRed = [ 0, 0, 1.0, 1.0 ]
* 

- * android.tonemap.curveRed = [ 0, 1.0, 1.0, 0 ]
* 

- * android.tonemap.curveRed = [
* 0.0000, 0.0000, 0.0667, 0.2920, 0.1333, 0.4002, 0.2000, 0.4812,
@@ -3959,7 +3947,7 @@ public class CaptureResult extends CameraMetadata

- * android.tonemap.curveRed = [
* 0.0000, 0.0000, 0.0667, 0.2864, 0.1333, 0.4007, 0.2000, 0.4845,
@@ -3967,7 +3955,7 @@ public class CaptureResult extends CameraMetadata

* 0-1 on both input and output coordinates, normalized
* as a floating-point value such that 0 == black and 1 == white.
- * curveRed = [ (0, 0), (1.0, 1.0) ]
* 

- * curveRed = [ (0, 1.0), (1.0, 0) ]
* 

- * curveRed = [
* (0.0000, 0.0000), (0.0667, 0.2920), (0.1333, 0.4002), (0.2000, 0.4812),
@@ -4021,7 +4009,7 @@ public class CaptureResult extends CameraMetadata

- * curveRed = [
* (0.0000, 0.0000), (0.0667, 0.2864), (0.1333, 0.4007), (0.2000, 0.4845),
@@ -4029,7 +4017,7 @@ public class CaptureResult extends CameraMetadata





YlA1m5eIk3;brP)JoERbD*69^~n`}3}jy5uj
zV@oiJ`vH{pz=rA$!>8(pXv7ZP`lx|{Vj(MseVymuo+-UNVh^a}Frqo$eg!M9Fz-|q
z77C+`kqIexRC>g~<`obQ>ye&WYjQD%LFkx6NpLTd;64hZMehv4^bm2fl4m?OD`(7J
zEkz(lgebfAM5#G&@5Uo_Lq`7S{q5*sfv!UN$x>z{aX%&0Q7)7|fgE_;f1zg1Sg04d
zCOk4wq^TWA{uK;$9EA3({jqQ#-v%pB2|ulkaPu5I`%3l-Cv+@3+s!jwAxHgVK`J^4
zHXIh0KPxjk_0;t|s|sOOxensEiyB5pS&rKS#yP>}&0+H1<@WuVNL8WPBHwv|{}A*b
z8i^*}WQXbKnX+Td4P3y(us9-`K+dK}(XY*)g6^p8ME6@nJzK7=4q^x!1eG&(9L2=E
z-?4g9Zun)`c&&L4ge1MPV=role>ZTojt!(v{d(9y^)%Y8i3Cd+IOX
zD+oLa5CteIm%T0z1Tuba^isf`IAD8x^D1}Tlk6`pU4bNiEdG;`KZPCvra}6YAV#{k
zpX=q~6n5WFA$1G(Guba%@^W%UVpbC9um5$1JoS673K6Gyndcf>@I23xvBtW#&ms45
zj*p``b4tNcS>>8vWNCgzXz
$%K$wyBH8{ty4AOY%0+b#Sa|wdQoBmLEpA
zGS!#HHsM*0!#gGJWvSCl+dn6m@B)8fVY$ecwEyTCkdxqn@)IF6=fYZ6g2Wl7%Oy~V
z(o{Q_>5dh=xRFY>d{H0{M_K^2eytyngk
0E4%o{O4I*K{#D=gvt59y
_sqn?f(_sx
zbD7;))^%b(Dr4uO)q(F=F4hd}o*&?ys<1DR?)XY~`|^gMpdgX;nGU30h2WKOaA)j?
zj