Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f712e510 authored by Shuzhen Wang's avatar Shuzhen Wang Committed by Automerger Merge Worker
Browse files

Merge "Camera: Fix typos and bad format in docs" into tm-dev am: b1d13ce6

parents 0e123f2d b1d13ce6
Loading
Loading
Loading
Loading
+20 −18
Original line number Original line Diff line number Diff line
@@ -1058,7 +1058,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * must select one unique size from this metadata to use (e.g., preview and recording streams
     * must select one unique size from this metadata to use (e.g., preview and recording streams
     * must have the same size). Otherwise, the high speed capture session creation will fail.</p>
     * must have the same size). Otherwise, the high speed capture session creation will fail.</p>
     * <p>The min and max fps will be multiple times of 30fps.</p>
     * <p>The min and max fps will be multiple times of 30fps.</p>
     * <p>High speed video streaming extends significant performance pressue to camera hardware,
     * <p>High speed video streaming extends significant performance pressure to camera hardware,
     * to achieve efficient high speed streaming, the camera device may have to aggregate
     * to achieve efficient high speed streaming, the camera device may have to aggregate
     * multiple frames together and send to camera device for processing where the request
     * multiple frames together and send to camera device for processing where the request
     * controls are same for all the frames in this batch. Max batch size indicates
     * controls are same for all the frames in this batch. Max batch size indicates
@@ -1143,7 +1143,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * <p>Range of boosts for {@link CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST android.control.postRawSensitivityBoost} supported
     * <p>Range of boosts for {@link CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST android.control.postRawSensitivityBoost} supported
     * by this camera device.</p>
     * by this camera device.</p>
     * <p>Devices support post RAW sensitivity boost  will advertise
     * <p>Devices support post RAW sensitivity boost  will advertise
     * {@link CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST android.control.postRawSensitivityBoost} key for controling
     * {@link CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST android.control.postRawSensitivityBoost} key for controlling
     * post RAW sensitivity boost.</p>
     * post RAW sensitivity boost.</p>
     * <p>This key will be <code>null</code> for devices that do not support any RAW format
     * <p>This key will be <code>null</code> for devices that do not support any RAW format
     * outputs. For devices that do support RAW format outputs, this key will always
     * outputs. For devices that do support RAW format outputs, this key will always
