CameraMetadata: updated generated code (with markdown support)
- also updates description of android.blackLevel.lock Change-Id: I2d10c492bd6779bbb51672da9854252ba18d4327
This commit is contained in:
@@ -127,74 +127,58 @@ public final class CameraCharacteristics extends CameraMetadata {
|
||||
*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Which set of antibanding modes are
|
||||
* supported
|
||||
* </p>
|
||||
* <p>Which set of antibanding modes are
|
||||
* supported</p>
|
||||
*/
|
||||
public static final Key<byte[]> CONTROL_AE_AVAILABLE_ANTIBANDING_MODES =
|
||||
new Key<byte[]>("android.control.aeAvailableAntibandingModes", byte[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of frame rate ranges supported by the
|
||||
* AE algorithm/hardware
|
||||
* </p>
|
||||
* <p>List of frame rate ranges supported by the
|
||||
* AE algorithm/hardware</p>
|
||||
*/
|
||||
public static final Key<int[]> CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES =
|
||||
new Key<int[]>("android.control.aeAvailableTargetFpsRanges", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Maximum and minimum exposure compensation
|
||||
* <p>Maximum and minimum exposure compensation
|
||||
* setting, in counts of
|
||||
* android.control.aeCompensationStepSize
|
||||
* </p>
|
||||
* android.control.aeCompensationStepSize</p>
|
||||
*/
|
||||
public static final Key<int[]> CONTROL_AE_COMPENSATION_RANGE =
|
||||
new Key<int[]>("android.control.aeCompensationRange", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Smallest step by which exposure compensation
|
||||
* can be changed
|
||||
* </p>
|
||||
* <p>Smallest step by which exposure compensation
|
||||
* can be changed</p>
|
||||
*/
|
||||
public static final Key<Rational> CONTROL_AE_COMPENSATION_STEP =
|
||||
new Key<Rational>("android.control.aeCompensationStep", Rational.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of AF modes that can be
|
||||
* selected
|
||||
* </p>
|
||||
* <p>List of AF modes that can be
|
||||
* selected</p>
|
||||
*/
|
||||
public static final Key<byte[]> CONTROL_AF_AVAILABLE_MODES =
|
||||
new Key<byte[]>("android.control.afAvailableModes", byte[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* what subset of the full color effect enum
|
||||
* list is supported
|
||||
* </p>
|
||||
* <p>what subset of the full color effect enum
|
||||
* list is supported</p>
|
||||
*/
|
||||
public static final Key<byte[]> CONTROL_AVAILABLE_EFFECTS =
|
||||
new Key<byte[]>("android.control.availableEffects", byte[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* what subset of the scene mode enum list is
|
||||
* supported.
|
||||
* </p>
|
||||
* <p>what subset of the scene mode enum list is
|
||||
* supported.</p>
|
||||
*/
|
||||
public static final Key<byte[]> CONTROL_AVAILABLE_SCENE_MODES =
|
||||
new Key<byte[]>("android.control.availableSceneModes", byte[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of video stabilization modes that can
|
||||
* be supported
|
||||
* </p>
|
||||
* <p>List of video stabilization modes that can
|
||||
* be supported</p>
|
||||
*/
|
||||
public static final Key<byte[]> CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES =
|
||||
new Key<byte[]>("android.control.availableVideoStabilizationModes", byte[].class);
|
||||
@@ -205,127 +189,93 @@ public final class CameraCharacteristics extends CameraMetadata {
|
||||
new Key<byte[]>("android.control.awbAvailableModes", byte[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* For AE, AWB, and AF, how many individual
|
||||
* regions can be listed for metering?
|
||||
* </p>
|
||||
* <p>For AE, AWB, and AF, how many individual
|
||||
* regions can be listed for metering?</p>
|
||||
*/
|
||||
public static final Key<Integer> CONTROL_MAX_REGIONS =
|
||||
new Key<Integer>("android.control.maxRegions", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether this camera has a
|
||||
* flash
|
||||
* </p>
|
||||
* <p>
|
||||
* If no flash, none of the flash controls do
|
||||
* anything. All other metadata should return 0
|
||||
* </p>
|
||||
* <p>Whether this camera has a
|
||||
* flash</p>
|
||||
* <p>If no flash, none of the flash controls do
|
||||
* anything. All other metadata should return 0</p>
|
||||
*/
|
||||
public static final Key<Byte> FLASH_INFO_AVAILABLE =
|
||||
new Key<Byte>("android.flash.info.available", byte.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Supported resolutions for the JPEG
|
||||
* thumbnail
|
||||
* </p>
|
||||
* <p>Supported resolutions for the JPEG
|
||||
* thumbnail</p>
|
||||
*/
|
||||
public static final Key<android.hardware.camera2.Size[]> JPEG_AVAILABLE_THUMBNAIL_SIZES =
|
||||
new Key<android.hardware.camera2.Size[]>("android.jpeg.availableThumbnailSizes", android.hardware.camera2.Size[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of supported aperture
|
||||
* values
|
||||
* </p>
|
||||
* <p>
|
||||
* If variable aperture not available, only setting
|
||||
* should be for the fixed aperture
|
||||
* </p>
|
||||
* <p>List of supported aperture
|
||||
* values</p>
|
||||
* <p>If variable aperture not available, only setting
|
||||
* should be for the fixed aperture</p>
|
||||
*/
|
||||
public static final Key<float[]> LENS_INFO_AVAILABLE_APERTURES =
|
||||
new Key<float[]>("android.lens.info.availableApertures", float[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of supported ND filter
|
||||
* values
|
||||
* </p>
|
||||
* <p>
|
||||
* If not available, only setting is 0. Otherwise,
|
||||
* <p>List of supported ND filter
|
||||
* values</p>
|
||||
* <p>If not available, only setting is 0. Otherwise,
|
||||
* lists the available exposure index values for dimming
|
||||
* (2 would mean the filter is set to reduce incoming
|
||||
* light by two stops)
|
||||
* </p>
|
||||
* light by two stops)</p>
|
||||
*/
|
||||
public static final Key<float[]> LENS_INFO_AVAILABLE_FILTER_DENSITIES =
|
||||
new Key<float[]>("android.lens.info.availableFilterDensities", float[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* If fitted with optical zoom, what focal
|
||||
* <p>If fitted with optical zoom, what focal
|
||||
* lengths are available. If not, the static focal
|
||||
* length
|
||||
* </p>
|
||||
* <p>
|
||||
* If optical zoom not supported, only one value
|
||||
* should be reported
|
||||
* </p>
|
||||
* length</p>
|
||||
* <p>If optical zoom not supported, only one value
|
||||
* should be reported</p>
|
||||
*/
|
||||
public static final Key<float[]> LENS_INFO_AVAILABLE_FOCAL_LENGTHS =
|
||||
new Key<float[]>("android.lens.info.availableFocalLengths", float[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of supported optical image
|
||||
* stabilization modes
|
||||
* </p>
|
||||
* <p>List of supported optical image
|
||||
* stabilization modes</p>
|
||||
*/
|
||||
public static final Key<byte[]> LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION =
|
||||
new Key<byte[]>("android.lens.info.availableOpticalStabilization", byte[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Hyperfocal distance for this lens; set to
|
||||
* 0 if fixed focus
|
||||
* </p>
|
||||
* <p>
|
||||
* The hyperfocal distance is used for the old
|
||||
* API's 'fixed' setting
|
||||
* </p>
|
||||
* <p>Hyperfocal distance for this lens; set to
|
||||
* 0 if fixed focus</p>
|
||||
* <p>The hyperfocal distance is used for the old
|
||||
* API's 'fixed' setting</p>
|
||||
*/
|
||||
public static final Key<Float> LENS_INFO_HYPERFOCAL_DISTANCE =
|
||||
new Key<Float>("android.lens.info.hyperfocalDistance", float.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Shortest distance from frontmost surface
|
||||
* of the lens that can be focused correctly
|
||||
* </p>
|
||||
* <p>
|
||||
* If the lens is fixed-focus, this should be
|
||||
* 0
|
||||
* </p>
|
||||
* <p>Shortest distance from frontmost surface
|
||||
* of the lens that can be focused correctly</p>
|
||||
* <p>If the lens is fixed-focus, this should be
|
||||
* 0</p>
|
||||
*/
|
||||
public static final Key<Float> LENS_INFO_MINIMUM_FOCUS_DISTANCE =
|
||||
new Key<Float>("android.lens.info.minimumFocusDistance", float.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Dimensions of lens shading
|
||||
* map
|
||||
* </p>
|
||||
* <p>Dimensions of lens shading
|
||||
* map</p>
|
||||
*/
|
||||
public static final Key<android.hardware.camera2.Size> LENS_INFO_SHADING_MAP_SIZE =
|
||||
new Key<android.hardware.camera2.Size>("android.lens.info.shadingMapSize", android.hardware.camera2.Size.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Direction the camera faces relative to
|
||||
* device screen
|
||||
* </p>
|
||||
* <p>Direction the camera faces relative to
|
||||
* device screen</p>
|
||||
* @see #LENS_FACING_FRONT
|
||||
* @see #LENS_FACING_BACK
|
||||
*/
|
||||
@@ -333,18 +283,14 @@ public final class CameraCharacteristics extends CameraMetadata {
|
||||
new Key<Integer>("android.lens.facing", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* If set to 1, the HAL will always split result
|
||||
* <p>If set to 1, the HAL will always split result
|
||||
* metadata for a single capture into multiple buffers,
|
||||
* returned using multiple process_capture_result calls.
|
||||
* </p>
|
||||
* <p>
|
||||
* Does not need to be listed in static
|
||||
* returned using multiple process_capture_result calls.</p>
|
||||
* <p>Does not need to be listed in static
|
||||
* metadata. Support for partial results will be reworked in
|
||||
* future versions of camera service. This quirk will stop
|
||||
* working at that point; DO NOT USE without careful
|
||||
* consideration of future support.
|
||||
* </p>
|
||||
* consideration of future support.</p>
|
||||
*
|
||||
* <b>Optional</b> - This value may be null on some devices.
|
||||
*
|
||||
@@ -354,160 +300,122 @@ public final class CameraCharacteristics extends CameraMetadata {
|
||||
new Key<Byte>("android.quirks.usePartialResult", byte.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* How many output streams can be allocated at
|
||||
* the same time for each type of stream
|
||||
* </p>
|
||||
* <p>
|
||||
* Video snapshot with preview callbacks requires 3
|
||||
* <p>How many output streams can be allocated at
|
||||
* the same time for each type of stream</p>
|
||||
* <p>Video snapshot with preview callbacks requires 3
|
||||
* processed streams (preview, record, app callbacks) and
|
||||
* one JPEG stream (snapshot)
|
||||
* </p>
|
||||
* one JPEG stream (snapshot)</p>
|
||||
*/
|
||||
public static final Key<int[]> REQUEST_MAX_NUM_OUTPUT_STREAMS =
|
||||
new Key<int[]>("android.request.maxNumOutputStreams", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of app-visible formats
|
||||
* </p>
|
||||
* <p>List of app-visible formats</p>
|
||||
*/
|
||||
public static final Key<int[]> SCALER_AVAILABLE_FORMATS =
|
||||
new Key<int[]>("android.scaler.availableFormats", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The minimum frame duration that is supported
|
||||
* <p>The minimum frame duration that is supported
|
||||
* for each resolution in availableJpegSizes. Should
|
||||
* correspond to the frame duration when only that JPEG
|
||||
* stream is active and captured in a burst, with all
|
||||
* processing set to FAST
|
||||
* </p>
|
||||
* <p>
|
||||
* When multiple streams are configured, the minimum
|
||||
* frame duration will be >= max(individual stream min
|
||||
* durations)
|
||||
* </p>
|
||||
* processing set to FAST</p>
|
||||
* <p>When multiple streams are configured, the minimum
|
||||
* frame duration will be >= max(individual stream min
|
||||
* durations)</p>
|
||||
*/
|
||||
public static final Key<long[]> SCALER_AVAILABLE_JPEG_MIN_DURATIONS =
|
||||
new Key<long[]>("android.scaler.availableJpegMinDurations", long[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The resolutions available for output from
|
||||
* the JPEG block. Listed as width x height
|
||||
* </p>
|
||||
* <p>The resolutions available for output from
|
||||
* the JPEG block. Listed as width x height</p>
|
||||
*/
|
||||
public static final Key<android.hardware.camera2.Size[]> SCALER_AVAILABLE_JPEG_SIZES =
|
||||
new Key<android.hardware.camera2.Size[]>("android.scaler.availableJpegSizes", android.hardware.camera2.Size[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The maximum ratio between active area width
|
||||
* <p>The maximum ratio between active area width
|
||||
* and crop region width, or between active area height and
|
||||
* crop region height, if the crop region height is larger
|
||||
* than width
|
||||
* </p>
|
||||
* than width</p>
|
||||
*/
|
||||
public static final Key<Float> SCALER_AVAILABLE_MAX_DIGITAL_ZOOM =
|
||||
new Key<Float>("android.scaler.availableMaxDigitalZoom", float.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The minimum frame duration that is supported
|
||||
* <p>The minimum frame duration that is supported
|
||||
* for each resolution in availableProcessedSizes. Should
|
||||
* correspond to the frame duration when only that processed
|
||||
* stream is active, with all processing set to
|
||||
* FAST
|
||||
* </p>
|
||||
* <p>
|
||||
* When multiple streams are configured, the minimum
|
||||
* frame duration will be >= max(individual stream min
|
||||
* durations)
|
||||
* </p>
|
||||
* FAST</p>
|
||||
* <p>When multiple streams are configured, the minimum
|
||||
* frame duration will be >= max(individual stream min
|
||||
* durations)</p>
|
||||
*/
|
||||
public static final Key<long[]> SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS =
|
||||
new Key<long[]>("android.scaler.availableProcessedMinDurations", long[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The resolutions available for use with
|
||||
* <p>The resolutions available for use with
|
||||
* processed output streams, such as YV12, NV12, and
|
||||
* platform opaque YUV/RGB streams to the GPU or video
|
||||
* encoders. Listed as width, height
|
||||
* </p>
|
||||
* <p>
|
||||
* The actual supported resolution list may be limited by
|
||||
* encoders. Listed as width, height</p>
|
||||
* <p>The actual supported resolution list may be limited by
|
||||
* consumer end points for different use cases. For example, for
|
||||
* recording use case, the largest supported resolution may be
|
||||
* limited by max supported size from encoder, for preview use
|
||||
* case, the largest supported resolution may be limited by max
|
||||
* resolution SurfaceTexture/SurfaceView can support.
|
||||
* </p>
|
||||
* resolution SurfaceTexture/SurfaceView can support.</p>
|
||||
*/
|
||||
public static final Key<android.hardware.camera2.Size[]> SCALER_AVAILABLE_PROCESSED_SIZES =
|
||||
new Key<android.hardware.camera2.Size[]>("android.scaler.availableProcessedSizes", android.hardware.camera2.Size[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Area of raw data which corresponds to only
|
||||
* <p>Area of raw data which corresponds to only
|
||||
* active pixels; smaller or equal to
|
||||
* pixelArraySize.
|
||||
* </p>
|
||||
* pixelArraySize.</p>
|
||||
*/
|
||||
public static final Key<android.graphics.Rect> SENSOR_INFO_ACTIVE_ARRAY_SIZE =
|
||||
new Key<android.graphics.Rect>("android.sensor.info.activeArraySize", android.graphics.Rect.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Range of valid sensitivities
|
||||
* </p>
|
||||
* <p>Range of valid sensitivities</p>
|
||||
*/
|
||||
public static final Key<int[]> SENSOR_INFO_SENSITIVITY_RANGE =
|
||||
new Key<int[]>("android.sensor.info.sensitivityRange", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Range of valid exposure
|
||||
* times
|
||||
* </p>
|
||||
* <p>Range of valid exposure
|
||||
* times</p>
|
||||
*/
|
||||
public static final Key<long[]> SENSOR_INFO_EXPOSURE_TIME_RANGE =
|
||||
new Key<long[]>("android.sensor.info.exposureTimeRange", long[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Maximum possible frame duration (minimum frame
|
||||
* rate)
|
||||
* </p>
|
||||
* <p>
|
||||
* Minimum duration is a function of resolution,
|
||||
* <p>Maximum possible frame duration (minimum frame
|
||||
* rate)</p>
|
||||
* <p>Minimum duration is a function of resolution,
|
||||
* processing settings. See
|
||||
* android.scaler.availableProcessedMinDurations
|
||||
* android.scaler.availableJpegMinDurations
|
||||
* android.scaler.availableRawMinDurations
|
||||
* </p>
|
||||
* android.scaler.availableRawMinDurations</p>
|
||||
*/
|
||||
public static final Key<Long> SENSOR_INFO_MAX_FRAME_DURATION =
|
||||
new Key<Long>("android.sensor.info.maxFrameDuration", long.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The physical dimensions of the full pixel
|
||||
* array
|
||||
* </p>
|
||||
* <p>
|
||||
* Needed for FOV calculation for old API
|
||||
* </p>
|
||||
* <p>The physical dimensions of the full pixel
|
||||
* array</p>
|
||||
* <p>Needed for FOV calculation for old API</p>
|
||||
*/
|
||||
public static final Key<float[]> SENSOR_INFO_PHYSICAL_SIZE =
|
||||
new Key<float[]>("android.sensor.info.physicalSize", float[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Gain factor from electrons to raw units when
|
||||
* ISO=100
|
||||
* </p>
|
||||
* <p>Gain factor from electrons to raw units when
|
||||
* ISO=100</p>
|
||||
*
|
||||
* <b>Optional</b> - This value may be null on some devices.
|
||||
*
|
||||
@@ -519,16 +427,12 @@ public final class CameraCharacteristics extends CameraMetadata {
|
||||
new Key<Rational>("android.sensor.baseGainFactor", Rational.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Maximum sensitivity that is implemented
|
||||
* purely through analog gain
|
||||
* </p>
|
||||
* <p>
|
||||
* For android.sensor.sensitivity values less than or
|
||||
* <p>Maximum sensitivity that is implemented
|
||||
* purely through analog gain</p>
|
||||
* <p>For android.sensor.sensitivity values less than or
|
||||
* equal to this, all applied gain must be analog. For
|
||||
* values above this, it can be a mix of analog and
|
||||
* digital
|
||||
* </p>
|
||||
* digital</p>
|
||||
*
|
||||
* <b>Optional</b> - This value may be null on some devices.
|
||||
*
|
||||
@@ -540,60 +444,46 @@ public final class CameraCharacteristics extends CameraMetadata {
|
||||
new Key<Integer>("android.sensor.maxAnalogSensitivity", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Clockwise angle through which the output
|
||||
* <p>Clockwise angle through which the output
|
||||
* image needs to be rotated to be upright on the device
|
||||
* screen in its native orientation. Also defines the
|
||||
* direction of rolling shutter readout, which is from top
|
||||
* to bottom in the sensor's coordinate system
|
||||
* </p>
|
||||
* to bottom in the sensor's coordinate system</p>
|
||||
*/
|
||||
public static final Key<Integer> SENSOR_ORIENTATION =
|
||||
new Key<Integer>("android.sensor.orientation", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Which face detection modes are available,
|
||||
* if any
|
||||
* </p>
|
||||
* <p>
|
||||
* OFF means face detection is disabled, it must
|
||||
* be included in the list.
|
||||
* </p><p>
|
||||
* SIMPLE means the device supports the
|
||||
* <p>Which face detection modes are available,
|
||||
* if any</p>
|
||||
* <p>OFF means face detection is disabled, it must
|
||||
* be included in the list.</p>
|
||||
* <p>SIMPLE means the device supports the
|
||||
* android.statistics.faceRectangles and
|
||||
* android.statistics.faceScores outputs.
|
||||
* </p><p>
|
||||
* FULL means the device additionally supports the
|
||||
* android.statistics.faceScores outputs.</p>
|
||||
* <p>FULL means the device additionally supports the
|
||||
* android.statistics.faceIds and
|
||||
* android.statistics.faceLandmarks outputs.
|
||||
* </p>
|
||||
* android.statistics.faceLandmarks outputs.</p>
|
||||
*/
|
||||
public static final Key<byte[]> STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES =
|
||||
new Key<byte[]>("android.statistics.info.availableFaceDetectModes", byte[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Maximum number of simultaneously detectable
|
||||
* faces
|
||||
* </p>
|
||||
* <p>Maximum number of simultaneously detectable
|
||||
* faces</p>
|
||||
*/
|
||||
public static final Key<Integer> STATISTICS_INFO_MAX_FACE_COUNT =
|
||||
new Key<Integer>("android.statistics.info.maxFaceCount", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Maximum number of supported points in the
|
||||
* tonemap curve
|
||||
* </p>
|
||||
* <p>Maximum number of supported points in the
|
||||
* tonemap curve</p>
|
||||
*/
|
||||
public static final Key<Integer> TONEMAP_MAX_CURVE_POINTS =
|
||||
new Key<Integer>("android.tonemap.maxCurvePoints", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* A list of camera LEDs that are available on this system.
|
||||
* </p>
|
||||
* <p>A list of camera LEDs that are available on this system.</p>
|
||||
* @see #LED_AVAILABLE_LEDS_TRANSMIT
|
||||
*
|
||||
* @hide
|
||||
@@ -602,17 +492,14 @@ public final class CameraCharacteristics extends CameraMetadata {
|
||||
new Key<int[]>("android.led.availableLeds", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The camera 3 HAL device can implement one of two possible
|
||||
* <p>The camera 3 HAL device can implement one of two possible
|
||||
* operational modes; limited and full. Full support is
|
||||
* expected from new higher-end devices. Limited mode has
|
||||
* hardware requirements roughly in line with those for a
|
||||
* camera HAL device v1 implementation, and is expected from
|
||||
* older or inexpensive devices. Full is a strict superset of
|
||||
* limited, and they share the same essential operational flow.
|
||||
* </p><p>
|
||||
* For full details refer to "S3. Operational Modes" in camera3.h
|
||||
* </p>
|
||||
* limited, and they share the same essential operational flow.</p>
|
||||
* <p>For full details refer to "S3. Operational Modes" in camera3.h</p>
|
||||
* @see #INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
|
||||
* @see #INFO_SUPPORTED_HARDWARE_LEVEL_FULL
|
||||
*/
|
||||
|
||||
@@ -224,9 +224,7 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* android.led.transmit control is used
|
||||
* </p>
|
||||
* <p>android.led.transmit control is used</p>
|
||||
* @see CameraCharacteristics#LED_AVAILABLE_LEDS
|
||||
* @hide
|
||||
*/
|
||||
@@ -251,28 +249,22 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Use the android.colorCorrection.transform matrix
|
||||
* and android.colorCorrection.gains to do color conversion
|
||||
* </p>
|
||||
* <p>Use the android.colorCorrection.transform matrix
|
||||
* and android.colorCorrection.gains to do color conversion</p>
|
||||
* @see CaptureRequest#COLOR_CORRECTION_MODE
|
||||
*/
|
||||
public static final int COLOR_CORRECTION_MODE_TRANSFORM_MATRIX = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Must not slow down frame rate relative to raw
|
||||
* bayer output
|
||||
* </p>
|
||||
* <p>Must not slow down frame rate relative to raw
|
||||
* bayer output</p>
|
||||
* @see CaptureRequest#COLOR_CORRECTION_MODE
|
||||
*/
|
||||
public static final int COLOR_CORRECTION_MODE_FAST = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Frame rate may be reduced by high
|
||||
* quality
|
||||
* </p>
|
||||
* <p>Frame rate may be reduced by high
|
||||
* quality</p>
|
||||
* @see CaptureRequest#COLOR_CORRECTION_MODE
|
||||
*/
|
||||
public static final int COLOR_CORRECTION_MODE_HIGH_QUALITY = 2;
|
||||
@@ -306,52 +298,42 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Autoexposure is disabled; sensor.exposureTime,
|
||||
* sensor.sensitivity and sensor.frameDuration are used
|
||||
* </p>
|
||||
* <p>Autoexposure is disabled; sensor.exposureTime,
|
||||
* sensor.sensitivity and sensor.frameDuration are used</p>
|
||||
* @see CaptureRequest#CONTROL_AE_MODE
|
||||
*/
|
||||
public static final int CONTROL_AE_MODE_OFF = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Autoexposure is active, no flash
|
||||
* control
|
||||
* </p>
|
||||
* <p>Autoexposure is active, no flash
|
||||
* control</p>
|
||||
* @see CaptureRequest#CONTROL_AE_MODE
|
||||
*/
|
||||
public static final int CONTROL_AE_MODE_ON = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if flash exists Autoexposure is active, auto
|
||||
* <p>if flash exists Autoexposure is active, auto
|
||||
* flash control; flash may be fired when precapture
|
||||
* trigger is activated, and for captures for which
|
||||
* captureIntent = STILL_CAPTURE
|
||||
* </p>
|
||||
* captureIntent = STILL_CAPTURE</p>
|
||||
* @see CaptureRequest#CONTROL_AE_MODE
|
||||
*/
|
||||
public static final int CONTROL_AE_MODE_ON_AUTO_FLASH = 2;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if flash exists Autoexposure is active, auto
|
||||
* <p>if flash exists Autoexposure is active, auto
|
||||
* flash control for precapture trigger and always flash
|
||||
* when captureIntent = STILL_CAPTURE
|
||||
* </p>
|
||||
* when captureIntent = STILL_CAPTURE</p>
|
||||
* @see CaptureRequest#CONTROL_AE_MODE
|
||||
*/
|
||||
public static final int CONTROL_AE_MODE_ON_ALWAYS_FLASH = 3;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* optional Automatic red eye reduction with flash.
|
||||
* <p>optional Automatic red eye reduction with flash.
|
||||
* If deemed necessary, red eye reduction sequence should
|
||||
* fire when precapture trigger is activated, and final
|
||||
* flash should fire when captureIntent =
|
||||
* STILL_CAPTURE
|
||||
* </p>
|
||||
* STILL_CAPTURE</p>
|
||||
* @see CaptureRequest#CONTROL_AE_MODE
|
||||
*/
|
||||
public static final int CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE = 4;
|
||||
@@ -361,20 +343,16 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The trigger is idle.
|
||||
* </p>
|
||||
* <p>The trigger is idle.</p>
|
||||
* @see CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
|
||||
*/
|
||||
public static final int CONTROL_AE_PRECAPTURE_TRIGGER_IDLE = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The precapture metering sequence
|
||||
* <p>The precapture metering sequence
|
||||
* must be started. The exact effect of the precapture
|
||||
* trigger depends on the current AE mode and
|
||||
* state.
|
||||
* </p>
|
||||
* state.</p>
|
||||
* @see CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
|
||||
*/
|
||||
public static final int CONTROL_AE_PRECAPTURE_TRIGGER_START = 1;
|
||||
@@ -384,55 +362,44 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The 3A routines do not control the lens;
|
||||
* <p>The 3A routines do not control the lens;
|
||||
* android.lens.focusDistance is controlled by the
|
||||
* application
|
||||
* </p>
|
||||
* application</p>
|
||||
* @see CaptureRequest#CONTROL_AF_MODE
|
||||
*/
|
||||
public static final int CONTROL_AF_MODE_OFF = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if lens is not fixed focus.
|
||||
* </p><p>
|
||||
* Use android.lens.minimumFocusDistance to determine if lens
|
||||
* <p>If lens is not fixed focus.</p>
|
||||
* <p>Use android.lens.minimumFocusDistance to determine if lens
|
||||
* is fixed focus In this mode, the lens does not move unless
|
||||
* the autofocus trigger action is called. When that trigger
|
||||
* is activated, AF must transition to ACTIVE_SCAN, then to
|
||||
* the outcome of the scan (FOCUSED or
|
||||
* NOT_FOCUSED).
|
||||
* </p><p>
|
||||
* Triggering cancel AF resets the lens position to default,
|
||||
* and sets the AF state to INACTIVE.
|
||||
* </p>
|
||||
* NOT_FOCUSED).</p>
|
||||
* <p>Triggering cancel AF resets the lens position to default,
|
||||
* and sets the AF state to INACTIVE.</p>
|
||||
* @see CaptureRequest#CONTROL_AF_MODE
|
||||
*/
|
||||
public static final int CONTROL_AF_MODE_AUTO = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* In this mode, the lens does not move unless the
|
||||
* autofocus trigger action is called.
|
||||
* </p><p>
|
||||
* When that trigger is activated, AF must transition to
|
||||
* <p>In this mode, the lens does not move unless the
|
||||
* autofocus trigger action is called.</p>
|
||||
* <p>When that trigger is activated, AF must transition to
|
||||
* ACTIVE_SCAN, then to the outcome of the scan (FOCUSED or
|
||||
* NOT_FOCUSED). Triggering cancel AF resets the lens
|
||||
* position to default, and sets the AF state to
|
||||
* INACTIVE.
|
||||
* </p>
|
||||
* INACTIVE.</p>
|
||||
* @see CaptureRequest#CONTROL_AF_MODE
|
||||
*/
|
||||
public static final int CONTROL_AF_MODE_MACRO = 2;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* In this mode, the AF algorithm modifies the lens
|
||||
* <p>In this mode, the AF algorithm modifies the lens
|
||||
* position continually to attempt to provide a
|
||||
* constantly-in-focus image stream.
|
||||
* </p><p>
|
||||
* The focusing behavior should be suitable for good quality
|
||||
* constantly-in-focus image stream.</p>
|
||||
* <p>The focusing behavior should be suitable for good quality
|
||||
* video recording; typically this means slower focus
|
||||
* movement and no overshoots. When the AF trigger is not
|
||||
* involved, the AF algorithm should start in INACTIVE state,
|
||||
@@ -440,25 +407,21 @@ public abstract class CameraMetadata {
|
||||
* states as appropriate. When the AF trigger is activated,
|
||||
* the algorithm should immediately transition into
|
||||
* AF_FOCUSED or AF_NOT_FOCUSED as appropriate, and lock the
|
||||
* lens position until a cancel AF trigger is received.
|
||||
* </p><p>
|
||||
* Once cancel is received, the algorithm should transition
|
||||
* lens position until a cancel AF trigger is received.</p>
|
||||
* <p>Once cancel is received, the algorithm should transition
|
||||
* back to INACTIVE and resume passive scan. Note that this
|
||||
* behavior is not identical to CONTINUOUS_PICTURE, since an
|
||||
* ongoing PASSIVE_SCAN must immediately be
|
||||
* canceled.
|
||||
* </p>
|
||||
* canceled.</p>
|
||||
* @see CaptureRequest#CONTROL_AF_MODE
|
||||
*/
|
||||
public static final int CONTROL_AF_MODE_CONTINUOUS_VIDEO = 3;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* In this mode, the AF algorithm modifies the lens
|
||||
* <p>In this mode, the AF algorithm modifies the lens
|
||||
* position continually to attempt to provide a
|
||||
* constantly-in-focus image stream.
|
||||
* </p><p>
|
||||
* The focusing behavior should be suitable for still image
|
||||
* constantly-in-focus image stream.</p>
|
||||
* <p>The focusing behavior should be suitable for still image
|
||||
* capture; typically this means focusing as fast as
|
||||
* possible. When the AF trigger is not involved, the AF
|
||||
* algorithm should start in INACTIVE state, and then
|
||||
@@ -467,22 +430,18 @@ public abstract class CameraMetadata {
|
||||
* trigger is activated, the algorithm should finish its
|
||||
* PASSIVE_SCAN if active, and then transition into
|
||||
* AF_FOCUSED or AF_NOT_FOCUSED as appropriate, and lock the
|
||||
* lens position until a cancel AF trigger is received.
|
||||
* </p><p>
|
||||
* When the AF cancel trigger is activated, the algorithm
|
||||
* lens position until a cancel AF trigger is received.</p>
|
||||
* <p>When the AF cancel trigger is activated, the algorithm
|
||||
* should transition back to INACTIVE and then act as if it
|
||||
* has just been started.
|
||||
* </p>
|
||||
* has just been started.</p>
|
||||
* @see CaptureRequest#CONTROL_AF_MODE
|
||||
*/
|
||||
public static final int CONTROL_AF_MODE_CONTINUOUS_PICTURE = 4;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Extended depth of field (digital focus). AF
|
||||
* <p>Extended depth of field (digital focus). AF
|
||||
* trigger is ignored, AF state should always be
|
||||
* INACTIVE.
|
||||
* </p>
|
||||
* INACTIVE.</p>
|
||||
* @see CaptureRequest#CONTROL_AF_MODE
|
||||
*/
|
||||
public static final int CONTROL_AF_MODE_EDOF = 5;
|
||||
@@ -492,26 +451,20 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* The trigger is idle.
|
||||
* </p>
|
||||
* <p>The trigger is idle.</p>
|
||||
* @see CaptureRequest#CONTROL_AF_TRIGGER
|
||||
*/
|
||||
public static final int CONTROL_AF_TRIGGER_IDLE = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Autofocus must trigger now.
|
||||
* </p>
|
||||
* <p>Autofocus must trigger now.</p>
|
||||
* @see CaptureRequest#CONTROL_AF_TRIGGER
|
||||
*/
|
||||
public static final int CONTROL_AF_TRIGGER_START = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Autofocus must return to initial
|
||||
* state, and cancel any active trigger.
|
||||
* </p>
|
||||
* <p>Autofocus must return to initial
|
||||
* state, and cancel any active trigger.</p>
|
||||
* @see CaptureRequest#CONTROL_AF_TRIGGER
|
||||
*/
|
||||
public static final int CONTROL_AF_TRIGGER_CANCEL = 2;
|
||||
@@ -570,59 +523,47 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* This request doesn't fall into the other
|
||||
* <p>This request doesn't fall into the other
|
||||
* categories. Default to preview-like
|
||||
* behavior.
|
||||
* </p>
|
||||
* behavior.</p>
|
||||
* @see CaptureRequest#CONTROL_CAPTURE_INTENT
|
||||
*/
|
||||
public static final int CONTROL_CAPTURE_INTENT_CUSTOM = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* This request is for a preview-like usecase. The
|
||||
* <p>This request is for a preview-like usecase. The
|
||||
* precapture trigger may be used to start off a metering
|
||||
* w/flash sequence
|
||||
* </p>
|
||||
* w/flash sequence</p>
|
||||
* @see CaptureRequest#CONTROL_CAPTURE_INTENT
|
||||
*/
|
||||
public static final int CONTROL_CAPTURE_INTENT_PREVIEW = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* This request is for a still capture-type
|
||||
* usecase.
|
||||
* </p>
|
||||
* <p>This request is for a still capture-type
|
||||
* usecase.</p>
|
||||
* @see CaptureRequest#CONTROL_CAPTURE_INTENT
|
||||
*/
|
||||
public static final int CONTROL_CAPTURE_INTENT_STILL_CAPTURE = 2;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* This request is for a video recording
|
||||
* usecase.
|
||||
* </p>
|
||||
* <p>This request is for a video recording
|
||||
* usecase.</p>
|
||||
* @see CaptureRequest#CONTROL_CAPTURE_INTENT
|
||||
*/
|
||||
public static final int CONTROL_CAPTURE_INTENT_VIDEO_RECORD = 3;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* This request is for a video snapshot (still
|
||||
* image while recording video) usecase
|
||||
* </p>
|
||||
* <p>This request is for a video snapshot (still
|
||||
* image while recording video) usecase</p>
|
||||
* @see CaptureRequest#CONTROL_CAPTURE_INTENT
|
||||
*/
|
||||
public static final int CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT = 4;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* This request is for a ZSL usecase; the
|
||||
* <p>This request is for a ZSL usecase; the
|
||||
* application will stream full-resolution images and
|
||||
* reprocess one or several later for a final
|
||||
* capture
|
||||
* </p>
|
||||
* capture</p>
|
||||
* @see CaptureRequest#CONTROL_CAPTURE_INTENT
|
||||
*/
|
||||
public static final int CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG = 5;
|
||||
@@ -681,36 +622,30 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Full application control of pipeline. All 3A
|
||||
* <p>Full application control of pipeline. All 3A
|
||||
* routines are disabled, no other settings in
|
||||
* android.control.* have any effect
|
||||
* </p>
|
||||
* android.control.* have any effect</p>
|
||||
* @see CaptureRequest#CONTROL_MODE
|
||||
*/
|
||||
public static final int CONTROL_MODE_OFF = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Use settings for each individual 3A routine.
|
||||
* <p>Use settings for each individual 3A routine.
|
||||
* Manual control of capture parameters is disabled. All
|
||||
* controls in android.control.* besides sceneMode take
|
||||
* effect
|
||||
* </p>
|
||||
* effect</p>
|
||||
* @see CaptureRequest#CONTROL_MODE
|
||||
*/
|
||||
public static final int CONTROL_MODE_AUTO = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Use specific scene mode. Enabling this disables
|
||||
* <p>Use specific scene mode. Enabling this disables
|
||||
* control.aeMode, control.awbMode and control.afMode
|
||||
* controls; the HAL must ignore those settings while
|
||||
* USE_SCENE_MODE is active (except for FACE_PRIORITY
|
||||
* scene mode). Other control entries are still active.
|
||||
* This setting can only be used if availableSceneModes !=
|
||||
* UNSUPPORTED
|
||||
* </p>
|
||||
* UNSUPPORTED</p>
|
||||
* @see CaptureRequest#CONTROL_MODE
|
||||
*/
|
||||
public static final int CONTROL_MODE_USE_SCENE_MODE = 2;
|
||||
@@ -725,18 +660,15 @@ public abstract class CameraMetadata {
|
||||
public static final int CONTROL_SCENE_MODE_UNSUPPORTED = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if face detection support exists Use face
|
||||
* <p>if face detection support exists Use face
|
||||
* detection data to drive 3A routines. If face detection
|
||||
* statistics are disabled, should still operate correctly
|
||||
* (but not return face detection statistics to the
|
||||
* framework).
|
||||
* </p><p>
|
||||
* Unlike the other scene modes, aeMode, awbMode, and afMode
|
||||
* framework).</p>
|
||||
* <p>Unlike the other scene modes, aeMode, awbMode, and afMode
|
||||
* remain active when FACE_PRIORITY is set. This is due to
|
||||
* compatibility concerns with the old camera
|
||||
* API
|
||||
* </p>
|
||||
* API</p>
|
||||
* @see CaptureRequest#CONTROL_SCENE_MODE
|
||||
*/
|
||||
public static final int CONTROL_SCENE_MODE_FACE_PRIORITY = 1;
|
||||
@@ -821,27 +753,21 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* No edge enhancement is applied
|
||||
* </p>
|
||||
* <p>No edge enhancement is applied</p>
|
||||
* @see CaptureRequest#EDGE_MODE
|
||||
*/
|
||||
public static final int EDGE_MODE_OFF = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Must not slow down frame rate relative to raw
|
||||
* bayer output
|
||||
* </p>
|
||||
* <p>Must not slow down frame rate relative to raw
|
||||
* bayer output</p>
|
||||
* @see CaptureRequest#EDGE_MODE
|
||||
*/
|
||||
public static final int EDGE_MODE_FAST = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Frame rate may be reduced by high
|
||||
* quality
|
||||
* </p>
|
||||
* <p>Frame rate may be reduced by high
|
||||
* quality</p>
|
||||
* @see CaptureRequest#EDGE_MODE
|
||||
*/
|
||||
public static final int EDGE_MODE_HIGH_QUALITY = 2;
|
||||
@@ -851,30 +777,24 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Do not fire the flash for this
|
||||
* capture
|
||||
* </p>
|
||||
* <p>Do not fire the flash for this
|
||||
* capture</p>
|
||||
* @see CaptureRequest#FLASH_MODE
|
||||
*/
|
||||
public static final int FLASH_MODE_OFF = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if android.flash.available is true Fire flash
|
||||
* <p>if android.flash.available is true Fire flash
|
||||
* for this capture based on firingPower,
|
||||
* firingTime.
|
||||
* </p>
|
||||
* firingTime.</p>
|
||||
* @see CaptureRequest#FLASH_MODE
|
||||
*/
|
||||
public static final int FLASH_MODE_SINGLE = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if android.flash.available is true Flash
|
||||
* <p>if android.flash.available is true Flash
|
||||
* continuously on, power set by
|
||||
* firingPower
|
||||
* </p>
|
||||
* firingPower</p>
|
||||
* @see CaptureRequest#FLASH_MODE
|
||||
*/
|
||||
public static final int FLASH_MODE_TORCH = 2;
|
||||
@@ -898,27 +818,21 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* No noise reduction is applied
|
||||
* </p>
|
||||
* <p>No noise reduction is applied</p>
|
||||
* @see CaptureRequest#NOISE_REDUCTION_MODE
|
||||
*/
|
||||
public static final int NOISE_REDUCTION_MODE_OFF = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Must not slow down frame rate relative to raw
|
||||
* bayer output
|
||||
* </p>
|
||||
* <p>Must not slow down frame rate relative to raw
|
||||
* bayer output</p>
|
||||
* @see CaptureRequest#NOISE_REDUCTION_MODE
|
||||
*/
|
||||
public static final int NOISE_REDUCTION_MODE_FAST = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* May slow down frame rate to provide highest
|
||||
* quality
|
||||
* </p>
|
||||
* <p>May slow down frame rate to provide highest
|
||||
* quality</p>
|
||||
* @see CaptureRequest#NOISE_REDUCTION_MODE
|
||||
*/
|
||||
public static final int NOISE_REDUCTION_MODE_HIGH_QUALITY = 2;
|
||||
@@ -933,19 +847,15 @@ public abstract class CameraMetadata {
|
||||
public static final int STATISTICS_FACE_DETECT_MODE_OFF = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Optional Return rectangle and confidence
|
||||
* only
|
||||
* </p>
|
||||
* <p>Optional Return rectangle and confidence
|
||||
* only</p>
|
||||
* @see CaptureRequest#STATISTICS_FACE_DETECT_MODE
|
||||
*/
|
||||
public static final int STATISTICS_FACE_DETECT_MODE_SIMPLE = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Optional Return all face
|
||||
* metadata
|
||||
* </p>
|
||||
* <p>Optional Return all face
|
||||
* metadata</p>
|
||||
* @see CaptureRequest#STATISTICS_FACE_DETECT_MODE
|
||||
*/
|
||||
public static final int STATISTICS_FACE_DETECT_MODE_FULL = 2;
|
||||
@@ -969,28 +879,22 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Use the tone mapping curve specified in
|
||||
* android.tonemap.curve
|
||||
* </p>
|
||||
* <p>Use the tone mapping curve specified in
|
||||
* android.tonemap.curve</p>
|
||||
* @see CaptureRequest#TONEMAP_MODE
|
||||
*/
|
||||
public static final int TONEMAP_MODE_CONTRAST_CURVE = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Must not slow down frame rate relative to raw
|
||||
* bayer output
|
||||
* </p>
|
||||
* <p>Must not slow down frame rate relative to raw
|
||||
* bayer output</p>
|
||||
* @see CaptureRequest#TONEMAP_MODE
|
||||
*/
|
||||
public static final int TONEMAP_MODE_FAST = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Frame rate may be reduced by high
|
||||
* quality
|
||||
* </p>
|
||||
* <p>Frame rate may be reduced by high
|
||||
* quality</p>
|
||||
* @see CaptureRequest#TONEMAP_MODE
|
||||
*/
|
||||
public static final int TONEMAP_MODE_HIGH_QUALITY = 2;
|
||||
@@ -1000,60 +904,48 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AE is off. When a camera device is opened, it starts in
|
||||
* this state.
|
||||
* </p>
|
||||
* <p>AE is off. When a camera device is opened, it starts in
|
||||
* this state.</p>
|
||||
* @see CaptureResult#CONTROL_AE_STATE
|
||||
*/
|
||||
public static final int CONTROL_AE_STATE_INACTIVE = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AE doesn't yet have a good set of control values
|
||||
* for the current scene
|
||||
* </p>
|
||||
* <p>AE doesn't yet have a good set of control values
|
||||
* for the current scene</p>
|
||||
* @see CaptureResult#CONTROL_AE_STATE
|
||||
*/
|
||||
public static final int CONTROL_AE_STATE_SEARCHING = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AE has a good set of control values for the
|
||||
* current scene
|
||||
* </p>
|
||||
* <p>AE has a good set of control values for the
|
||||
* current scene</p>
|
||||
* @see CaptureResult#CONTROL_AE_STATE
|
||||
*/
|
||||
public static final int CONTROL_AE_STATE_CONVERGED = 2;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AE has been locked (aeMode =
|
||||
* LOCKED)
|
||||
* </p>
|
||||
* <p>AE has been locked (aeMode =
|
||||
* LOCKED)</p>
|
||||
* @see CaptureResult#CONTROL_AE_STATE
|
||||
*/
|
||||
public static final int CONTROL_AE_STATE_LOCKED = 3;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AE has a good set of control values, but flash
|
||||
* <p>AE has a good set of control values, but flash
|
||||
* needs to be fired for good quality still
|
||||
* capture
|
||||
* </p>
|
||||
* capture</p>
|
||||
* @see CaptureResult#CONTROL_AE_STATE
|
||||
*/
|
||||
public static final int CONTROL_AE_STATE_FLASH_REQUIRED = 4;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AE has been asked to do a precapture sequence
|
||||
* <p>AE has been asked to do a precapture sequence
|
||||
* (through the
|
||||
* trigger_action(CAMERA2_TRIGGER_PRECAPTURE_METERING)
|
||||
* call), and is currently executing it. Once PRECAPTURE
|
||||
* completes, AE will transition to CONVERGED or
|
||||
* FLASH_REQUIRED as appropriate
|
||||
* </p>
|
||||
* FLASH_REQUIRED as appropriate</p>
|
||||
* @see CaptureResult#CONTROL_AE_STATE
|
||||
*/
|
||||
public static final int CONTROL_AE_STATE_PRECAPTURE = 5;
|
||||
@@ -1063,71 +955,57 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AF off or has not yet tried to scan/been asked
|
||||
* <p>AF off or has not yet tried to scan/been asked
|
||||
* to scan. When a camera device is opened, it starts in
|
||||
* this state.
|
||||
* </p>
|
||||
* this state.</p>
|
||||
* @see CaptureResult#CONTROL_AF_STATE
|
||||
*/
|
||||
public static final int CONTROL_AF_STATE_INACTIVE = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if CONTINUOUS_* modes are supported. AF is
|
||||
* <p>if CONTINUOUS_* modes are supported. AF is
|
||||
* currently doing an AF scan initiated by a continuous
|
||||
* autofocus mode
|
||||
* </p>
|
||||
* autofocus mode</p>
|
||||
* @see CaptureResult#CONTROL_AF_STATE
|
||||
*/
|
||||
public static final int CONTROL_AF_STATE_PASSIVE_SCAN = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if CONTINUOUS_* modes are supported. AF currently
|
||||
* <p>if CONTINUOUS_* modes are supported. AF currently
|
||||
* believes it is in focus, but may restart scanning at
|
||||
* any time.
|
||||
* </p>
|
||||
* any time.</p>
|
||||
* @see CaptureResult#CONTROL_AF_STATE
|
||||
*/
|
||||
public static final int CONTROL_AF_STATE_PASSIVE_FOCUSED = 2;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if AUTO or MACRO modes are supported. AF is doing
|
||||
* <p>if AUTO or MACRO modes are supported. AF is doing
|
||||
* an AF scan because it was triggered by AF
|
||||
* trigger
|
||||
* </p>
|
||||
* trigger</p>
|
||||
* @see CaptureResult#CONTROL_AF_STATE
|
||||
*/
|
||||
public static final int CONTROL_AF_STATE_ACTIVE_SCAN = 3;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if any AF mode besides OFF is supported. AF
|
||||
* <p>if any AF mode besides OFF is supported. AF
|
||||
* believes it is focused correctly and is
|
||||
* locked
|
||||
* </p>
|
||||
* locked</p>
|
||||
* @see CaptureResult#CONTROL_AF_STATE
|
||||
*/
|
||||
public static final int CONTROL_AF_STATE_FOCUSED_LOCKED = 4;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if any AF mode besides OFF is supported. AF has
|
||||
* <p>if any AF mode besides OFF is supported. AF has
|
||||
* failed to focus successfully and is
|
||||
* locked
|
||||
* </p>
|
||||
* locked</p>
|
||||
* @see CaptureResult#CONTROL_AF_STATE
|
||||
*/
|
||||
public static final int CONTROL_AF_STATE_NOT_FOCUSED_LOCKED = 5;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if CONTINUOUS_* modes are supported. AF finished a
|
||||
* <p>if CONTINUOUS_* modes are supported. AF finished a
|
||||
* passive scan without finding focus, and may restart
|
||||
* scanning at any time.
|
||||
* </p>
|
||||
* scanning at any time.</p>
|
||||
* @see CaptureResult#CONTROL_AF_STATE
|
||||
*/
|
||||
public static final int CONTROL_AF_STATE_PASSIVE_UNFOCUSED = 6;
|
||||
@@ -1137,37 +1015,29 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AWB is not in auto mode. When a camera device is opened, it
|
||||
* starts in this state.
|
||||
* </p>
|
||||
* <p>AWB is not in auto mode. When a camera device is opened, it
|
||||
* starts in this state.</p>
|
||||
* @see CaptureResult#CONTROL_AWB_STATE
|
||||
*/
|
||||
public static final int CONTROL_AWB_STATE_INACTIVE = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AWB doesn't yet have a good set of control
|
||||
* values for the current scene
|
||||
* </p>
|
||||
* <p>AWB doesn't yet have a good set of control
|
||||
* values for the current scene</p>
|
||||
* @see CaptureResult#CONTROL_AWB_STATE
|
||||
*/
|
||||
public static final int CONTROL_AWB_STATE_SEARCHING = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AWB has a good set of control values for the
|
||||
* current scene
|
||||
* </p>
|
||||
* <p>AWB has a good set of control values for the
|
||||
* current scene</p>
|
||||
* @see CaptureResult#CONTROL_AWB_STATE
|
||||
*/
|
||||
public static final int CONTROL_AWB_STATE_CONVERGED = 2;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* AE has been locked (aeMode =
|
||||
* LOCKED)
|
||||
* </p>
|
||||
* <p>AE has been locked (aeMode =
|
||||
* LOCKED)</p>
|
||||
* @see CaptureResult#CONTROL_AWB_STATE
|
||||
*/
|
||||
public static final int CONTROL_AWB_STATE_LOCKED = 3;
|
||||
@@ -1177,36 +1047,28 @@ public abstract class CameraMetadata {
|
||||
//
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* No flash on camera
|
||||
* </p>
|
||||
* <p>No flash on camera</p>
|
||||
* @see CaptureResult#FLASH_STATE
|
||||
*/
|
||||
public static final int FLASH_STATE_UNAVAILABLE = 0;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if android.flash.available is true Flash is
|
||||
* charging and cannot be fired
|
||||
* </p>
|
||||
* <p>if android.flash.available is true Flash is
|
||||
* charging and cannot be fired</p>
|
||||
* @see CaptureResult#FLASH_STATE
|
||||
*/
|
||||
public static final int FLASH_STATE_CHARGING = 1;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if android.flash.available is true Flash is
|
||||
* ready to fire
|
||||
* </p>
|
||||
* <p>if android.flash.available is true Flash is
|
||||
* ready to fire</p>
|
||||
* @see CaptureResult#FLASH_STATE
|
||||
*/
|
||||
public static final int FLASH_STATE_READY = 2;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* if android.flash.available is true Flash fired
|
||||
* for this capture
|
||||
* </p>
|
||||
* <p>if android.flash.available is true Flash fired
|
||||
* for this capture</p>
|
||||
* @see CaptureResult#FLASH_STATE
|
||||
*/
|
||||
public static final int FLASH_STATE_FIRED = 3;
|
||||
|
||||
@@ -318,10 +318,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* When android.control.awbMode is not OFF, TRANSFORM_MATRIX
|
||||
* should be ignored.
|
||||
* </p>
|
||||
* <p>When android.control.awbMode is not OFF, TRANSFORM_MATRIX
|
||||
* should be ignored.</p>
|
||||
* @see #COLOR_CORRECTION_MODE_TRANSFORM_MATRIX
|
||||
* @see #COLOR_CORRECTION_MODE_FAST
|
||||
* @see #COLOR_CORRECTION_MODE_HIGH_QUALITY
|
||||
@@ -330,55 +328,42 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.colorCorrection.mode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* A color transform matrix to use to transform
|
||||
* from sensor RGB color space to output linear sRGB color space
|
||||
* </p>
|
||||
* <p>
|
||||
* This matrix is either set by HAL when the request
|
||||
* <p>A color transform matrix to use to transform
|
||||
* from sensor RGB color space to output linear sRGB color space</p>
|
||||
* <p>This matrix is either set by HAL when the request
|
||||
* android.colorCorrection.mode is not TRANSFORM_MATRIX, or
|
||||
* directly by the application in the request when the
|
||||
* android.colorCorrection.mode is TRANSFORM_MATRIX.
|
||||
* </p><p>
|
||||
* In the latter case, the HAL may round the matrix to account
|
||||
* android.colorCorrection.mode is TRANSFORM_MATRIX.</p>
|
||||
* <p>In the latter case, the HAL may round the matrix to account
|
||||
* for precision issues; the final rounded matrix should be
|
||||
* reported back in this matrix result metadata.
|
||||
* </p>
|
||||
* reported back in this matrix result metadata.</p>
|
||||
*/
|
||||
public static final Key<Rational[]> COLOR_CORRECTION_TRANSFORM =
|
||||
new Key<Rational[]>("android.colorCorrection.transform", Rational[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Gains applying to Bayer color channels for
|
||||
* white-balance
|
||||
* </p>
|
||||
* <p>
|
||||
* The 4-channel white-balance gains are defined in
|
||||
* <p>Gains applying to Bayer color channels for
|
||||
* white-balance</p>
|
||||
* <p>The 4-channel white-balance gains are defined in
|
||||
* the order of [R G_even G_odd B], where G_even is the gain
|
||||
* for green pixels on even rows of the output, and G_odd
|
||||
* is the gain for greenpixels on the odd rows. if a HAL
|
||||
* does not support a separate gain for even/odd green channels,
|
||||
* it should use the G_even value,and write G_odd equal to
|
||||
* G_even in the output result metadata.
|
||||
* </p><p>
|
||||
* This array is either set by HAL when the request
|
||||
* G_even in the output result metadata.</p>
|
||||
* <p>This array is either set by HAL when the request
|
||||
* android.colorCorrection.mode is not TRANSFORM_MATRIX, or
|
||||
* directly by the application in the request when the
|
||||
* android.colorCorrection.mode is TRANSFORM_MATRIX.
|
||||
* </p><p>
|
||||
* The ouput should be the gains actually applied by the HAL to
|
||||
* the current frame.
|
||||
* </p>
|
||||
* android.colorCorrection.mode is TRANSFORM_MATRIX.</p>
|
||||
* <p>The ouput should be the gains actually applied by the HAL to
|
||||
* the current frame.</p>
|
||||
*/
|
||||
public static final Key<float[]> COLOR_CORRECTION_GAINS =
|
||||
new Key<float[]>("android.colorCorrection.gains", float[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Enum for controlling
|
||||
* antibanding
|
||||
* </p>
|
||||
* <p>Enum for controlling
|
||||
* antibanding</p>
|
||||
* @see #CONTROL_AE_ANTIBANDING_MODE_OFF
|
||||
* @see #CONTROL_AE_ANTIBANDING_MODE_50HZ
|
||||
* @see #CONTROL_AE_ANTIBANDING_MODE_60HZ
|
||||
@@ -388,42 +373,30 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.aeAntibandingMode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Adjustment to AE target image
|
||||
* brightness
|
||||
* </p>
|
||||
* <p>
|
||||
* For example, if EV step is 0.333, '6' will mean an
|
||||
* <p>Adjustment to AE target image
|
||||
* brightness</p>
|
||||
* <p>For example, if EV step is 0.333, '6' will mean an
|
||||
* exposure compensation of +2 EV; -3 will mean an exposure
|
||||
* compensation of -1
|
||||
* </p>
|
||||
* compensation of -1</p>
|
||||
*/
|
||||
public static final Key<Integer> CONTROL_AE_EXPOSURE_COMPENSATION =
|
||||
new Key<Integer>("android.control.aeExposureCompensation", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether AE is currently locked to its latest
|
||||
* calculated values
|
||||
* </p>
|
||||
* <p>
|
||||
* Note that even when AE is locked, the flash may be
|
||||
* <p>Whether AE is currently locked to its latest
|
||||
* calculated values</p>
|
||||
* <p>Note that even when AE is locked, the flash may be
|
||||
* fired if the AE mode is ON_AUTO_FLASH / ON_ALWAYS_FLASH /
|
||||
* ON_AUTO_FLASH_REDEYE.
|
||||
* </p>
|
||||
* ON_AUTO_FLASH_REDEYE.</p>
|
||||
*/
|
||||
public static final Key<Boolean> CONTROL_AE_LOCK =
|
||||
new Key<Boolean>("android.control.aeLock", boolean.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether AE is currently updating the sensor
|
||||
* exposure and sensitivity fields
|
||||
* </p>
|
||||
* <p>
|
||||
* Only effective if android.control.mode =
|
||||
* AUTO
|
||||
* </p>
|
||||
* <p>Whether AE is currently updating the sensor
|
||||
* exposure and sensitivity fields</p>
|
||||
* <p>Only effective if android.control.mode =
|
||||
* AUTO</p>
|
||||
* @see #CONTROL_AE_MODE_OFF
|
||||
* @see #CONTROL_AE_MODE_ON
|
||||
* @see #CONTROL_AE_MODE_ON_AUTO_FLASH
|
||||
@@ -434,60 +407,45 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.aeMode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of areas to use for
|
||||
* metering
|
||||
* </p>
|
||||
* <p>
|
||||
* Each area is a rectangle plus weight: xmin, ymin,
|
||||
* <p>List of areas to use for
|
||||
* metering</p>
|
||||
* <p>Each area is a rectangle plus weight: xmin, ymin,
|
||||
* xmax, ymax, weight. The rectangle is defined inclusive of the
|
||||
* specified coordinates.
|
||||
* </p><p>
|
||||
* The coordinate system is based on the active pixel array,
|
||||
* specified coordinates.</p>
|
||||
* <p>The coordinate system is based on the active pixel array,
|
||||
* with (0,0) being the top-left pixel in the active pixel array, and
|
||||
* (android.sensor.info.activeArraySize.width - 1,
|
||||
* android.sensor.info.activeArraySize.height - 1) being the
|
||||
* bottom-right pixel in the active pixel array. The weight
|
||||
* should be nonnegative.
|
||||
* </p><p>
|
||||
* If all regions have 0 weight, then no specific metering area
|
||||
* should be nonnegative.</p>
|
||||
* <p>If all regions have 0 weight, then no specific metering area
|
||||
* needs to be used by the HAL. If the metering region is
|
||||
* outside the current android.scaler.cropRegion, the HAL
|
||||
* should ignore the sections outside the region and output the
|
||||
* used sections in the frame metadata
|
||||
* </p>
|
||||
* used sections in the frame metadata</p>
|
||||
*/
|
||||
public static final Key<int[]> CONTROL_AE_REGIONS =
|
||||
new Key<int[]>("android.control.aeRegions", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Range over which fps can be adjusted to
|
||||
* maintain exposure
|
||||
* </p>
|
||||
* <p>
|
||||
* Only constrains AE algorithm, not manual control
|
||||
* of android.sensor.exposureTime
|
||||
* </p>
|
||||
* <p>Range over which fps can be adjusted to
|
||||
* maintain exposure</p>
|
||||
* <p>Only constrains AE algorithm, not manual control
|
||||
* of android.sensor.exposureTime</p>
|
||||
*/
|
||||
public static final Key<int[]> CONTROL_AE_TARGET_FPS_RANGE =
|
||||
new Key<int[]>("android.control.aeTargetFpsRange", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether the HAL must trigger precapture
|
||||
* metering.
|
||||
* </p>
|
||||
* <p>
|
||||
* This entry is normally set to IDLE, or is not
|
||||
* <p>Whether the HAL must trigger precapture
|
||||
* metering.</p>
|
||||
* <p>This entry is normally set to IDLE, or is not
|
||||
* included at all in the request settings. When included and
|
||||
* set to START, the HAL must trigger the autoexposure
|
||||
* precapture metering sequence.
|
||||
* </p><p>
|
||||
* The effect of AE precapture trigger depends on the current
|
||||
* precapture metering sequence.</p>
|
||||
* <p>The effect of AE precapture trigger depends on the current
|
||||
* AE mode and state; see the camera HAL device v3 header for
|
||||
* details.
|
||||
* </p>
|
||||
* details.</p>
|
||||
* @see #CONTROL_AE_PRECAPTURE_TRIGGER_IDLE
|
||||
* @see #CONTROL_AE_PRECAPTURE_TRIGGER_START
|
||||
*/
|
||||
@@ -495,10 +453,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.aePrecaptureTrigger", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether AF is currently enabled, and what
|
||||
* mode it is set to
|
||||
* </p>
|
||||
* <p>Whether AF is currently enabled, and what
|
||||
* mode it is set to</p>
|
||||
* @see #CONTROL_AF_MODE_OFF
|
||||
* @see #CONTROL_AF_MODE_AUTO
|
||||
* @see #CONTROL_AF_MODE_MACRO
|
||||
@@ -510,46 +466,35 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.afMode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of areas to use for focus
|
||||
* estimation
|
||||
* </p>
|
||||
* <p>
|
||||
* Each area is a rectangle plus weight: xmin, ymin,
|
||||
* <p>List of areas to use for focus
|
||||
* estimation</p>
|
||||
* <p>Each area is a rectangle plus weight: xmin, ymin,
|
||||
* xmax, ymax, weight. The rectangle is defined inclusive of the
|
||||
* specified coordinates.
|
||||
* </p><p>
|
||||
* The coordinate system is based on the active pixel array,
|
||||
* specified coordinates.</p>
|
||||
* <p>The coordinate system is based on the active pixel array,
|
||||
* with (0,0) being the top-left pixel in the active pixel array, and
|
||||
* (android.sensor.info.activeArraySize.width - 1,
|
||||
* android.sensor.info.activeArraySize.height - 1) being the
|
||||
* bottom-right pixel in the active pixel array. The weight
|
||||
* should be nonnegative.
|
||||
* </p><p>
|
||||
* If all regions have 0 weight, then no specific focus area
|
||||
* should be nonnegative.</p>
|
||||
* <p>If all regions have 0 weight, then no specific focus area
|
||||
* needs to be used by the HAL. If the focusing region is
|
||||
* outside the current android.scaler.cropRegion, the HAL
|
||||
* should ignore the sections outside the region and output the
|
||||
* used sections in the frame metadata
|
||||
* </p>
|
||||
* used sections in the frame metadata</p>
|
||||
*/
|
||||
public static final Key<int[]> CONTROL_AF_REGIONS =
|
||||
new Key<int[]>("android.control.afRegions", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether the HAL must trigger autofocus.
|
||||
* </p>
|
||||
* <p>
|
||||
* This entry is normally set to IDLE, or is not
|
||||
* included at all in the request settings.
|
||||
* </p><p>
|
||||
* When included and set to START, the HAL must trigger the
|
||||
* <p>Whether the HAL must trigger autofocus.</p>
|
||||
* <p>This entry is normally set to IDLE, or is not
|
||||
* included at all in the request settings.</p>
|
||||
* <p>When included and set to START, the HAL must trigger the
|
||||
* autofocus algorithm. The effect of AF trigger depends on the
|
||||
* current AF mode and state; see the camera HAL device v3
|
||||
* header for details. When set to CANCEL, the HAL must cancel
|
||||
* any active trigger, and return to initial AF state.
|
||||
* </p>
|
||||
* any active trigger, and return to initial AF state.</p>
|
||||
* @see #CONTROL_AF_TRIGGER_IDLE
|
||||
* @see #CONTROL_AF_TRIGGER_START
|
||||
* @see #CONTROL_AF_TRIGGER_CANCEL
|
||||
@@ -558,28 +503,20 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.afTrigger", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether AWB is currently locked to its
|
||||
* latest calculated values
|
||||
* </p>
|
||||
* <p>
|
||||
* Note that AWB lock is only meaningful for AUTO
|
||||
* <p>Whether AWB is currently locked to its
|
||||
* latest calculated values</p>
|
||||
* <p>Note that AWB lock is only meaningful for AUTO
|
||||
* mode; in other modes, AWB is already fixed to a specific
|
||||
* setting
|
||||
* </p>
|
||||
* setting</p>
|
||||
*/
|
||||
public static final Key<Boolean> CONTROL_AWB_LOCK =
|
||||
new Key<Boolean>("android.control.awbLock", boolean.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether AWB is currently setting the color
|
||||
* <p>Whether AWB is currently setting the color
|
||||
* transform fields, and what its illumination target
|
||||
* is
|
||||
* </p>
|
||||
* <p>
|
||||
* [BC - AWB lock,AWB modes]
|
||||
* </p>
|
||||
* is</p>
|
||||
* <p>[BC - AWB lock,AWB modes]</p>
|
||||
* @see #CONTROL_AWB_MODE_OFF
|
||||
* @see #CONTROL_AWB_MODE_AUTO
|
||||
* @see #CONTROL_AWB_MODE_INCANDESCENT
|
||||
@@ -594,43 +531,32 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.awbMode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* List of areas to use for illuminant
|
||||
* estimation
|
||||
* </p>
|
||||
* <p>
|
||||
* Only used in AUTO mode.
|
||||
* </p><p>
|
||||
* Each area is a rectangle plus weight: xmin, ymin,
|
||||
* <p>List of areas to use for illuminant
|
||||
* estimation</p>
|
||||
* <p>Only used in AUTO mode.</p>
|
||||
* <p>Each area is a rectangle plus weight: xmin, ymin,
|
||||
* xmax, ymax, weight. The rectangle is defined inclusive of the
|
||||
* specified coordinates.
|
||||
* </p><p>
|
||||
* The coordinate system is based on the active pixel array,
|
||||
* specified coordinates.</p>
|
||||
* <p>The coordinate system is based on the active pixel array,
|
||||
* with (0,0) being the top-left pixel in the active pixel array, and
|
||||
* (android.sensor.info.activeArraySize.width - 1,
|
||||
* android.sensor.info.activeArraySize.height - 1) being the
|
||||
* bottom-right pixel in the active pixel array. The weight
|
||||
* should be nonnegative.
|
||||
* </p><p>
|
||||
* If all regions have 0 weight, then no specific metering area
|
||||
* should be nonnegative.</p>
|
||||
* <p>If all regions have 0 weight, then no specific metering area
|
||||
* needs to be used by the HAL. If the metering region is
|
||||
* outside the current android.scaler.cropRegion, the HAL
|
||||
* should ignore the sections outside the region and output the
|
||||
* used sections in the frame metadata
|
||||
* </p>
|
||||
* used sections in the frame metadata</p>
|
||||
*/
|
||||
public static final Key<int[]> CONTROL_AWB_REGIONS =
|
||||
new Key<int[]>("android.control.awbRegions", int[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Information to 3A routines about the purpose
|
||||
* <p>Information to 3A routines about the purpose
|
||||
* of this capture, to help decide optimal 3A
|
||||
* strategy
|
||||
* </p>
|
||||
* <p>
|
||||
* Only used if android.control.mode != OFF.
|
||||
* </p>
|
||||
* strategy</p>
|
||||
* <p>Only used if android.control.mode != OFF.</p>
|
||||
* @see #CONTROL_CAPTURE_INTENT_CUSTOM
|
||||
* @see #CONTROL_CAPTURE_INTENT_PREVIEW
|
||||
* @see #CONTROL_CAPTURE_INTENT_STILL_CAPTURE
|
||||
@@ -642,10 +568,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.captureIntent", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether any special color effect is in use.
|
||||
* Only used if android.control.mode != OFF
|
||||
* </p>
|
||||
* <p>Whether any special color effect is in use.
|
||||
* Only used if android.control.mode != OFF</p>
|
||||
* @see #CONTROL_EFFECT_MODE_OFF
|
||||
* @see #CONTROL_EFFECT_MODE_MONO
|
||||
* @see #CONTROL_EFFECT_MODE_NEGATIVE
|
||||
@@ -660,10 +584,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.effectMode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Overall mode of 3A control
|
||||
* routines
|
||||
* </p>
|
||||
* <p>Overall mode of 3A control
|
||||
* routines</p>
|
||||
* @see #CONTROL_MODE_OFF
|
||||
* @see #CONTROL_MODE_AUTO
|
||||
* @see #CONTROL_MODE_USE_SCENE_MODE
|
||||
@@ -672,10 +594,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.mode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Which scene mode is active when
|
||||
* android.control.mode = SCENE_MODE
|
||||
* </p>
|
||||
* <p>Which scene mode is active when
|
||||
* android.control.mode = SCENE_MODE</p>
|
||||
* @see #CONTROL_SCENE_MODE_UNSUPPORTED
|
||||
* @see #CONTROL_SCENE_MODE_FACE_PRIORITY
|
||||
* @see #CONTROL_SCENE_MODE_ACTION
|
||||
@@ -698,24 +618,18 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.control.sceneMode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether video stabilization is
|
||||
* active
|
||||
* </p>
|
||||
* <p>
|
||||
* If enabled, video stabilization can modify the
|
||||
* <p>Whether video stabilization is
|
||||
* active</p>
|
||||
* <p>If enabled, video stabilization can modify the
|
||||
* android.scaler.cropRegion to keep the video stream
|
||||
* stabilized
|
||||
* </p>
|
||||
* stabilized</p>
|
||||
*/
|
||||
public static final Key<Boolean> CONTROL_VIDEO_STABILIZATION_MODE =
|
||||
new Key<Boolean>("android.control.videoStabilizationMode", boolean.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Operation mode for edge
|
||||
* enhancement
|
||||
* </p>
|
||||
* <p>Operation mode for edge
|
||||
* enhancement</p>
|
||||
* @see #EDGE_MODE_OFF
|
||||
* @see #EDGE_MODE_FAST
|
||||
* @see #EDGE_MODE_HIGH_QUALITY
|
||||
@@ -724,9 +638,7 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.edge.mode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Select flash operation mode
|
||||
* </p>
|
||||
* <p>Select flash operation mode</p>
|
||||
* @see #FLASH_MODE_OFF
|
||||
* @see #FLASH_MODE_SINGLE
|
||||
* @see #FLASH_MODE_TORCH
|
||||
@@ -735,128 +647,92 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.flash.mode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* GPS coordinates to include in output JPEG
|
||||
* EXIF
|
||||
* </p>
|
||||
* <p>GPS coordinates to include in output JPEG
|
||||
* EXIF</p>
|
||||
*/
|
||||
public static final Key<double[]> JPEG_GPS_COORDINATES =
|
||||
new Key<double[]>("android.jpeg.gpsCoordinates", double[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 32 characters describing GPS algorithm to
|
||||
* include in EXIF
|
||||
* </p>
|
||||
* <p>32 characters describing GPS algorithm to
|
||||
* include in EXIF</p>
|
||||
*/
|
||||
public static final Key<String> JPEG_GPS_PROCESSING_METHOD =
|
||||
new Key<String>("android.jpeg.gpsProcessingMethod", String.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Time GPS fix was made to include in
|
||||
* EXIF
|
||||
* </p>
|
||||
* <p>Time GPS fix was made to include in
|
||||
* EXIF</p>
|
||||
*/
|
||||
public static final Key<Long> JPEG_GPS_TIMESTAMP =
|
||||
new Key<Long>("android.jpeg.gpsTimestamp", long.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Orientation of JPEG image to
|
||||
* write
|
||||
* </p>
|
||||
* <p>Orientation of JPEG image to
|
||||
* write</p>
|
||||
*/
|
||||
public static final Key<Integer> JPEG_ORIENTATION =
|
||||
new Key<Integer>("android.jpeg.orientation", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Compression quality of the final JPEG
|
||||
* image
|
||||
* </p>
|
||||
* <p>
|
||||
* 85-95 is typical usage range
|
||||
* </p>
|
||||
* <p>Compression quality of the final JPEG
|
||||
* image</p>
|
||||
* <p>85-95 is typical usage range</p>
|
||||
*/
|
||||
public static final Key<Byte> JPEG_QUALITY =
|
||||
new Key<Byte>("android.jpeg.quality", byte.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Compression quality of JPEG
|
||||
* thumbnail
|
||||
* </p>
|
||||
* <p>Compression quality of JPEG
|
||||
* thumbnail</p>
|
||||
*/
|
||||
public static final Key<Byte> JPEG_THUMBNAIL_QUALITY =
|
||||
new Key<Byte>("android.jpeg.thumbnailQuality", byte.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Resolution of embedded JPEG
|
||||
* thumbnail
|
||||
* </p>
|
||||
* <p>Resolution of embedded JPEG
|
||||
* thumbnail</p>
|
||||
*/
|
||||
public static final Key<android.hardware.camera2.Size> JPEG_THUMBNAIL_SIZE =
|
||||
new Key<android.hardware.camera2.Size>("android.jpeg.thumbnailSize", android.hardware.camera2.Size.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Size of the lens aperture
|
||||
* </p>
|
||||
* <p>
|
||||
* Will not be supported on most devices. Can only
|
||||
* pick from supported list
|
||||
* </p>
|
||||
* <p>Size of the lens aperture</p>
|
||||
* <p>Will not be supported on most devices. Can only
|
||||
* pick from supported list</p>
|
||||
*/
|
||||
public static final Key<Float> LENS_APERTURE =
|
||||
new Key<Float>("android.lens.aperture", float.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* State of lens neutral density
|
||||
* filter(s)
|
||||
* </p>
|
||||
* <p>
|
||||
* Will not be supported on most devices. Can only
|
||||
* pick from supported list
|
||||
* </p>
|
||||
* <p>State of lens neutral density
|
||||
* filter(s)</p>
|
||||
* <p>Will not be supported on most devices. Can only
|
||||
* pick from supported list</p>
|
||||
*/
|
||||
public static final Key<Float> LENS_FILTER_DENSITY =
|
||||
new Key<Float>("android.lens.filterDensity", float.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Lens optical zoom setting
|
||||
* </p>
|
||||
* <p>
|
||||
* Will not be supported on most devices.
|
||||
* </p>
|
||||
* <p>Lens optical zoom setting</p>
|
||||
* <p>Will not be supported on most devices.</p>
|
||||
*/
|
||||
public static final Key<Float> LENS_FOCAL_LENGTH =
|
||||
new Key<Float>("android.lens.focalLength", float.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Distance to plane of sharpest focus,
|
||||
* measured from frontmost surface of the lens
|
||||
* </p>
|
||||
* <p>
|
||||
* 0 = infinity focus. Used value should be clamped
|
||||
* to (0,minimum focus distance)
|
||||
* </p>
|
||||
* <p>Distance to plane of sharpest focus,
|
||||
* measured from frontmost surface of the lens</p>
|
||||
* <p>0 = infinity focus. Used value should be clamped
|
||||
* to (0,minimum focus distance)</p>
|
||||
*/
|
||||
public static final Key<Float> LENS_FOCUS_DISTANCE =
|
||||
new Key<Float>("android.lens.focusDistance", float.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether optical image stabilization is
|
||||
* enabled.
|
||||
* </p>
|
||||
* <p>
|
||||
* Will not be supported on most devices.
|
||||
* </p>
|
||||
* <p>Whether optical image stabilization is
|
||||
* enabled.</p>
|
||||
* <p>Will not be supported on most devices.</p>
|
||||
* @see #LENS_OPTICAL_STABILIZATION_MODE_OFF
|
||||
* @see #LENS_OPTICAL_STABILIZATION_MODE_ON
|
||||
*/
|
||||
@@ -864,10 +740,8 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.lens.opticalStabilizationMode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mode of operation for the noise reduction
|
||||
* algorithm
|
||||
* </p>
|
||||
* <p>Mode of operation for the noise reduction
|
||||
* algorithm</p>
|
||||
* @see #NOISE_REDUCTION_MODE_OFF
|
||||
* @see #NOISE_REDUCTION_MODE_FAST
|
||||
* @see #NOISE_REDUCTION_MODE_HIGH_QUALITY
|
||||
@@ -876,11 +750,9 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.noiseReduction.mode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* An application-specified ID for the current
|
||||
* <p>An application-specified ID for the current
|
||||
* request. Must be maintained unchanged in output
|
||||
* frame
|
||||
* </p>
|
||||
* frame</p>
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@@ -888,32 +760,24 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.request.id", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* (x, y, width, height).
|
||||
* </p><p>
|
||||
* A rectangle with the top-level corner of (x,y) and size
|
||||
* <p>(x, y, width, height).</p>
|
||||
* <p>A rectangle with the top-level corner of (x,y) and size
|
||||
* (width, height). The region of the sensor that is used for
|
||||
* output. Each stream must use this rectangle to produce its
|
||||
* output, cropping to a smaller region if necessary to
|
||||
* maintain the stream's aspect ratio.
|
||||
* </p><p>
|
||||
* HAL2.x uses only (x, y, width)
|
||||
* </p>
|
||||
* <p>
|
||||
* Any additional per-stream cropping must be done to
|
||||
* maximize the final pixel area of the stream.
|
||||
* </p><p>
|
||||
* For example, if the crop region is set to a 4:3 aspect
|
||||
* maintain the stream's aspect ratio.</p>
|
||||
* <p>HAL2.x uses only (x, y, width)</p>
|
||||
* <p>Any additional per-stream cropping must be done to
|
||||
* maximize the final pixel area of the stream.</p>
|
||||
* <p>For example, if the crop region is set to a 4:3 aspect
|
||||
* ratio, then 4:3 streams should use the exact crop
|
||||
* region. 16:9 streams should further crop vertically
|
||||
* (letterbox).
|
||||
* </p><p>
|
||||
* Conversely, if the crop region is set to a 16:9, then 4:3
|
||||
* (letterbox).</p>
|
||||
* <p>Conversely, if the crop region is set to a 16:9, then 4:3
|
||||
* outputs should crop horizontally (pillarbox), and 16:9
|
||||
* streams should match exactly. These additional crops must
|
||||
* be centered within the crop region.
|
||||
* </p><p>
|
||||
* The output streams must maintain square pixels at all
|
||||
* be centered within the crop region.</p>
|
||||
* <p>The output streams must maintain square pixels at all
|
||||
* times, no matter what the relative aspect ratios of the
|
||||
* crop region and the stream are. Negative values for
|
||||
* corner are allowed for raw output if full pixel array is
|
||||
@@ -924,67 +788,48 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
* be set to be smaller than floor( activeArraySize.width /
|
||||
* android.scaler.maxDigitalZoom ) and floor(
|
||||
* activeArraySize.height / android.scaler.maxDigitalZoom),
|
||||
* respectively.
|
||||
* </p>
|
||||
* respectively.</p>
|
||||
*/
|
||||
public static final Key<android.graphics.Rect> SCALER_CROP_REGION =
|
||||
new Key<android.graphics.Rect>("android.scaler.cropRegion", android.graphics.Rect.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Duration each pixel is exposed to
|
||||
* light.
|
||||
* </p><p>
|
||||
* If the sensor can't expose this exact duration, it should shorten the
|
||||
* duration exposed to the nearest possible value (rather than expose longer).
|
||||
* </p>
|
||||
* <p>
|
||||
* 1/10000 - 30 sec range. No bulb mode
|
||||
* </p>
|
||||
* <p>Duration each pixel is exposed to
|
||||
* light.</p>
|
||||
* <p>If the sensor can't expose this exact duration, it should shorten the
|
||||
* duration exposed to the nearest possible value (rather than expose longer).</p>
|
||||
* <p>1/10000 - 30 sec range. No bulb mode</p>
|
||||
*/
|
||||
public static final Key<Long> SENSOR_EXPOSURE_TIME =
|
||||
new Key<Long>("android.sensor.exposureTime", long.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Duration from start of frame exposure to
|
||||
* start of next frame exposure
|
||||
* </p>
|
||||
* <p>
|
||||
* Exposure time has priority, so duration is set to
|
||||
* max(duration, exposure time + overhead)
|
||||
* </p>
|
||||
* <p>Duration from start of frame exposure to
|
||||
* start of next frame exposure</p>
|
||||
* <p>Exposure time has priority, so duration is set to
|
||||
* max(duration, exposure time + overhead)</p>
|
||||
*/
|
||||
public static final Key<Long> SENSOR_FRAME_DURATION =
|
||||
new Key<Long>("android.sensor.frameDuration", long.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Gain applied to image data. Must be
|
||||
* <p>Gain applied to image data. Must be
|
||||
* implemented through analog gain only if set to values
|
||||
* below 'maximum analog sensitivity'.
|
||||
* </p><p>
|
||||
* If the sensor can't apply this exact gain, it should lessen the
|
||||
* gain to the nearest possible value (rather than gain more).
|
||||
* </p>
|
||||
* <p>
|
||||
* ISO 12232:2006 REI method
|
||||
* </p>
|
||||
* below 'maximum analog sensitivity'.</p>
|
||||
* <p>If the sensor can't apply this exact gain, it should lessen the
|
||||
* gain to the nearest possible value (rather than gain more).</p>
|
||||
* <p>ISO 12232:2006 REI method</p>
|
||||
*/
|
||||
public static final Key<Integer> SENSOR_SENSITIVITY =
|
||||
new Key<Integer>("android.sensor.sensitivity", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* State of the face detector
|
||||
* unit
|
||||
* </p>
|
||||
* <p>
|
||||
* Whether face detection is enabled, and whether it
|
||||
* <p>State of the face detector
|
||||
* unit</p>
|
||||
* <p>Whether face detection is enabled, and whether it
|
||||
* should output just the basic fields or the full set of
|
||||
* fields. Value must be one of the
|
||||
* android.statistics.info.availableFaceDetectModes.
|
||||
* </p>
|
||||
* android.statistics.info.availableFaceDetectModes.</p>
|
||||
* @see #STATISTICS_FACE_DETECT_MODE_OFF
|
||||
* @see #STATISTICS_FACE_DETECT_MODE_SIMPLE
|
||||
* @see #STATISTICS_FACE_DETECT_MODE_FULL
|
||||
@@ -993,15 +838,11 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.statistics.faceDetectMode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether the HAL needs to output the lens
|
||||
* shading map in output result metadata
|
||||
* </p>
|
||||
* <p>
|
||||
* When set to ON,
|
||||
* <p>Whether the HAL needs to output the lens
|
||||
* shading map in output result metadata</p>
|
||||
* <p>When set to ON,
|
||||
* android.statistics.lensShadingMap must be provided in
|
||||
* the output result metdata.
|
||||
* </p>
|
||||
* the output result metdata.</p>
|
||||
* @see #STATISTICS_LENS_SHADING_MAP_MODE_OFF
|
||||
* @see #STATISTICS_LENS_SHADING_MAP_MODE_ON
|
||||
*/
|
||||
@@ -1009,56 +850,40 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.statistics.lensShadingMapMode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Table mapping blue input values to output
|
||||
* values
|
||||
* </p>
|
||||
* <p>
|
||||
* Tonemapping / contrast / gamma curve for the blue
|
||||
* channel, to use when android.tonemap.mode is CONTRAST_CURVE.
|
||||
* </p><p>
|
||||
* See android.tonemap.curveRed for more details.
|
||||
* </p>
|
||||
* <p>Table mapping blue input values to output
|
||||
* values</p>
|
||||
* <p>Tonemapping / contrast / gamma curve for the blue
|
||||
* channel, to use when android.tonemap.mode is CONTRAST_CURVE.</p>
|
||||
* <p>See android.tonemap.curveRed for more details.</p>
|
||||
*/
|
||||
public static final Key<float[]> TONEMAP_CURVE_BLUE =
|
||||
new Key<float[]>("android.tonemap.curveBlue", float[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Table mapping green input values to output
|
||||
* values
|
||||
* </p>
|
||||
* <p>
|
||||
* Tonemapping / contrast / gamma curve for the green
|
||||
* channel, to use when android.tonemap.mode is CONTRAST_CURVE.
|
||||
* </p><p>
|
||||
* See android.tonemap.curveRed for more details.
|
||||
* </p>
|
||||
* <p>Table mapping green input values to output
|
||||
* values</p>
|
||||
* <p>Tonemapping / contrast / gamma curve for the green
|
||||
* channel, to use when android.tonemap.mode is CONTRAST_CURVE.</p>
|
||||
* <p>See android.tonemap.curveRed for more details.</p>
|
||||
*/
|
||||
public static final Key<float[]> TONEMAP_CURVE_GREEN =
|
||||
new Key<float[]>("android.tonemap.curveGreen", float[].class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Table mapping red input values to output
|
||||
* values
|
||||
* </p>
|
||||
* <p>
|
||||
* Tonemapping / contrast / gamma curve for the red
|
||||
* channel, to use when android.tonemap.mode is CONTRAST_CURVE.
|
||||
* </p><p>
|
||||
* Since the input and output ranges may vary depending on
|
||||
* <p>Table mapping red input values to output
|
||||
* values</p>
|
||||
* <p>Tonemapping / contrast / gamma curve for the red
|
||||
* channel, to use when android.tonemap.mode is CONTRAST_CURVE.</p>
|
||||
* <p>Since the input and output ranges may vary depending on
|
||||
* the camera pipeline, the input and output pixel values
|
||||
* are represented by normalized floating-point values
|
||||
* between 0 and 1, with 0 == black and 1 == white.
|
||||
* </p><p>
|
||||
* The curve should be linearly interpolated between the
|
||||
* between 0 and 1, with 0 == black and 1 == white.</p>
|
||||
* <p>The curve should be linearly interpolated between the
|
||||
* defined points. The points will be listed in increasing
|
||||
* order of P_IN. For example, if the array is: [0.0, 0.0,
|
||||
* 0.3, 0.5, 1.0, 1.0], then the input->output mapping
|
||||
* for a few sample points would be: 0 -> 0, 0.15 ->
|
||||
* 0.25, 0.3 -> 0.5, 0.5 -> 0.64
|
||||
* </p>
|
||||
* 0.3, 0.5, 1.0, 1.0], then the input->output mapping
|
||||
* for a few sample points would be: 0 -> 0, 0.15 ->
|
||||
* 0.25, 0.3 -> 0.5, 0.5 -> 0.64</p>
|
||||
*/
|
||||
public static final Key<float[]> TONEMAP_CURVE_RED =
|
||||
new Key<float[]>("android.tonemap.curveRed", float[].class);
|
||||
@@ -1072,20 +897,16 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Integer>("android.tonemap.mode", int.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* This LED is nominally used to indicate to the user
|
||||
* <p>This LED is nominally used to indicate to the user
|
||||
* that the camera is powered on and may be streaming images back to the
|
||||
* Application Processor. In certain rare circumstances, the OS may
|
||||
* disable this when video is processed locally and not transmitted to
|
||||
* any untrusted applications.
|
||||
* </p><p>
|
||||
* In particular, the LED *must* always be on when the data could be
|
||||
* transmitted off the device. The LED *should* always be on whenever
|
||||
* data is stored locally on the device.
|
||||
* </p><p>
|
||||
* The LED *may* be off if a trusted application is using the data that
|
||||
* doesn't violate the above rules.
|
||||
* </p>
|
||||
* any untrusted applications.</p>
|
||||
* <p>In particular, the LED <em>must</em> always be on when the data could be
|
||||
* transmitted off the device. The LED <em>should</em> always be on whenever
|
||||
* data is stored locally on the device.</p>
|
||||
* <p>The LED <em>may</em> be off if a trusted application is using the data that
|
||||
* doesn't violate the above rules.</p>
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@@ -1093,28 +914,44 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
|
||||
new Key<Boolean>("android.led.transmit", boolean.class);
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Whether black-level compensation is locked
|
||||
* to its current values, or is free to vary
|
||||
* </p>
|
||||
* <p>
|
||||
* When set to ON, the values used for black-level
|
||||
* <p>Whether black-level compensation is locked
|
||||
* to its current values, or is free to vary</p>
|
||||
* <p>When set to ON, the values used for black-level
|
||||
* compensation must not change until the lock is set to
|
||||
* OFF
|
||||
* </p><p>
|
||||
* Since changes to certain capture parameters (such as
|
||||
* OFF</p>
|
||||
* <p>Since changes to certain capture parameters (such as
|
||||
* exposure time) may require resetting of black level
|
||||
* compensation, the HAL must report whether setting the
|
||||
* black level lock was successful in the output result
|
||||
* metadata.
|
||||
* </p><p>
|
||||
* The black level locking must happen at the sensor, and not at the ISP.
|
||||
* metadata.</p>
|
||||
* <p>For example, if a sequence of requests is as follows:</p>
|
||||
* <ul>
|
||||
* <li>Request 1: Exposure = 10ms, Black level lock = OFF</li>
|
||||
* <li>Request 2: Exposure = 10ms, Black level lock = ON</li>
|
||||
* <li>Request 3: Exposure = 10ms, Black level lock = ON</li>
|
||||
* <li>Request 4: Exposure = 20ms, Black level lock = ON</li>
|
||||
* <li>Request 5: Exposure = 20ms, Black level lock = ON</li>
|
||||
* <li>Request 6: Exposure = 20ms, Black level lock = ON</li>
|
||||
* </ul>
|
||||
* <p>And the exposure change in Request 4 requires resetting the black
|
||||
* level offsets, then the output result metadata is expected to be:</p>
|
||||
* <ul>
|
||||
* <li>Result 1: Exposure = 10ms, Black level lock = OFF</li>
|
||||
* <li>Result 2: Exposure = 10ms, Black level lock = ON</li>
|
||||
* <li>Result 3: Exposure = 10ms, Black level lock = ON</li>
|
||||
* <li>Result 4: Exposure = 20ms, Black level lock = OFF</li>
|
||||
* <li>Result 5: Exposure = 20ms, Black level lock = ON</li>
|
||||
* <li>Result 6: Exposure = 20ms, Black level lock = ON</li>
|
||||
* </ul>
|
||||
* <p>This indicates to the application that on frame 4, black levels were
|
||||
* reset due to exposure value changes, and pixel values may not be
|
||||
* consistent across captures.</p>
|
||||
* <p>The black level locking must happen at the sensor, and not at the ISP.
|
||||
* If for some reason black level locking is no longer legal (for example,
|
||||
* the analog gain has changed, which forces black levels to be
|
||||
* recalculated), then the HAL is free to override this request (and it
|
||||
* must report 'OFF' when this does happen) until the next time locking
|
||||
* is legal again.
|
||||
* </p>
|
||||
* is legal again.</p>
|
||||
*/
|
||||
public static final Key<Boolean> BLACK_LEVEL_LOCK =
|
||||
new Key<Boolean>("android.blackLevel.lock", boolean.class);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user