diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index 46ad3f0eccc90..3a3048ef1de2d 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -1280,11 +1280,11 @@ public final class CameraCharacteristics extends CameraMetadata *
  • Processed (but stalling): any non-RAW format with a stallDurations > 0. * Typically {@link android.graphics.ImageFormat#JPEG JPEG format}.
  • - *
  • Raw formats: {@link android.graphics.ImageFormat#RAW_SENSOR RAW_SENSOR}, {@link android.graphics.ImageFormat#RAW10 RAW10}, or {@link android.graphics.ImageFormat#RAW12 RAW12}.
  • - *
  • Processed (but not-stalling): any non-RAW format without a stall duration. - * Typically {@link android.graphics.ImageFormat#YUV_420_888 YUV_420_888}, - * {@link android.graphics.ImageFormat#NV21 NV21}, or - * {@link android.graphics.ImageFormat#YV12 YV12}.
  • + *
  • Raw formats: {@link android.graphics.ImageFormat#RAW_SENSOR RAW_SENSOR}, {@link android.graphics.ImageFormat#RAW10 RAW10}, or + * {@link android.graphics.ImageFormat#RAW12 RAW12}.
  • + *
  • Processed (but not-stalling): any non-RAW format without a stall duration. Typically + * {@link android.graphics.ImageFormat#YUV_420_888 YUV_420_888}, + * {@link android.graphics.ImageFormat#NV21 NV21}, or {@link android.graphics.ImageFormat#YV12 YV12}.
  • * *

    Range of valid values:

    *

    For processed (and stalling) format streams, >= 1.

    @@ -1376,8 +1376,7 @@ public final class CameraCharacteristics extends CameraMetadataRAW and supported format provided by {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap}.

    *

    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 CameraMetadata("android.request.availableRequestKeys", int[].class); /** - *

    A 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 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("android.request.availableResultKeys", int[].class); /** - *

    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 CameraMetadataSee {@link CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration} and * android.scaler.availableStallDurations for more details about * calculating the max frame rate.

    - *

    (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.

    * @@ -1905,14 +1900,13 @@ public final class CameraCharacteristics extends CameraMetadata *
  • {@link android.graphics.ImageFormat#YUV_420_888 }
  • *
  • {@link android.graphics.ImageFormat#RAW10 }
  • + *
  • {@link android.graphics.ImageFormat#RAW12 }
  • * *

    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.

    * @@ -2195,9 +2189,9 @@ public final class CameraCharacteristics extends CameraMetadata *

    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).

    + * output formats listed in {@link android.hardware.camera2.params.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).

    *

    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 CameraMetadataUnits: Pixels

    *

    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 CameraMetadataSee the individual level enums for full descriptions of the supported capabilities. The * {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} entry describes the device's capabilities at a * finer-grain level, if needed. In addition, many controls have their available settings or - * ranges defined in individual {@link android.hardware.camera2.CameraCharacteristics } entries.

    + * ranges defined in individual entries from {@link android.hardware.camera2.CameraCharacteristics }.

    *

    Some features are not part of any particular hardware level or capability and must be * queried separately. These include:

    *
      @@ -2973,7 +2966,6 @@ public final class CameraCharacteristics extends CameraMetadataSee {@link CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration} and * android.scaler.availableStallDurations for more details about * calculating the max frame rate.

      - *

      (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 { * then the list of resolutions for YUV_420_888 from {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes } contains at * least one resolution >= 8 megapixels, with a minimum frame duration of <= 1/20 * s.

      - *

      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 { * following:

      *
        *
      • One input stream is supported, that is, {@link CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS android.request.maxNumInputStreams} == 1.
      • - *
      • {@link android.graphics.ImageFormat#YUV_420_888 } is supported as an output/input format, that is, - * YUV_420_888 is included in the lists of formats returned by - * {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats } and - * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputFormats }.
      • + *
      • {@link android.graphics.ImageFormat#YUV_420_888 } is supported as an output/input + * format, that is, YUV_420_888 is included in the lists of formats returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats } and {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputFormats }.
      • *
      • {@link android.hardware.camera2.params.StreamConfigurationMap#getValidOutputFormatsForInput } * returns non-empty int[] for each supported input format returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats }.
      • *
      • Each size returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputSizes getInputSizes(YUV_420_888)} is also included in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes getOutputSizes(YUV_420_888)}
      • - *
      • Using {@link android.graphics.ImageFormat#YUV_420_888 } does not cause a frame rate drop - * relative to the sensor's maximum capture rate (at that resolution).
      • + *
      • Using {@link android.graphics.ImageFormat#YUV_420_888 } does not cause a frame rate + * drop relative to the sensor's maximum capture rate (at that resolution).
      • *
      • {@link android.graphics.ImageFormat#YUV_420_888 } will be reprocessable into both * {@link android.graphics.ImageFormat#YUV_420_888 } and {@link android.graphics.ImageFormat#JPEG } formats.
      • *
      • The maximum available resolution for {@link android.graphics.ImageFormat#YUV_420_888 } streams (both input/output) will match the * maximum available resolution of {@link android.graphics.ImageFormat#JPEG } streams.
      • *
      • Static metadata {@link CameraCharacteristics#REPROCESS_MAX_CAPTURE_STALL android.reprocess.maxCaptureStall}.
      • *
      • Only the below controls are effective for reprocessing requests and will be present - * in capture results. The reprocess requests are from the original capture results that - * are associated with the intermediate {@link android.graphics.ImageFormat#YUV_420_888 } - * output buffers. All other controls in the reprocess requests will be ignored by the - * camera device.
          + * in capture results. The reprocess requests are from the original capture results + * that are associated with the intermediate {@link android.graphics.ImageFormat#YUV_420_888 } output buffers. All other controls in the + * reprocess requests will be ignored by the camera device.
            *
          • android.jpeg.*
          • *
          • {@link CaptureRequest#NOISE_REDUCTION_MODE android.noiseReduction.mode}
          • *
          • {@link CaptureRequest#EDGE_MODE android.edge.mode}
          • @@ -654,13 +651,13 @@ public abstract class CameraMetadata { *

            The camera device can produce depth measurements from its field of view.

            *

            This capability requires the camera device to support the following:

            *
              - *
            • {@link android.graphics.ImageFormat#DEPTH16 } is supported as an output format.
            • - *
            • {@link android.graphics.ImageFormat#DEPTH_POINT_CLOUD } is optionally supported as an - * output format.
            • - *
            • This camera device, and all camera devices with the same {@link CameraCharacteristics#LENS_FACING android.lens.facing}, - * will list the following calibration entries in both - * {@link android.hardware.camera2.CameraCharacteristics } and - * {@link android.hardware.camera2.CaptureResult }:
                + *
              • {@link android.graphics.ImageFormat#DEPTH16 } is supported as + * an output format.
              • + *
              • {@link android.graphics.ImageFormat#DEPTH_POINT_CLOUD } is + * optionally supported as an output format.
              • + *
              • This camera device, and all camera devices with the same {@link CameraCharacteristics#LENS_FACING android.lens.facing}, will + * list the following calibration metadata entries in both {@link android.hardware.camera2.CameraCharacteristics } + * and {@link android.hardware.camera2.CaptureResult }:
                  *
                • {@link CameraCharacteristics#LENS_POSE_TRANSLATION android.lens.poseTranslation}
                • *
                • {@link CameraCharacteristics#LENS_POSE_ROTATION android.lens.poseRotation}
                • *
                • {@link CameraCharacteristics#LENS_INTRINSIC_CALIBRATION android.lens.intrinsicCalibration}
                • @@ -674,8 +671,7 @@ public abstract class CameraMetadata { *
                *

                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 { public static final int REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT = 8; /** - *

                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 { * frame rate. If the destination surface is from preview window, the actual preview frame * rate will be bounded by the screen refresh rate.

                *

                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:

                + * (preview and recording surfaces) in this mode. Above controls will be effective only + * if all of below conditions are true:

                *
                  *
                • The application creates a camera capture session with no more than 2 surfaces via * {@link android.hardware.camera2.CameraDevice#createConstrainedHighSpeedCaptureSession }. The - * targeted surfaces must be preview surface (either from - * {@link android.view.SurfaceView } or {@link android.graphics.SurfaceTexture }) or - * recording surface(either from {@link android.media.MediaRecorder#getSurface } or - * {@link android.media.MediaCodec#createInputSurface }).
                • + * targeted surfaces must be preview surface (either from {@link android.view.SurfaceView } or {@link android.graphics.SurfaceTexture }) or recording + * surface(either from {@link android.media.MediaRecorder#getSurface } or {@link android.media.MediaCodec#createInputSurface }). *
                • The stream sizes are selected from the sizes reported by * {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoSizes }.
                • - *
                • The FPS ranges are selected from - * {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoFpsRanges }.
                • + *
                • The FPS ranges are selected from {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoFpsRanges }.
                • *
                *

                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 LEGACY table in the {@link android.hardware.camera2.CameraDevice#createCaptureSession createCaptureSession} - * documentation are supported.

                + *

                Only the stream configurations listed in the LEGACY table in the {@link android.hardware.camera2.CameraDevice#createCaptureSession createCaptureSession} documentation are supported.

                *

                A 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 CameraMetadata { *

                This camera device is capable of YUV reprocessing and RAW data capture, in addition to * FULL-level capabilities.

                *

                The stream configurations listed in the LEVEL_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.

                *

                The following additional capabilities 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 { public static final int EDGE_MODE_HIGH_QUALITY = 2; /** - *

                  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).

                  + * 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> * FAST or HIGH_QUALITY will yield a picture with the same white point * as what was produced by the camera device in the earlier frame.

                  *

                  The expected processing pipeline is as follows:

                  - *

                  White balance processing pipeline

                  + *

                  White balance processing pipeline

                  *

                  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).

                  @@ -1470,10 +1470,10 @@ public final class CaptureRequest extends CameraMetadata> *

                  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.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}.

                  *

                  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> * can run concurrently to the rest of the camera pipeline, but * cannot process more than 1 capture at a time.

                • *
                - *

                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:

                *
                  - *
                1. Let the set of currently configured input/output streams - * be called S.
                2. - *
                3. Find the minimum frame durations for each stream in 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.
                4. - *
                5. For any given request 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.
                6. + *
                7. Let the set of currently configured input/output streams be called S.
                8. + *
                9. Find the minimum frame durations for each stream in 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.
                10. + *
                11. For any given request 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.
                12. *
                *

                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 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 }.

                *

                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).

                + * See {@link CameraCharacteristics#SENSOR_INFO_MAX_FRAME_DURATION android.sensor.info.maxFrameDuration}, {@link android.hardware.camera2.params.StreamConfigurationMap }. + * The duration is capped to 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> * @see CaptureRequest#CONTROL_AE_MODE * @see CaptureRequest#CONTROL_MODE * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL - * @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP * @see CameraCharacteristics#SENSOR_INFO_MAX_FRAME_DURATION */ @PublicKey @@ -2584,11 +2573,11 @@ public final class CaptureRequest extends CameraMetadata> *

                Linear mapping:

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

                Linear mapping curve

                + *

                Linear mapping curve

                *

                Invert mapping:

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

                Inverting mapping curve

                + *

                Inverting mapping curve

                *

                Gamma 1/2.2 mapping, with 16 control points:

                *
                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>
                      *   0.5333, 0.7515, 0.6000, 0.7928, 0.6667, 0.8317, 0.7333, 0.8685,
                      *   0.8000, 0.9035, 0.8667, 0.9370, 0.9333, 0.9691, 1.0000, 1.0000 ]
                      * 
                - *

                Gamma = 1/2.2 tonemapping curve

                + *

                Gamma = 1/2.2 tonemapping curve

                *

                Standard sRGB gamma mapping, per IEC 61966-2-1:1999, with 16 control points:

                *
                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.5333, 0.7569, 0.6000, 0.7977, 0.6667, 0.8360, 0.7333, 0.8721,
                      *   0.8000, 0.9063, 0.8667, 0.9389, 0.9333, 0.9701, 1.0000, 1.0000 ]
                      * 
                - *

                sRGB tonemapping curve

                + *

                sRGB tonemapping curve

                *

                Range of valid values:
                * 0-1 on both input and output coordinates, normalized * as a floating-point value such that 0 == black and 1 == white.

                @@ -2646,11 +2635,11 @@ public final class CaptureRequest extends CameraMetadata> *

                Linear mapping:

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

                Linear mapping curve

                + *

                Linear mapping curve

                *

                Invert mapping:

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

                Inverting mapping curve

                + *

                Inverting mapping curve

                *

                Gamma 1/2.2 mapping, with 16 control points:

                *
                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>
                      *   (0.5333, 0.7515), (0.6000, 0.7928), (0.6667, 0.8317), (0.7333, 0.8685),
                      *   (0.8000, 0.9035), (0.8667, 0.9370), (0.9333, 0.9691), (1.0000, 1.0000) ]
                      * 
                - *

                Gamma = 1/2.2 tonemapping curve

                + *

                Gamma = 1/2.2 tonemapping curve

                *

                Standard sRGB gamma mapping, per IEC 61966-2-1:1999, with 16 control points:

                *
                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>
                      *   (0.5333, 0.7569), (0.6000, 0.7977), (0.6667, 0.8360), (0.7333, 0.8721),
                      *   (0.8000, 0.9063), (0.8667, 0.9389), (0.9333, 0.9701), (1.0000, 1.0000) ]
                      * 
                - *

                sRGB tonemapping curve

                + *

                sRGB tonemapping curve

                *

                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> * PRESET_CURVE

                *

                The tonemap curve will be defined by specified standard.

                *

                sRGB (approximated by 16 control points):

                - *

                sRGB tonemapping curve

                + *

                sRGB tonemapping curve

                *

                Rec. 709 (approximated by 16 control points):

                - *

                Rec. 709 tonemapping curve

                + *

                Rec. 709 tonemapping curve

                *

                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> { * FAST or HIGH_QUALITY will yield a picture with the same white point * as what was produced by the camera device in the earlier frame.

                *

                The expected processing pipeline is as follows:

                - *

                White balance processing pipeline

                + *

                White balance processing pipeline

                *

                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).

                @@ -1975,10 +1975,10 @@ public class CaptureResult extends CameraMetadata> { *

                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.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}.

                *

                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> { * can run concurrently to the rest of the camera pipeline, but * cannot process more than 1 capture at a time.

              • *
              - *

              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:

              *
                - *
              1. Let the set of currently configured input/output streams - * be called S.
              2. - *
              3. Find the minimum frame durations for each stream in 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.
              4. - *
              5. For any given request 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.
              6. + *
              7. Let the set of currently configured input/output streams be called S.
              8. + *
              9. Find the minimum frame durations for each stream in 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.
              10. + *
              11. For any given request 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.
              12. *
              *

              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 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 }.

              *

              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).

              + * See {@link CameraCharacteristics#SENSOR_INFO_MAX_FRAME_DURATION android.sensor.info.maxFrameDuration}, {@link android.hardware.camera2.params.StreamConfigurationMap }. + * The duration is capped to 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> { * @see CaptureRequest#CONTROL_AE_MODE * @see CaptureRequest#CONTROL_MODE * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL - * @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP * @see CameraCharacteristics#SENSOR_INFO_MAX_FRAME_DURATION */ @PublicKey @@ -3408,9 +3397,8 @@ public class CaptureResult extends CameraMetadata> { * layout key (see {@link CameraCharacteristics#SENSOR_INFO_COLOR_FILTER_ARRANGEMENT android.sensor.info.colorFilterArrangement}), i.e. the * nth value given corresponds to the black level offset for the nth * color channel listed in the CFA.

              - *

              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 CameraMetadata> { * *

              The low-resolution scaling map images for each channel are * (displayed using nearest-neighbor interpolation):

              - *

              Red lens shading map - * Green (even rows) lens shading map - * Green (odd rows) lens shading map - * Blue lens shading map

              + *

              Red lens shading map + * Green (even rows) lens shading map + * Green (odd rows) lens shading map + * Blue lens shading map

              *

              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:

              - *

              Image of a uniform white wall (inverse shading map)

              + *

              Image of a uniform white wall (inverse shading map)

              *

              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 CameraMetadata> { * *

              The low-resolution scaling map images for each channel are * (displayed using nearest-neighbor interpolation):

              - *

              Red lens shading map - * Green (even rows) lens shading map - * Green (odd rows) lens shading map - * Blue lens shading map

              + *

              Red lens shading map + * Green (even rows) lens shading map + * Green (odd rows) lens shading map + * Blue lens shading map

              *

              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:

              - *

              Image of a uniform white wall (inverse shading map)

              + *

              Image of a uniform white wall (inverse shading map)

              *

              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:

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

              Linear mapping curve

              + *

              Linear mapping curve

              *

              Invert mapping:

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

              Inverting mapping curve

              + *

              Inverting mapping curve

              *

              Gamma 1/2.2 mapping, with 16 control points:

              *
              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> {
                    *   0.5333, 0.7515, 0.6000, 0.7928, 0.6667, 0.8317, 0.7333, 0.8685,
                    *   0.8000, 0.9035, 0.8667, 0.9370, 0.9333, 0.9691, 1.0000, 1.0000 ]
                    * 
              - *

              Gamma = 1/2.2 tonemapping curve

              + *

              Gamma = 1/2.2 tonemapping curve

              *

              Standard sRGB gamma mapping, per IEC 61966-2-1:1999, with 16 control points:

              *
              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.5333, 0.7569, 0.6000, 0.7977, 0.6667, 0.8360, 0.7333, 0.8721,
                    *   0.8000, 0.9063, 0.8667, 0.9389, 0.9333, 0.9701, 1.0000, 1.0000 ]
                    * 
              - *

              sRGB tonemapping curve

              + *

              sRGB tonemapping curve

              *

              Range of valid values:
              * 0-1 on both input and output coordinates, normalized * as a floating-point value such that 0 == black and 1 == white.

              @@ -4009,11 +3997,11 @@ public class CaptureResult extends CameraMetadata> { *

              Linear mapping:

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

              Linear mapping curve

              + *

              Linear mapping curve

              *

              Invert mapping:

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

              Inverting mapping curve

              + *

              Inverting mapping curve

              *

              Gamma 1/2.2 mapping, with 16 control points:

              *
              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> {
                    *   (0.5333, 0.7515), (0.6000, 0.7928), (0.6667, 0.8317), (0.7333, 0.8685),
                    *   (0.8000, 0.9035), (0.8667, 0.9370), (0.9333, 0.9691), (1.0000, 1.0000) ]
                    * 
              - *

              Gamma = 1/2.2 tonemapping curve

              + *

              Gamma = 1/2.2 tonemapping curve

              *

              Standard sRGB gamma mapping, per IEC 61966-2-1:1999, with 16 control points:

              *
              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> {
                    *   (0.5333, 0.7569), (0.6000, 0.7977), (0.6667, 0.8360), (0.7333, 0.8721),
                    *   (0.8000, 0.9063), (0.8667, 0.9389), (0.9333, 0.9701), (1.0000, 1.0000) ]
                    * 
              - *

              sRGB tonemapping curve

              + *

              sRGB tonemapping curve

              *

              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> { * PRESET_CURVE

              *

              The tonemap curve will be defined by specified standard.

              *

              sRGB (approximated by 16 control points):

              - *

              sRGB tonemapping curve

              + *

              sRGB tonemapping curve

              *

              Rec. 709 (approximated by 16 control points):

              - *

              Rec. 709 tonemapping curve

              + *

              Rec. 709 tonemapping curve

              *

              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 0000000000000..7578b48770fb4 Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png new file mode 100644 index 0000000000000..7b10f6b7c812e Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png new file mode 100644 index 0000000000000..41972cfd71b91 Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png new file mode 100644 index 0000000000000..d26600b37aca0 Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png new file mode 100644 index 0000000000000..1e7208ed79a24 Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png new file mode 100644 index 0000000000000..ecef3ae7998ec Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png new file mode 100644 index 0000000000000..a02fd893b286c Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png new file mode 100644 index 0000000000000..c309ac5ea887e Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png new file mode 100644 index 0000000000000..414fad49a919e Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/rec709_tonemap.png b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/rec709_tonemap.png new file mode 100644 index 0000000000000..c147a8729f171 Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/rec709_tonemap.png differ diff --git a/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png new file mode 100644 index 0000000000000..4ce2125f3c911 Binary files /dev/null and b/docs/html/reference/images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png differ