@@ -1323,7 +1323,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * <p>Maximum flashlight brightness level.</p>
     * <p>Maximum flashlight brightness level.</p>
     * <p>If this value is greater than 1, then the device supports controlling the
     * <p>If this value is greater than 1, then the device supports controlling the
     * flashlight brightness level via
     * flashlight brightness level via
     * {android.hardware.camera2.CameraManager#turnOnTorchWithStrengthLevel}.
     * {@link android.hardware.camera2.CameraManager#turnOnTorchWithStrengthLevel }.
     * If this value is equal to 1, flashlight brightness control is not supported.
     * If this value is equal to 1, flashlight brightness control is not supported.
     * The value for this key will be null for devices with no flash unit.</p>
     * The value for this key will be null for devices with no flash unit.</p>
     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
@@ -1335,7 +1335,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri


    /**
    /**
     * <p>Default flashlight brightness level to be set via
     * <p>Default flashlight brightness level to be set via
     * {android.hardware.camera2.CameraManager#turnOnTorchWithStrengthLevel}.</p>
     * {@link android.hardware.camera2.CameraManager#turnOnTorchWithStrengthLevel }.</p>
     * <p>If flash unit is available this will be greater than or equal to 1 and less
     * <p>If flash unit is available this will be greater than or equal to 1 and less
     * or equal to <code>{@link CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL android.flash.info.strengthMaximumLevel}</code>.</p>
     * or equal to <code>{@link CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL android.flash.info.strengthMaximumLevel}</code>.</p>
     * <p>Setting flashlight brightness above the default level
     * <p>Setting flashlight brightness above the default level
@@ -1376,7 +1376,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * camera device.</p>
     * camera device.</p>
     * <p>This list will include at least one non-zero resolution, plus <code>(0,0)</code> for indicating no
     * <p>This list will include at least one non-zero resolution, plus <code>(0,0)</code> for indicating no
     * thumbnail should be generated.</p>
     * thumbnail should be generated.</p>
     * <p>Below condiditions will be satisfied for this size list:</p>
     * <p>Below conditions will be satisfied for this size list:</p>
     * <ul>
     * <ul>
     * <li>The sizes will be sorted by increasing pixel area (width x height).
     * <li>The sizes will be sorted by increasing pixel area (width x height).
     * If several resolutions have the same area, they will be sorted by increasing width.</li>
     * If several resolutions have the same area, they will be sorted by increasing width.</li>
@@ -1982,7 +1982,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * the camera device. Using more streams simultaneously may require more hardware and
     * the camera device. Using more streams simultaneously may require more hardware and
     * CPU resources that will consume more power. The image format for an output stream can
     * CPU resources that will consume more power. The image format for an output stream can
     * be any supported format provided by android.scaler.availableStreamConfigurations.
     * be any supported format provided by android.scaler.availableStreamConfigurations.
     * The formats defined in android.scaler.availableStreamConfigurations can be catergorized
     * The formats defined in android.scaler.availableStreamConfigurations can be categorized
     * into the 3 stream types as below:</p>
     * into the 3 stream types as below:</p>
     * <ul>
     * <ul>
     * <li>Processed (but stalling): any non-RAW format with a stallDurations &gt; 0.
     * <li>Processed (but stalling): any non-RAW format with a stallDurations &gt; 0.
@@ -2324,7 +2324,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * but clients should be aware and expect delays during their application.
     * but clients should be aware and expect delays during their application.
     * An example usage scenario could look like this:</p>
     * An example usage scenario could look like this:</p>
     * <ul>
     * <ul>
     * <li>The camera client starts by quering the session parameter key list via
     * <li>The camera client starts by querying the session parameter key list via
     *   {@link android.hardware.camera2.CameraCharacteristics#getAvailableSessionKeys }.</li>
     *   {@link android.hardware.camera2.CameraCharacteristics#getAvailableSessionKeys }.</li>
     * <li>Before triggering the capture session create sequence, a capture request
     * <li>Before triggering the capture session create sequence, a capture request
     *   must be built via
     *   must be built via
@@ -2379,7 +2379,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * {@link android.hardware.camera2.CameraCharacteristics#getKeys } that require camera clients
     * {@link android.hardware.camera2.CameraCharacteristics#getKeys } that require camera clients
     * to acquire the {@link android.Manifest.permission#CAMERA } permission before calling
     * to acquire the {@link android.Manifest.permission#CAMERA } permission before calling
     * {@link android.hardware.camera2.CameraManager#getCameraCharacteristics }. If the
     * {@link android.hardware.camera2.CameraManager#getCameraCharacteristics }. If the
     * permission is not held by the camera client, then the values of the repsective properties
     * permission is not held by the camera client, then the values of the respective properties
     * will not be present in {@link android.hardware.camera2.CameraCharacteristics }.</p>
     * will not be present in {@link android.hardware.camera2.CameraCharacteristics }.</p>
     * <p>This key is available on all devices.</p>
     * <p>This key is available on all devices.</p>
     * @hide
     * @hide
@@ -2759,7 +2759,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * </table>
     * </table>
     * <p>For applications targeting SDK version 31 or newer, if the mobile device declares to be
     * <p>For applications targeting SDK version 31 or newer, if the mobile device declares to be
     * media performance class 12 or higher by setting
     * media performance class 12 or higher by setting
     * {@link android.os.Build.VERSION_CDOES.MEDIA_PERFORMANCE_CLASS } to be 31 or larger,
     * {@link android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS } to be 31 or larger,
     * the primary camera devices (first rear/front camera in the camera ID list) will not
     * the primary camera devices (first rear/front camera in the camera ID list) will not
     * support JPEG sizes smaller than 1080p. If the application configures a JPEG stream
     * support JPEG sizes smaller than 1080p. If the application configures a JPEG stream
     * smaller than 1080p, the camera device will round up the JPEG image size to at least
     * smaller than 1080p, the camera device will round up the JPEG image size to at least
@@ -2833,7 +2833,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * </table>
     * </table>
     * <p>For applications targeting SDK version 31 or newer, if the mobile device doesn't declare
     * <p>For applications targeting SDK version 31 or newer, if the mobile device doesn't declare
     * to be media performance class 12 or better by setting
     * to be media performance class 12 or better by setting
     * {@link android.os.Build.VERSION_CDOES.MEDIA_PERFORMANCE_CLASS } to be 31 or larger,
     * {@link android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS } to be 31 or larger,
     * or if the camera device isn't a primary rear/front camera, the minimum required output
     * or if the camera device isn't a primary rear/front camera, the minimum required output
     * stream configurations are the same as for applications targeting SDK version older than
     * stream configurations are the same as for applications targeting SDK version older than
     * 31.</p>
     * 31.</p>
@@ -3485,14 +3485,16 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * to output different resolution images depending on the current active physical camera or
     * to output different resolution images depending on the current active physical camera or
     * pixel mode. With multi-resolution input streams, the camera device can reprocess images
     * pixel mode. With multi-resolution input streams, the camera device can reprocess images
     * of different resolutions from different physical cameras or sensor pixel modes.</p>
     * of different resolutions from different physical cameras or sensor pixel modes.</p>
     * <p>When set to TRUE:
     * <p>When set to TRUE:</p>
     * * For a logical multi-camera, the camera framework derives
     * <ul>
     * <li>For a logical multi-camera, the camera framework derives
     * {@link CameraCharacteristics#SCALER_MULTI_RESOLUTION_STREAM_CONFIGURATION_MAP android.scaler.multiResolutionStreamConfigurationMap} by combining the
     * {@link CameraCharacteristics#SCALER_MULTI_RESOLUTION_STREAM_CONFIGURATION_MAP android.scaler.multiResolutionStreamConfigurationMap} by combining the
     * android.scaler.physicalCameraMultiResolutionStreamConfigurations from its physical
     * android.scaler.physicalCameraMultiResolutionStreamConfigurations from its physical
     * cameras.
     * cameras.</li>
     * * For an ultra-high resolution sensor camera, the camera framework directly copies
     * <li>For an ultra-high resolution sensor camera, the camera framework directly copies
     * the value of android.scaler.physicalCameraMultiResolutionStreamConfigurations to
     * the value of android.scaler.physicalCameraMultiResolutionStreamConfigurations to
     * {@link CameraCharacteristics#SCALER_MULTI_RESOLUTION_STREAM_CONFIGURATION_MAP android.scaler.multiResolutionStreamConfigurationMap}.</p>
     * {@link CameraCharacteristics#SCALER_MULTI_RESOLUTION_STREAM_CONFIGURATION_MAP android.scaler.multiResolutionStreamConfigurationMap}.</li>
     * </ul>
     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
     * <p><b>Limited capability</b> -
     * <p><b>Limited capability</b> -
     * Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
     * Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
@@ -3513,7 +3515,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * capture, video record for encoding the camera output for the purpose of future playback,
     * capture, video record for encoding the camera output for the purpose of future playback,
     * and video call for live realtime video conferencing.</p>
     * and video call for live realtime video conferencing.</p>
     * <p>With this flag, the camera device can optimize the image processing pipeline
     * <p>With this flag, the camera device can optimize the image processing pipeline
     * parameters, such as tuning, sensor mode, and ISP settings, indepedent of
     * parameters, such as tuning, sensor mode, and ISP settings, independent of
     * the properties of the immediate camera output surface. For example, if the output
     * the properties of the immediate camera output surface. For example, if the output
     * surface is a SurfaceTexture, the stream use case flag can be used to indicate whether
     * surface is a SurfaceTexture, the stream use case flag can be used to indicate whether
     * the camera frames eventually go to display, video encoder,
     * the camera frames eventually go to display, video encoder,
@@ -3535,7 +3537,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * {@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE }
     * {@link android.hardware.camera2.CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE }
     * capability is documented in the camera device
     * capability is documented in the camera device
     * {@link android.hardware.camera2.CameraDevice#createCaptureSession guideline}. The
     * {@link android.hardware.camera2.CameraDevice#createCaptureSession guideline}. The
     * application is strongly recommended to use one of the guaranteed stream combintations.
     * application is strongly recommended to use one of the guaranteed stream combinations.
     * If the application creates a session with a stream combination not in the guaranteed
     * If the application creates a session with a stream combination not in the guaranteed
     * list, or with mixed DEFAULT and non-DEFAULT use cases within the same session,
     * list, or with mixed DEFAULT and non-DEFAULT use cases within the same session,
     * the camera device may ignore some stream use cases due to hardware constraints
     * the camera device may ignore some stream use cases due to hardware constraints
@@ -5209,7 +5211,7 @@ public final class CameraCharacteristics extends CameraMetadata<CameraCharacteri
     * EXTERIOR_* value.</p>
     * EXTERIOR_* value.</p>
     * <p>If a camera has INTERIOR_OTHER or EXTERIOR_OTHER, or more than one camera is at the
     * <p>If a camera has INTERIOR_OTHER or EXTERIOR_OTHER, or more than one camera is at the
     * same location and facing the same direction, their static metadata will list the
     * same location and facing the same direction, their static metadata will list the
     * following entries, so that applications can determain their lenses' exact facing
     * following entries, so that applications can determine their lenses' exact facing
     * directions:</p>
     * directions:</p>
     * <ul>
     * <ul>
     * <li>{@link CameraCharacteristics#LENS_POSE_REFERENCE android.lens.poseReference}</li>
     * <li>{@link CameraCharacteristics#LENS_POSE_REFERENCE android.lens.poseReference}</li>
+57 −49
Original line number Original line Diff line number Diff line
@@ -409,7 +409,7 @@ public abstract class CameraMetadata<TKey> {


    /**
    /**
     * <p>The value of {@link CameraCharacteristics#LENS_POSE_TRANSLATION android.lens.poseTranslation} is relative to the origin of the
     * <p>The value of {@link CameraCharacteristics#LENS_POSE_TRANSLATION android.lens.poseTranslation} is relative to the origin of the
     * automotive sensor coodinate system, which is at the center of the rear axle.</p>
     * automotive sensor coordinate system, which is at the center of the rear axle.</p>
     *
     *
     * @see CameraCharacteristics#LENS_POSE_TRANSLATION
     * @see CameraCharacteristics#LENS_POSE_TRANSLATION
     * @see CameraCharacteristics#LENS_POSE_REFERENCE
     * @see CameraCharacteristics#LENS_POSE_REFERENCE
@@ -683,7 +683,7 @@ public abstract class CameraMetadata<TKey> {
     * captured at the same rate as the maximum-size YUV_420_888 resolution is.</p>
     * captured at the same rate as the maximum-size YUV_420_888 resolution is.</p>
     * <p>If the device supports the PRIVATE_REPROCESSING capability, then the same guarantees
     * <p>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.</p>
     * as for the YUV_420_888 format also apply to the {@link android.graphics.ImageFormat#PRIVATE } format.</p>
     * <p>In addition, the {@link CameraCharacteristics#SYNC_MAX_LATENCY android.sync.maxLatency} field is guaranted to have a value between 0
     * <p>In addition, the {@link CameraCharacteristics#SYNC_MAX_LATENCY android.sync.maxLatency} field is guaranteed to have a value between 0
     * and 4, inclusive. {@link CameraCharacteristics#CONTROL_AE_LOCK_AVAILABLE android.control.aeLockAvailable} and {@link CameraCharacteristics#CONTROL_AWB_LOCK_AVAILABLE android.control.awbLockAvailable}
     * and 4, inclusive. {@link CameraCharacteristics#CONTROL_AE_LOCK_AVAILABLE android.control.aeLockAvailable} and {@link CameraCharacteristics#CONTROL_AWB_LOCK_AVAILABLE android.control.awbLockAvailable}
     * are also guaranteed to be <code>true</code> so burst capture with these two locks ON yields
     * are also guaranteed to be <code>true</code> so burst capture with these two locks ON yields
     * consistent image output.</p>
     * consistent image output.</p>
@@ -843,7 +843,7 @@ public abstract class CameraMetadata<TKey> {
     * {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoSizes }.</li>
     * {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoSizes }.</li>
     * <li>The FPS ranges are selected from {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoFpsRanges }.</li>
     * <li>The FPS ranges are selected from {@link android.hardware.camera2.params.StreamConfigurationMap#getHighSpeedVideoFpsRanges }.</li>
     * </ul>
     * </ul>
     * <p>When above conditions are NOT satistied,
     * <p>When above conditions are NOT satisfied,
     * {@link android.hardware.camera2.CameraDevice#createConstrainedHighSpeedCaptureSession }
     * {@link android.hardware.camera2.CameraDevice#createConstrainedHighSpeedCaptureSession }
     * will fail.</p>
     * will fail.</p>
     * <p>Switching to a FPS range that has different maximum FPS may trigger some camera device
     * <p>Switching to a FPS range that has different maximum FPS may trigger some camera device
@@ -986,7 +986,7 @@ public abstract class CameraMetadata<TKey> {
     * non-active physical cameras. For example, if the logical camera has a wide-ultrawide
     * non-active physical cameras. For example, if the logical camera has a wide-ultrawide
     * configuration where the wide lens is the default, when the crop region is set to the
     * configuration where the wide lens is the default, when the crop region is set to the
     * logical camera's active array size, (and the zoom ratio set to 1.0 starting from
     * logical camera's active array size, (and the zoom ratio set to 1.0 starting from
     * Android 11), a physical stream for the ultrawide camera may prefer outputing images
     * Android 11), a physical stream for the ultrawide camera may prefer outputting images
     * with larger field-of-view than that of the wide camera for better stereo matching
     * with larger field-of-view than that of the wide camera for better stereo matching
     * margin or more robust motion tracking. At the same time, the physical non-RAW streams'
     * margin or more robust motion tracking. At the same time, the physical non-RAW streams'
     * field of view must not be smaller than the requested crop region and zoom ratio, as
     * field of view must not be smaller than the requested crop region and zoom ratio, as
@@ -1175,21 +1175,23 @@ public abstract class CameraMetadata<TKey> {
     * when {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
     * when {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to
     * {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }),
     * {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }),
     * the <code>RAW_SENSOR</code> stream will have a regular bayer pattern.</p>
     * the <code>RAW_SENSOR</code> stream will have a regular bayer pattern.</p>
     * <p>This capability requires the camera device to support the following :
     * <p>This capability requires the camera device to support the following :</p>
     * * The {@link android.hardware.camera2.params.StreamConfigurationMap } mentioned below
     * <ul>
     * <li>The {@link android.hardware.camera2.params.StreamConfigurationMap } mentioned below
     *   refers to the one, described by
     *   refers to the one, described by
     *   <code>{@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION android.scaler.streamConfigurationMapMaximumResolution}</code>.
     *   <code>{@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION android.scaler.streamConfigurationMapMaximumResolution}</code>.</li>
     * * One input stream is supported, that is, <code>{@link CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS android.request.maxNumInputStreams} == 1</code>.
     * <li>One input stream is supported, that is, <code>{@link CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS android.request.maxNumInputStreams} == 1</code>.</li>
     * * {@link android.graphics.ImageFormat#RAW_SENSOR } is supported as an output/input
     * <li>{@link android.graphics.ImageFormat#RAW_SENSOR } is supported as an output/input
     *   format, that is, {@link android.graphics.ImageFormat#RAW_SENSOR } is included in the
     *   format, that is, {@link android.graphics.ImageFormat#RAW_SENSOR } is included in the
     *   lists of formats returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats } and {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputFormats }.
     *   lists of formats returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats } and {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputFormats }.</li>
     * * {@link android.hardware.camera2.params.StreamConfigurationMap#getValidOutputFormatsForInput }
     * <li>{@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 }.
     *   returns non-empty int[] for each supported input format returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats }.</li>
     * * Each size returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputSizes getInputSizes(ImageFormat.RAW_SENSOR)} is also included in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes getOutputSizes(ImageFormat.RAW_SENSOR)}
     * <li>Each size returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputSizes getInputSizes(ImageFormat.RAW_SENSOR)} is also included in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes getOutputSizes(ImageFormat.RAW_SENSOR)}</li>
     * * Using {@link android.graphics.ImageFormat#RAW_SENSOR } does not cause a frame rate
     * <li>Using {@link android.graphics.ImageFormat#RAW_SENSOR } does not cause a frame rate
     *   drop relative to the sensor's maximum capture rate (at that resolution).
     *   drop relative to the sensor's maximum capture rate (at that resolution).</li>
     * * No CaptureRequest controls will be applicable when a request has an input target
     * <li>No CaptureRequest controls will be applicable when a request has an input target
     *   with {@link android.graphics.ImageFormat#RAW_SENSOR } format.</p>
     *   with {@link android.graphics.ImageFormat#RAW_SENSOR } format.</li>
     * </ul>
     *
     *
     * @see CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS
     * @see CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS
     * @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION
     * @see CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP_MAXIMUM_RESOLUTION
@@ -1205,16 +1207,18 @@ public abstract class CameraMetadata<TKey> {
     * {@link android.hardware.camera2.params.DynamicRangeProfiles#getSupportedProfiles }.
     * {@link android.hardware.camera2.params.DynamicRangeProfiles#getSupportedProfiles }.
     * They can be configured as part of the capture session initialization via
     * They can be configured as part of the capture session initialization via
     * {@link android.hardware.camera2.params.OutputConfiguration#setDynamicRangeProfile }.
     * {@link android.hardware.camera2.params.OutputConfiguration#setDynamicRangeProfile }.
     * Cameras that enable this capability must also support the following:
     * Cameras that enable this capability must also support the following:</p>
     * * Profile {@link android.hardware.camera2.params.DynamicRangeProfiles#HLG10 }
     * <ul>
     * * All mandatory stream combinations for this specific capability as per
     * <li>Profile {@link android.hardware.camera2.params.DynamicRangeProfiles#HLG10 }</li>
     *   documentation {@link android.hardware.camera2.CameraDevice#createCaptureSession }
     * <li>All mandatory stream combinations for this specific capability as per
     * * In case the device is not able to capture some combination of supported
     *   documentation {@link android.hardware.camera2.CameraDevice#createCaptureSession }</li>
     * <li>In case the device is not able to capture some combination of supported
     *   standard 8-bit and/or 10-bit dynamic range profiles within the same capture request,
     *   standard 8-bit and/or 10-bit dynamic range profiles within the same capture request,
     *   then those constraints must be listed in
     *   then those constraints must be listed in
     *   {@link android.hardware.camera2.params.DynamicRangeProfiles#getProfileCaptureRequestConstraints }
     *   {@link android.hardware.camera2.params.DynamicRangeProfiles#getProfileCaptureRequestConstraints }</li>
     * * Recommended dynamic range profile listed in
     * <li>Recommended dynamic range profile listed in
     *   {@link android.hardware.camera2.CameraCharacteristics#REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE }.</p>
     *   {@link android.hardware.camera2.CameraCharacteristics#REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE }.</li>
     * </ul>
     * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES
     * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES
     */
     */
    public static final int REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT = 18;
    public static final int REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT = 18;
@@ -1224,22 +1228,26 @@ public abstract class CameraMetadata<TKey> {
     * {@link android.hardware.camera2.params.OutputConfiguration#setStreamUseCase }
     * {@link android.hardware.camera2.params.OutputConfiguration#setStreamUseCase }
     * so that the device can optimize camera pipeline parameters such as tuning, sensor
     * so that the device can optimize camera pipeline parameters such as tuning, sensor
     * mode, or ISP settings for a specific user scenario.
     * mode, or ISP settings for a specific user scenario.
     * Some sample usages of this capability are:
     * Some sample usages of this capability are:</p>
     * * Distinguish high quality YUV captures from a regular YUV stream where
     * <ul>
     *   the image quality may not be as good as the JPEG stream, or
     * <li>Distinguish high quality YUV captures from a regular YUV stream where
     * * Use one stream to serve multiple purposes: viewfinder, video recording and
     *   the image quality may not be as good as the JPEG stream, or</li>
     * <li>Use one stream to serve multiple purposes: viewfinder, video recording and
     *   still capture. This is common with applications that wish to apply edits equally
     *   still capture. This is common with applications that wish to apply edits equally
     *   to preview, saved images, and saved videos.</p>
     *   to preview, saved images, and saved videos.</li>
     * </ul>
     * <p>This capability requires the camera device to support the following
     * <p>This capability requires the camera device to support the following
     * stream use cases:
     * stream use cases:</p>
     * * DEFAULT for backward compatibility where the application doesn't set
     * <ul>
     *   a stream use case
     * <li>DEFAULT for backward compatibility where the application doesn't set
     * * PREVIEW for live viewfinder and in-app image analysis
     *   a stream use case</li>
     * * STILL_CAPTURE for still photo capture
     * <li>PREVIEW for live viewfinder and in-app image analysis</li>
     * * VIDEO_RECORD for recording video clips
     * <li>STILL_CAPTURE for still photo capture</li>
     * * PREVIEW_VIDEO_STILL for one single stream used for viewfinder, video
     * <li>VIDEO_RECORD for recording video clips</li>
     *   recording, and still capture.
     * <li>PREVIEW_VIDEO_STILL for one single stream used for viewfinder, video
     * * VIDEO_CALL for long running video calls</p>
     *   recording, and still capture.</li>
     * <li>VIDEO_CALL for long running video calls</li>
     * </ul>
     * <p>{@link android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES }
     * <p>{@link android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES }
     * lists all of the supported stream use cases.</p>
     * lists all of the supported stream use cases.</p>
     * <p>Refer to {@link android.hardware.camera2.CameraDevice#createCaptureSession } for the
     * <p>Refer to {@link android.hardware.camera2.CameraDevice#createCaptureSession } for the
@@ -1391,10 +1399,10 @@ public abstract class CameraMetadata<TKey> {
     * <p>Live stream shown to the user.</p>
     * <p>Live stream shown to the user.</p>
     * <p>Optimized for performance and usability as a viewfinder, but not necessarily for
     * <p>Optimized for performance and usability as a viewfinder, but not necessarily for
     * image quality. The output is not meant to be persisted as saved images or video.</p>
     * image quality. The output is not meant to be persisted as saved images or video.</p>
     * <p>No stall if android.control.<em> are set to FAST; may have stall if android.control.</em>
     * <p>No stall if android.control.* are set to FAST. There may be stall if
     * are set to HIGH_QUALITY. This use case has the same behavior as the default
     * they are set to HIGH_QUALITY. This use case has the same behavior as the
     * SurfaceView and SurfaceTexture targets. Additionally, this use case can be used for
     * default SurfaceView and SurfaceTexture targets. Additionally, this use case can be
     * in-app image analysis.</p>
     * used for in-app image analysis.</p>
     * @see CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
     * @see CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
     */
     */
    public static final int SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1;
    public static final int SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1;
@@ -1441,7 +1449,7 @@ public abstract class CameraMetadata<TKey> {
    public static final int SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL = 0x4;
    public static final int SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL = 0x4;


    /**
    /**
     * <p>Long-running video call optimized for both power efficienty and video quality.</p>
     * <p>Long-running video call optimized for both power efficiency and video quality.</p>
     * <p>The camera sensor may run in a lower-resolution mode to reduce power consumption
     * <p>The camera sensor may run in a lower-resolution mode to reduce power consumption
     * at the cost of some image and digital zoom quality. Unlike VIDEO_RECORD, VIDEO_CALL
     * at the cost of some image and digital zoom quality. Unlike VIDEO_RECORD, VIDEO_CALL
     * outputs are expected to work in dark conditions, so are usually accompanied with
     * outputs are expected to work in dark conditions, so are usually accompanied with
@@ -2946,10 +2954,10 @@ public abstract class CameraMetadata<TKey> {
     * android.control.availableHighSpeedVideoConfigurations.</li>
     * android.control.availableHighSpeedVideoConfigurations.</li>
     * <li>No processed non-stalling or raw streams are configured.</li>
     * <li>No processed non-stalling or raw streams are configured.</li>
     * </ul>
     * </ul>
     * <p>When above conditions are NOT satistied, the controls of this mode and
     * <p>When above conditions are NOT satisfied, the controls of this mode and
     * {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE android.control.aeTargetFpsRange} will be ignored by the camera device,
     * {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE android.control.aeTargetFpsRange} will be ignored by the camera device,
     * the camera device will fall back to {@link CaptureRequest#CONTROL_MODE android.control.mode} <code>==</code> AUTO,
     * the camera device will fall back to {@link CaptureRequest#CONTROL_MODE android.control.mode} <code>==</code> AUTO,
     * and the returned capture result metadata will give the fps range choosen
     * and the returned capture result metadata will give the fps range chosen
     * by the camera device.</p>
     * by the camera device.</p>
     * <p>Switching into or out of this mode may trigger some camera ISP/sensor
     * <p>Switching into or out of this mode may trigger some camera ISP/sensor
     * reconfigurations, which may introduce extra latency. It is recommended that
     * reconfigurations, which may introduce extra latency. It is recommended that
@@ -3034,7 +3042,7 @@ public abstract class CameraMetadata<TKey> {
     * if the {@link CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE android.sensor.info.sensitivityRange} gives range of [100, 1600],
     * if the {@link CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE android.sensor.info.sensitivityRange} gives range of [100, 1600],
     * the camera device auto-exposure routine tuning process may limit the actual
     * the camera device auto-exposure routine tuning process may limit the actual
     * exposure sensitivity range to [100, 1200] to ensure that the noise level isn't
     * exposure sensitivity range to [100, 1200] to ensure that the noise level isn't
     * exessive in order to preserve the image quality. Under this situation, the image under
     * excessive in order to preserve the image quality. Under this situation, the image under
     * low light may be under-exposed when the sensor max exposure time (bounded by the
     * low light may be under-exposed when the sensor max exposure time (bounded by the
     * {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE android.control.aeTargetFpsRange} when {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} is one of the
     * {@link CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE android.control.aeTargetFpsRange} when {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} is one of the
     * ON_* modes) and effective max sensitivity are reached. This scene mode allows the
     * ON_* modes) and effective max sensitivity are reached. This scene mode allows the
@@ -3631,7 +3639,7 @@ public abstract class CameraMetadata<TKey> {
    public static final int TONEMAP_MODE_HIGH_QUALITY = 2;
    public static final int TONEMAP_MODE_HIGH_QUALITY = 2;


    /**
    /**
     * <p>Use the gamma value specified in {@link CaptureRequest#TONEMAP_GAMMA android.tonemap.gamma} to peform
     * <p>Use the gamma value specified in {@link CaptureRequest#TONEMAP_GAMMA android.tonemap.gamma} to perform
     * tonemapping.</p>
     * tonemapping.</p>
     * <p>All color enhancement and tonemapping must be disabled, except
     * <p>All color enhancement and tonemapping must be disabled, except
     * for applying the tonemapping curve specified by {@link CaptureRequest#TONEMAP_GAMMA android.tonemap.gamma}.</p>
     * for applying the tonemapping curve specified by {@link CaptureRequest#TONEMAP_GAMMA android.tonemap.gamma}.</p>
@@ -3644,7 +3652,7 @@ public abstract class CameraMetadata<TKey> {


    /**
    /**
     * <p>Use the preset tonemapping curve specified in
     * <p>Use the preset tonemapping curve specified in
     * {@link CaptureRequest#TONEMAP_PRESET_CURVE android.tonemap.presetCurve} to peform tonemapping.</p>
     * {@link CaptureRequest#TONEMAP_PRESET_CURVE android.tonemap.presetCurve} to perform tonemapping.</p>
     * <p>All color enhancement and tonemapping must be disabled, except
     * <p>All color enhancement and tonemapping must be disabled, except
     * for applying the tonemapping curve specified by
     * for applying the tonemapping curve specified by
     * {@link CaptureRequest#TONEMAP_PRESET_CURVE android.tonemap.presetCurve}.</p>
     * {@link CaptureRequest#TONEMAP_PRESET_CURVE android.tonemap.presetCurve}.</p>
+16 −12

File changed.

Preview size limit exceeded, changes collapsed.

+21 −17

File changed.

Preview size limit exceeded, changes collapsed.

+2 −2
Original line number Original line Diff line number Diff line
@@ -277,7 +277,7 @@ public final class DynamicRangeProfiles {
     * profile.</p>
     * profile.</p>
     *
     *
     * @return non-modifiable set of dynamic range profiles
     * @return non-modifiable set of dynamic range profiles
     * @throws IllegalArgumentException - If the profile argument is not
     * @throws IllegalArgumentException   If the profile argument is not
     *                                    within the list returned by
     *                                    within the list returned by
     *                                    getSupportedProfiles()
     *                                    getSupportedProfiles()
     *
     *
@@ -303,7 +303,7 @@ public final class DynamicRangeProfiles {
     *
     *
     * @return true if the given profile is not suitable for latency sensitive use cases, false
     * @return true if the given profile is not suitable for latency sensitive use cases, false
     *         otherwise
     *         otherwise
     * @throws IllegalArgumentException - If the profile argument is not
     * @throws IllegalArgumentException   If the profile argument is not
     *                                    within the list returned by
     *                                    within the list returned by
     *                                    getSupportedProfiles()
     *                                    getSupportedProfiles()
     *
     *