Merge "Camera2: Add metadata keys and enum values" into klp-dev

This commit is contained in:
Eino-Ville Talvala
2013-08-14 20:20:43 +00:00
committed by Android (Google) Code Review
6 changed files with 3248 additions and 537 deletions

View File

@@ -10757,7 +10757,119 @@ package android.hardware.camera2 {
method public void readFromParcel(android.os.Parcel);
method public void set(android.hardware.camera2.CameraMetadata.Key<T>, T);
method public void writeToParcel(android.os.Parcel, int);
field public static final int COLOR_CORRECTION_MODE_FAST = 1; // 0x1
field public static final int COLOR_CORRECTION_MODE_HIGH_QUALITY = 2; // 0x2
field public static final int COLOR_CORRECTION_MODE_TRANSFORM_MATRIX = 0; // 0x0
field public static final int CONTROL_AE_ANTIBANDING_MODE_50HZ = 1; // 0x1
field public static final int CONTROL_AE_ANTIBANDING_MODE_60HZ = 2; // 0x2
field public static final int CONTROL_AE_ANTIBANDING_MODE_AUTO = 3; // 0x3
field public static final int CONTROL_AE_ANTIBANDING_MODE_OFF = 0; // 0x0
field public static final int CONTROL_AE_MODE_OFF = 0; // 0x0
field public static final int CONTROL_AE_MODE_ON = 1; // 0x1
field public static final int CONTROL_AE_MODE_ON_ALWAYS_FLASH = 3; // 0x3
field public static final int CONTROL_AE_MODE_ON_AUTO_FLASH = 2; // 0x2
field public static final int CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE = 4; // 0x4
field public static final int CONTROL_AE_PRECAPTURE_TRIGGER_IDLE = 0; // 0x0
field public static final int CONTROL_AE_PRECAPTURE_TRIGGER_START = 1; // 0x1
field public static final int CONTROL_AE_STATE_CONVERGED = 2; // 0x2
field public static final int CONTROL_AE_STATE_FLASH_REQUIRED = 4; // 0x4
field public static final int CONTROL_AE_STATE_INACTIVE = 0; // 0x0
field public static final int CONTROL_AE_STATE_LOCKED = 3; // 0x3
field public static final int CONTROL_AE_STATE_PRECAPTURE = 5; // 0x5
field public static final int CONTROL_AE_STATE_SEARCHING = 1; // 0x1
field public static final int CONTROL_AF_MODE_AUTO = 1; // 0x1
field public static final int CONTROL_AF_MODE_CONTINUOUS_PICTURE = 4; // 0x4
field public static final int CONTROL_AF_MODE_CONTINUOUS_VIDEO = 3; // 0x3
field public static final int CONTROL_AF_MODE_EDOF = 5; // 0x5
field public static final int CONTROL_AF_MODE_MACRO = 2; // 0x2
field public static final int CONTROL_AF_MODE_OFF = 0; // 0x0
field public static final int CONTROL_AF_STATE_ACTIVE_SCAN = 3; // 0x3
field public static final int CONTROL_AF_STATE_FOCUSED_LOCKED = 4; // 0x4
field public static final int CONTROL_AF_STATE_INACTIVE = 0; // 0x0
field public static final int CONTROL_AF_STATE_NOT_FOCUSED_LOCKED = 5; // 0x5
field public static final int CONTROL_AF_STATE_PASSIVE_FOCUSED = 2; // 0x2
field public static final int CONTROL_AF_STATE_PASSIVE_SCAN = 1; // 0x1
field public static final int CONTROL_AF_TRIGGER_CANCEL = 2; // 0x2
field public static final int CONTROL_AF_TRIGGER_IDLE = 0; // 0x0
field public static final int CONTROL_AF_TRIGGER_START = 1; // 0x1
field public static final int CONTROL_AWB_MODE_AUTO = 1; // 0x1
field public static final int CONTROL_AWB_MODE_CLOUDY_DAYLIGHT = 6; // 0x6
field public static final int CONTROL_AWB_MODE_DAYLIGHT = 5; // 0x5
field public static final int CONTROL_AWB_MODE_FLUORESCENT = 3; // 0x3
field public static final int CONTROL_AWB_MODE_INCANDESCENT = 2; // 0x2
field public static final int CONTROL_AWB_MODE_OFF = 0; // 0x0
field public static final int CONTROL_AWB_MODE_SHADE = 8; // 0x8
field public static final int CONTROL_AWB_MODE_TWILIGHT = 7; // 0x7
field public static final int CONTROL_AWB_MODE_WARM_FLUORESCENT = 4; // 0x4
field public static final int CONTROL_AWB_STATE_CONVERGED = 2; // 0x2
field public static final int CONTROL_AWB_STATE_INACTIVE = 0; // 0x0
field public static final int CONTROL_AWB_STATE_LOCKED = 3; // 0x3
field public static final int CONTROL_AWB_STATE_SEARCHING = 1; // 0x1
field public static final int CONTROL_CAPTURE_INTENT_CUSTOM = 0; // 0x0
field public static final int CONTROL_CAPTURE_INTENT_PREVIEW = 1; // 0x1
field public static final int CONTROL_CAPTURE_INTENT_STILL_CAPTURE = 2; // 0x2
field public static final int CONTROL_CAPTURE_INTENT_VIDEO_RECORD = 3; // 0x3
field public static final int CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT = 4; // 0x4
field public static final int CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG = 5; // 0x5
field public static final int CONTROL_EFFECT_MODE_AQUA = 8; // 0x8
field public static final int CONTROL_EFFECT_MODE_BLACKBOARD = 7; // 0x7
field public static final int CONTROL_EFFECT_MODE_MONO = 1; // 0x1
field public static final int CONTROL_EFFECT_MODE_NEGATIVE = 2; // 0x2
field public static final int CONTROL_EFFECT_MODE_OFF = 0; // 0x0
field public static final int CONTROL_EFFECT_MODE_POSTERIZE = 5; // 0x5
field public static final int CONTROL_EFFECT_MODE_SEPIA = 4; // 0x4
field public static final int CONTROL_EFFECT_MODE_SOLARIZE = 3; // 0x3
field public static final int CONTROL_EFFECT_MODE_WHITEBOARD = 6; // 0x6
field public static final int CONTROL_MODE_AUTO = 1; // 0x1
field public static final int CONTROL_MODE_OFF = 0; // 0x0
field public static final int CONTROL_MODE_USE_SCENE_MODE = 2; // 0x2
field public static final int CONTROL_SCENE_MODE_ACTION = 2; // 0x2
field public static final int CONTROL_SCENE_MODE_BARCODE = 16; // 0x10
field public static final int CONTROL_SCENE_MODE_BEACH = 8; // 0x8
field public static final int CONTROL_SCENE_MODE_CANDLELIGHT = 15; // 0xf
field public static final int CONTROL_SCENE_MODE_FACE_PRIORITY = 1; // 0x1
field public static final int CONTROL_SCENE_MODE_FIREWORKS = 12; // 0xc
field public static final int CONTROL_SCENE_MODE_LANDSCAPE = 4; // 0x4
field public static final int CONTROL_SCENE_MODE_NIGHT = 5; // 0x5
field public static final int CONTROL_SCENE_MODE_NIGHT_PORTRAIT = 6; // 0x6
field public static final int CONTROL_SCENE_MODE_PARTY = 14; // 0xe
field public static final int CONTROL_SCENE_MODE_PORTRAIT = 3; // 0x3
field public static final int CONTROL_SCENE_MODE_SNOW = 9; // 0x9
field public static final int CONTROL_SCENE_MODE_SPORTS = 13; // 0xd
field public static final int CONTROL_SCENE_MODE_STEADYPHOTO = 11; // 0xb
field public static final int CONTROL_SCENE_MODE_SUNSET = 10; // 0xa
field public static final int CONTROL_SCENE_MODE_THEATRE = 7; // 0x7
field public static final int CONTROL_SCENE_MODE_UNSUPPORTED = 0; // 0x0
field public static final android.os.Parcelable.Creator CREATOR;
field public static final int EDGE_MODE_FAST = 1; // 0x1
field public static final int EDGE_MODE_HIGH_QUALITY = 2; // 0x2
field public static final int EDGE_MODE_OFF = 0; // 0x0
field public static final int FLASH_MODE_OFF = 0; // 0x0
field public static final int FLASH_MODE_SINGLE = 1; // 0x1
field public static final int FLASH_MODE_TORCH = 2; // 0x2
field public static final int FLASH_STATE_CHARGING = 1; // 0x1
field public static final int FLASH_STATE_FIRED = 3; // 0x3
field public static final int FLASH_STATE_READY = 2; // 0x2
field public static final int FLASH_STATE_UNAVAILABLE = 0; // 0x0
field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1; // 0x1
field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0; // 0x0
field public static final int LENS_FACING_BACK = 1; // 0x1
field public static final int LENS_FACING_FRONT = 0; // 0x0
field public static final int LENS_OPTICAL_STABILIZATION_MODE_OFF = 0; // 0x0
field public static final int LENS_OPTICAL_STABILIZATION_MODE_ON = 1; // 0x1
field public static final int LENS_STATE_STATIONARY = 0; // 0x0
field public static final int NOISE_REDUCTION_MODE_FAST = 1; // 0x1
field public static final int NOISE_REDUCTION_MODE_HIGH_QUALITY = 2; // 0x2
field public static final int NOISE_REDUCTION_MODE_OFF = 0; // 0x0
field public static final int STATISTICS_FACE_DETECT_MODE_FULL = 2; // 0x2
field public static final int STATISTICS_FACE_DETECT_MODE_OFF = 0; // 0x0
field public static final int STATISTICS_FACE_DETECT_MODE_SIMPLE = 1; // 0x1
field public static final int STATISTICS_SCENE_FLICKER_50HZ = 1; // 0x1
field public static final int STATISTICS_SCENE_FLICKER_60HZ = 2; // 0x2
field public static final int STATISTICS_SCENE_FLICKER_NONE = 0; // 0x0
field public static final int TONEMAP_MODE_CONTRAST_CURVE = 0; // 0x0
field public static final int TONEMAP_MODE_FAST = 1; // 0x1
field public static final int TONEMAP_MODE_HIGH_QUALITY = 2; // 0x2
}
public static class CameraMetadata.Key {
@@ -10769,38 +10881,149 @@ package android.hardware.camera2 {
public final class CameraProperties extends android.hardware.camera2.CameraMetadata {
ctor public CameraProperties();
field public static final android.hardware.camera2.CameraMetadata.Key INFO_IDENTIFIER;
field public static final android.hardware.camera2.CameraMetadata.Key INFO_MODEL;
field public static final android.hardware.camera2.CameraMetadata.Key INFO_REMOVABLE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_AVAILABLE_ANTIBANDING_MODES;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_COMPENSATION_RANGE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_COMPENSATION_STEP;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AF_AVAILABLE_MODES;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AVAILABLE_EFFECTS;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AVAILABLE_SCENE_MODES;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AWB_AVAILABLE_MODES;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_MAX_REGIONS;
field public static final android.hardware.camera2.CameraMetadata.Key FLASH_INFO_AVAILABLE;
field public static final android.hardware.camera2.CameraMetadata.Key INFO_SUPPORTED_HARDWARE_LEVEL;
field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1; // 0x1
field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0; // 0x0
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_AVAILABLE_THUMBNAIL_SIZES;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_FACING;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_INFO_AVAILABLE_APERTURES;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_INFO_AVAILABLE_FILTER_DENSITIES;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_INFO_AVAILABLE_FOCAL_LENGTHS;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_INFO_HYPERFOCAL_DISTANCE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_INFO_MINIMUM_FOCUS_DISTANCE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_INFO_SHADING_MAP_SIZE;
field public static final android.hardware.camera2.CameraMetadata.Key REQUEST_MAX_NUM_OUTPUT_STREAMS;
field public static final android.hardware.camera2.CameraMetadata.Key SCALER_AVAILABLE_FORMATS;
field public static final android.hardware.camera2.CameraMetadata.Key SCALER_AVAILABLE_JPEG_MIN_DURATIONS;
field public static final android.hardware.camera2.CameraMetadata.Key SCALER_AVAILABLE_JPEG_SIZES;
field public static final android.hardware.camera2.CameraMetadata.Key SCALER_AVAILABLE_MAX_DIGITAL_ZOOM;
field public static final android.hardware.camera2.CameraMetadata.Key SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS;
field public static final android.hardware.camera2.CameraMetadata.Key SCALER_AVAILABLE_PROCESSED_SIZES;
field public static final android.hardware.camera2.CameraMetadata.Key SCALER_AVAILABLE_RAW_SIZES;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_ACTIVE_ARRAY_SIZE;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_PIXEL_ARRAY_SIZE;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_BASE_GAIN_FACTOR;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_ACTIVE_ARRAY_SIZE;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_EXPOSURE_TIME_RANGE;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_MAX_FRAME_DURATION;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_PHYSICAL_SIZE;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_SENSITIVITY_RANGE;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_MAX_ANALOG_SENSITIVITY;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_ORIENTATION;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_INFO_MAX_FACE_COUNT;
field public static final android.hardware.camera2.CameraMetadata.Key TONEMAP_MAX_CURVE_POINTS;
}
public final class CaptureRequest extends android.hardware.camera2.CameraMetadata implements android.os.Parcelable {
method public void addTarget(android.view.Surface);
method public void removeTarget(android.view.Surface);
field public static final android.hardware.camera2.CameraMetadata.Key BLACK_LEVEL_LOCK;
field public static final android.hardware.camera2.CameraMetadata.Key COLOR_CORRECTION_GAINS;
field public static final android.hardware.camera2.CameraMetadata.Key COLOR_CORRECTION_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key COLOR_CORRECTION_TRANSFORM;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_ANTIBANDING_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_EXPOSURE_COMPENSATION;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_LOCK;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_PRECAPTURE_TRIGGER;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_REGIONS;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_TARGET_FPS_RANGE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AF_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AF_REGIONS;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AF_TRIGGER;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AWB_LOCK;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AWB_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AWB_REGIONS;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_CAPTURE_INTENT;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_EFFECT_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_SCENE_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_VIDEO_STABILIZATION_MODE;
field public static final android.os.Parcelable.Creator CREATOR;
field public static final android.hardware.camera2.CameraMetadata.Key EDGE_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key FLASH_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_COORDINATES;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_PROCESSING_METHOD;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_TIMESTAMP;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_ORIENTATION;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_QUALITY;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_THUMBNAIL_QUALITY;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_THUMBNAIL_SIZE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_APERTURE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_FILTER_DENSITY;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_FOCAL_LENGTH;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_FOCUS_DISTANCE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_OPTICAL_STABILIZATION_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key NOISE_REDUCTION_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key SCALER_CROP_REGION;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_EXPOSURE_TIME;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_FRAME_DURATION;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_SENSITIVITY;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_FACE_DETECT_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key TONEMAP_CURVE_BLUE;
field public static final android.hardware.camera2.CameraMetadata.Key TONEMAP_CURVE_GREEN;
field public static final android.hardware.camera2.CameraMetadata.Key TONEMAP_CURVE_RED;
field public static final android.hardware.camera2.CameraMetadata.Key TONEMAP_MODE;
}
public final class CaptureResult extends android.hardware.camera2.CameraMetadata {
field public static final android.hardware.camera2.CameraMetadata.Key BLACK_LEVEL_LOCK;
field public static final android.hardware.camera2.CameraMetadata.Key COLOR_CORRECTION_GAINS;
field public static final android.hardware.camera2.CameraMetadata.Key COLOR_CORRECTION_TRANSFORM;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_REGIONS;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AE_STATE;
field public static final int CONTROL_AE_STATE_CONVERGED = 2; // 0x2
field public static final int CONTROL_AE_STATE_FLASH_REQUIRED = 4; // 0x4
field public static final int CONTROL_AE_STATE_INACTIVE = 0; // 0x0
field public static final int CONTROL_AE_STATE_LOCKED = 3; // 0x3
field public static final int CONTROL_AE_STATE_PRECAPTURE = 5; // 0x5
field public static final int CONTROL_AE_STATE_SEARCHING = 1; // 0x1
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AF_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AF_REGIONS;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AF_STATE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AWB_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AWB_REGIONS;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_AWB_STATE;
field public static final android.hardware.camera2.CameraMetadata.Key CONTROL_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key EDGE_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key FLASH_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key FLASH_STATE;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_COORDINATES;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_PROCESSING_METHOD;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_TIMESTAMP;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_ORIENTATION;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_QUALITY;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_THUMBNAIL_QUALITY;
field public static final android.hardware.camera2.CameraMetadata.Key JPEG_THUMBNAIL_SIZE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_APERTURE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_FILTER_DENSITY;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_FOCAL_LENGTH;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_FOCUS_DISTANCE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_FOCUS_RANGE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_OPTICAL_STABILIZATION_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key LENS_STATE;
field public static final android.hardware.camera2.CameraMetadata.Key NOISE_REDUCTION_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key REQUEST_FRAME_COUNT;
field public static final android.hardware.camera2.CameraMetadata.Key SCALER_CROP_REGION;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_EXPOSURE_TIME;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_FRAME_DURATION;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_SENSITIVITY;
field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_TIMESTAMP;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_DETECTED_FACES;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_FACE_DETECT_MODE;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_FACE_IDS;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_FACE_LANDMARKS;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_FACE_RECTANGLES;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_FACE_SCORES;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_LENS_SHADING_MAP;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_PREDICTED_COLOR_GAINS;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_PREDICTED_COLOR_TRANSFORM;
field public static final android.hardware.camera2.CameraMetadata.Key STATISTICS_SCENE_FLICKER;
field public static final android.hardware.camera2.CameraMetadata.Key TONEMAP_CURVE_BLUE;
field public static final android.hardware.camera2.CameraMetadata.Key TONEMAP_CURVE_GREEN;
field public static final android.hardware.camera2.CameraMetadata.Key TONEMAP_CURVE_RED;
field public static final android.hardware.camera2.CameraMetadata.Key TONEMAP_MODE;
}
public static class CaptureResult.Face {

View File

@@ -157,14 +157,13 @@ public interface CameraDevice extends AutoCloseable {
* obtain the Surface with
* {@link android.renderscript.Allocation#getSurface}.</li>
*
* <li>For access to uncompressed, JPEG, or raw sensor data in the
* application: Create a {@link android.media.ImageReader} object with the
* desired {@link CameraProperties#SCALER_AVAILABLE_FORMATS image format},
* and a size from the matching
* <li>For access to uncompressed or JPEG data in the application: Create a
* {@link android.media.ImageReader} object with the desired
* {@link CameraProperties#SCALER_AVAILABLE_FORMATS image format}, and a
* size from the matching
* {@link CameraProperties#SCALER_AVAILABLE_PROCESSED_SIZES processed},
* {@link CameraProperties#SCALER_AVAILABLE_JPEG_SIZES jpeg}, or
* {@link CameraProperties#SCALER_AVAILABLE_RAW_SIZES raw} sizes. Then
* obtain a Surface from it.</li>
* {@link CameraProperties#SCALER_AVAILABLE_JPEG_SIZES jpeg}. Then obtain
* a Surface from it.</li>
*
* </ul>
*

File diff suppressed because it is too large Load Diff

View File

@@ -32,216 +32,466 @@ import java.util.List;
* @see CameraManager
*/
public final class CameraProperties extends CameraMetadata {
/**
* The model name of the camera. For fixed (non-removable) cameras, this is
* the manufacturer's name. For removable cameras, this is a string that
* uniquely identifies the camera model and manufacturer. The
* {@link #INFO_IDENTIFIER} can be used to distinguish between multiple
* removable cameras of the same model.
*/
public static final Key<String> INFO_MODEL =
new Key<String>("android.info.model", String.class);
/*@O~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~
* The key entries below this point are generated from metadata
* definitions in /system/media/camera/docs. Do not modify by hand or
* modify the comment blocks at the start or end.
*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/
/**
* A unique identifier for this camera. For removable cameras, every
* camera will have a unique identifier, including two cameras of the
* same model and manufacturer. For non-removable cameras, the
* identifier is equal to the the device's id.
* <p>
* Which set of antibanding modes are
* supported
* </p>
*/
public static final Key<String> INFO_IDENTIFIER =
new Key<String>("android.info.identifier", String.class);
public static final Key<byte[]> CONTROL_AE_AVAILABLE_ANTIBANDING_MODES =
new Key<byte[]>("android.control.aeAvailableAntibandingModes", byte[].class);
/**
* <p>Whether this camera is removable or not.</p>
*
* <p>Applications using a removable camera must be prepared for the camera
* to be disconnected during use. Use the {@link #INFO_IDENTIFIER} field to
* determine if this camera is a match for a camera device seen earlier.</p>
* <p>
* List of frame rate ranges supported by the
* AE algorithm/hardware
* </p>
*/
public static final Key<Boolean> INFO_REMOVABLE =
new Key<Boolean>("android.info.isRemovable", Boolean.TYPE);
public static final Key<int[]> CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES =
new Key<int[]>("android.control.aeAvailableTargetFpsRanges", int[].class);
/**
* <p>The hardware operational model of this device. One of the
* INFO_SUPPORTED_HARDWARE_LEVEL_* constants.</p>
*
* <p>Limited-capability devices have a number of limitations relative to
* full-capability cameras. Roughly, they have capabilities comparable to
* those provided by the deprecated {@link android.hardware.Camera}
* class.</p>
*
* <p>Specifically, limited-mode devices:</p>
*
* <ol>
*
* <li>Do not provide per-frame result metadata for repeating
* captures. This means that a CaptureListener will not be called for
* captures done through {@link CameraDevice#setRepeatingRequest
* setRepeatingRequest} or {@link CameraDevice#setRepeatingBurst
* setRepeatingBurst}.</li>
*
* <li>Do not support complete result metadata. Only a few fields are
* provided, such as the timestamp (TODO).</li>
*
* <li>Do not support manual capture controls. Only the (TODO)
* ANDROID_CONTROL_* fields and TODO controls are used, and the various
* AE/AF/AWB_OFF control values cannot be used.</li>
*
* <li>Do not support high frame rate captures. To obtain high frame rate,
* the {@link CameraDevice#setRepeatingRequest setRepeatingRequest} method
* must be used. The {@link CameraDevice#capture capture},
* {@link CameraDevice#captureBurst captureBurst}, and
* {@link CameraDevice#setRepeatingBurst setRepeatingBurst} methods will
* result in slow frame captures.</li>
*
* </ol>
*
* @see #INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
* @see #INFO_SUPPORTED_HARDWARE_LEVEL_FULL
* <p>
* Maximum and minimum exposure compensation
* setting, in counts of
* android.control.aeCompensationStepSize
* </p>
*/
public static final Key<Integer> INFO_SUPPORTED_HARDWARE_LEVEL =
new Key<Integer>("android.info.supportedHardwareLevel", Integer.TYPE);
public static final Key<int[]> CONTROL_AE_COMPENSATION_RANGE =
new Key<int[]>("android.control.aeCompensationRange", int[].class);
/**
* <p>The type reported by limited-capability camera devices.</p>
*
* <p>Limited-capability devices have a number of limitations relative to
* full-capability cameras. Roughly, they have capabilities comparable to
* those provided by the deprecated {@link android.hardware.Camera}
* class.</p>
*
* <p>Specifically, limited-mode devices:</p>
*
* <ol>
*
* <li>Do not provide per-frame result metadata for repeating
* captures. This means that a CaptureListener will not be called for
* captures done through {@link CameraDevice#setRepeatingRequest
* setRepeatingRequest} or {@link CameraDevice#setRepeatingBurst
* setRepeatingBurst}.</li>
*
* <li>Do not support complete result metadata. Only a few fields are
* provided, such as the timestamp (TODO).</li>
*
* <li>Do not support manual capture controls. Only the (TODO)
* ANDROID_CONTROL_* fields and TODO controls are used, and the various
* AE/AF/AWB_OFF control values cannot be used.</li>
*
* <li>Do not support high frame rate captures. To obtain high frame rate,
* the {@link CameraDevice#setRepeatingRequest setRepeatingRequest} method
* must be used. The {@link CameraDevice#capture capture},
* {@link CameraDevice#captureBurst captureBurst}, and
* {@link CameraDevice#setRepeatingBurst setRepeatingBurst} methods will
* result in slow frame captures.</li>
*
* </ol>
*
* @see #INFO_SUPPORTED_HARDWARE_LEVEL
* <p>
* Smallest step by which exposure compensation
* can be changed
* </p>
*/
public static final int INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0;
public static final Key<Rational> CONTROL_AE_COMPENSATION_STEP =
new Key<Rational>("android.control.aeCompensationStep", Rational.class);
/**
* <p>The type reported by full-capability camera devices</p>
*
* <p>Full-capability devices allow for per-frame control of capture
* hardware and post-processing parameters at high frame rates. They also
* provide output data at high resolution in uncompressed formats, in
* addition to compressed JPEG output.</p>
*
* @see #INFO_SUPPORTED_HARDWARE_LEVEL
* <p>
* List of AF modes that can be
* selected
* </p>
*/
public static final int INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1;
public static final Key<byte[]> CONTROL_AF_AVAILABLE_MODES =
new Key<byte[]>("android.control.afAvailableModes", byte[].class);
/**
* <p>The available output formats from this camera device. When using a
* {@link android.media.ImageReader} as an output target, the
* ImageReader must be configured to use one of these formats.</p>
*
* <p>The list is a subset of the formats defined in
* {@link android.graphics.ImageFormat}.</p>
*
* <p>The image formats {@link android.graphics.ImageFormat#JPEG},
* {@link android.graphics.ImageFormat#YUV_420_888} are guaranteed to be
* 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>
*/
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>
*/
public static final Key<byte[]> CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES =
new Key<byte[]>("android.control.availableVideoStabilizationModes", byte[].class);
/**
*/
public static final Key<byte[]> CONTROL_AWB_AVAILABLE_MODES =
new Key<byte[]>("android.control.awbAvailableModes", byte[].class);
/**
* <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>
*/
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>
*/
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>
*/
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,
* lists the available exposure index values for dimming
* (2 would mean the filter is set to reduce incoming
* 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
* lengths are available. If not, the static focal
* 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>
*/
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>
*/
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>
*/
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>
*/
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>
* @see #LENS_FACING_FRONT
* @see #LENS_FACING_BACK
*/
public static final Key<Integer> LENS_FACING =
new Key<Integer>("android.lens.facing", int.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
* processed streams (preview, record, app callbacks) and
* 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>
*/
public static final Key<int[]> SCALER_AVAILABLE_FORMATS =
new Key<int[]>("android.scaler.availableFormats", int[].class);
/**
* <p>The available output sizes for JPEG buffers from this camera
* device. When using a {@link android.media.ImageReader} as an output
* target, the ImageReader must be configured to use one of these sizes
* when using format {@link android.graphics.ImageFormat#JPEG}.</p>
* <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>
*/
public static final Key<Size[]> SCALER_AVAILABLE_JPEG_SIZES =
new Key<Size[]>("android.scaler.availableJpegSizes", Size[].class);
public static final Key<long[]> SCALER_AVAILABLE_JPEG_MIN_DURATIONS =
new Key<long[]>("android.scaler.availableJpegMinDurations", long[].class);
/**
* <p>The available sizes for output buffers from this camera device, when
* the buffers are neither of the {@link android.graphics.ImageFormat#JPEG}
* or of the {@link android.graphics.ImageFormat#RAW_SENSOR} type.</p>
*
* <p>When using a {@link android.view.SurfaceView},
* {@link android.graphics.SurfaceTexture},
* {@link android.media.MediaRecorder}, {@link android.media.MediaCodec}, or
* {@link android.renderscript.Allocation} as an output target, that target
* must be configured to one of these sizes. See
* {@link CameraDevice#configureOutputs} for details.
*
* <p>When using a {@link android.media.ImageReader} as an output
* target, the ImageReader must be configured to use one of these sizes
* when using format {@link android.graphics.ImageFormat#YUV_420_888}.</p>
*
* <p>
* The resolutions available for output from
* the JPEG block. Listed as width x height
* </p>
*/
public static final Key<Size[]> SCALER_AVAILABLE_PROCESSED_SIZES =
new Key<Size[]>("android.scaler.availableProcessedSizes", Size[].class);
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 available sizes for output buffers from this camera device, when
* the buffers are of the {@link android.graphics.ImageFormat#RAW_SENSOR} type. This type of output may not be
* supported by the device; check {@link #SCALER_AVAILABLE_FORMATS} to
* check. In that case, this list will not exist.</p>
*
* <p>When using a {@link android.media.ImageReader} as an output
* target, the ImageReader must be configured to use one of these sizes
* when using image format {@link android.graphics.ImageFormat#RAW_SENSOR}.</p>
* <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>
*/
public static final Key<Size[]> SCALER_AVAILABLE_RAW_SIZES =
new Key<Size[]>("android.scaler.availableRawSizes", Size[].class);
public static final Key<Float> SCALER_AVAILABLE_MAX_DIGITAL_ZOOM =
new Key<Float>("android.scaler.availableMaxDigitalZoom", float.class);
/**
* <p>The coordinates of the sensor's active pixel array, relative to its
* total pixel array. These are the pixels that are actually used for image
* capture. The active pixel region may be smaller than the total number of
* pixels, if some pixels are used for other tasks such as calibrating the
* sensor's black level. If all pixels available for readout are used for
* imaging, then this rectangle will be
* {@code (0,0) - (SENSOR_PIXEL_ARRAY_SIZE.width,
* SENSOR_PIXEL_ARRAY_SIZE.height)}.</p>
*
* <p>If raw sensor capture is supported by this device, the width and
* height of the active pixel array match up to one of the supported raw
* capture sizes, and using that size will capture just the active pixel
* array region.</p>
*
* <p>Most other coordinates used by the camera device (for example, for
* metering and crop region selection, or for reporting detected faces) use
* a coordinate system based on the active array dimensions, with (0,0)
* being the top-left corner of the active array.</p>
* <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>
*/
public static final Key<Rect> SENSOR_ACTIVE_ARRAY_SIZE =
new Key<Rect>("android.sensor.activeArraySize", Rect.class);
public static final Key<long[]> SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS =
new Key<long[]>("android.scaler.availableProcessedMinDurations", long[].class);
/**
* <p>The size of the sensor's total pixel array available for readout. Some
* of these pixels may not be used for image capture, in which case
* {@link #SENSOR_ACTIVE_ARRAY_SIZE} will describe a rectangle smaller than
* this. If raw sensor capture is supported by this device, this is one of
* the supported capture sizes.</p>
* <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>
*/
public static final Key<Size> SENSOR_PIXEL_ARRAY_SIZE =
new Key<Size>("android.sensor.activeArraySize", Size.class);
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);
// TODO: Many more of these.
/**
* <p>
* Area of raw data which corresponds to only
* active pixels; smaller or equal to
* 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>
*/
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>
*/
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,
* processing settings. See
* android.scaler.availableProcessedMinDurations
* android.scaler.availableJpegMinDurations
* 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>
*/
public static final Key<android.hardware.camera2.Size> SENSOR_INFO_PHYSICAL_SIZE =
new Key<android.hardware.camera2.Size>("android.sensor.info.physicalSize", android.hardware.camera2.Size.class);
/**
* <p>
* Gain factor from electrons to raw units when
* ISO=100
* </p>
*/
public static final Key<Rational> SENSOR_BASE_GAIN_FACTOR =
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
* equal to this, all applied gain must be analog. For
* values above this, it can be a mix of analog and
* digital
* </p>
*/
public static final Key<Integer> SENSOR_MAX_ANALOG_SENSITIVITY =
new Key<Integer>("android.sensor.maxAnalogSensitivity", int.class);
/**
* <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>
*/
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
* android.statistics.faceRectangles and
* android.statistics.faceScores outputs.
* </p><p>
* FULL means the device additionally supports the
* android.statistics.faceIds and
* 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>
*/
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>
*/
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>
* @see #LED_AVAILABLE_LEDS_TRANSMIT
*
* @hide
*/
public static final Key<int[]> LED_AVAILABLE_LEDS =
new Key<int[]>("android.led.availableLeds", int[].class);
/**
* <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>
* @see #INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
* @see #INFO_SUPPORTED_HARDWARE_LEVEL_FULL
*/
public static final Key<Integer> INFO_SUPPORTED_HARDWARE_LEVEL =
new Key<Integer>("android.info.supportedHardwareLevel", int.class);
/*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~
* End generated code
*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~O@*/
}

View File

@@ -54,21 +54,6 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
private final Object mLock = new Object();
private final HashSet<Surface> mSurfaceSet = new HashSet<Surface>();
/**
* The exposure time for this capture, in nanoseconds.
*/
public static final Key<Long> SENSOR_EXPOSURE_TIME =
new Key<Long>("android.sensor.exposureTime", Long.TYPE);
/**
* The sensor sensitivity (gain) setting for this camera.
* This is represented as an ISO sensitivity value
*/
public static final Key<Integer> SENSOR_SENSITIVITY =
new Key<Integer>("android.sensor.sensitivity", Integer.TYPE);
// Many more settings
/**
* @hide
*/
@@ -152,4 +137,751 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable {
}
}
}
/*@O~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~
* The key entries below this point are generated from metadata
* definitions in /system/media/camera/docs. Do not modify by hand or
* modify the comment blocks at the start or end.
*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/
/**
* @see #COLOR_CORRECTION_MODE_TRANSFORM_MATRIX
* @see #COLOR_CORRECTION_MODE_FAST
* @see #COLOR_CORRECTION_MODE_HIGH_QUALITY
*/
public static final Key<Integer> COLOR_CORRECTION_MODE =
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
* android.colorCorrection.mode is not TRANSFORM_MATRIX, or
* directly by the application in the request when the
* androird.colorCorrection.mode is TRANSFORM_MATRIX.
* In the latter case, the HAL may round the matrix to account
* for precision issues; the final rounded matrix should be
* reported back in this matrix result metadata.
* </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
* 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>
* 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>
* @see #CONTROL_AE_ANTIBANDING_MODE_OFF
* @see #CONTROL_AE_ANTIBANDING_MODE_50HZ
* @see #CONTROL_AE_ANTIBANDING_MODE_60HZ
* @see #CONTROL_AE_ANTIBANDING_MODE_AUTO
*/
public static final Key<Integer> CONTROL_AE_ANTIBANDING_MODE =
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
* exposure compensation of +2 EV; -3 will mean an exposure
* 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
* fired if the AE mode is ON_AUTO_FLASH / ON_ALWAYS_FLASH /
* 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>
* @see #CONTROL_AE_MODE_OFF
* @see #CONTROL_AE_MODE_ON
* @see #CONTROL_AE_MODE_ON_AUTO_FLASH
* @see #CONTROL_AE_MODE_ON_ALWAYS_FLASH
* @see #CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE
*/
public static final Key<Integer> CONTROL_AE_MODE =
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,
* xmax, ymax, weight.
* </p><p>
* The coordinate system is based on the active pixel array,
* with (0,0) being the top-left of the active pixel array, and
* (android.sensor.info.activeArraySize.width,
* android.sensor.info.activeArraySize.height) being the
* bottom-right point of the active pixel array. The weight
* 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>
*/
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>
*/
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
* 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
* AE mode and state; see the camera HAL device v3 header for
* details.
* </p>
* @see #CONTROL_AE_PRECAPTURE_TRIGGER_IDLE
* @see #CONTROL_AE_PRECAPTURE_TRIGGER_START
*/
public static final Key<Integer> CONTROL_AE_PRECAPTURE_TRIGGER =
new Key<Integer>("android.control.aePrecaptureTrigger", int.class);
/**
* <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
* @see #CONTROL_AF_MODE_CONTINUOUS_VIDEO
* @see #CONTROL_AF_MODE_CONTINUOUS_PICTURE
* @see #CONTROL_AF_MODE_EDOF
*/
public static final Key<Integer> CONTROL_AF_MODE =
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,
* xmax, ymax, weight.
* </p><p>
* The coordinate system is based on the active pixel array,
* with (0,0) being the top-left of the active pixel array, and
* (android.sensor.info.activeArraySize.width,
* android.sensor.info.activeArraySize.height) being the
* bottom-right point of the active pixel array. The weight
* 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>
*/
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
* 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>
* @see #CONTROL_AF_TRIGGER_IDLE
* @see #CONTROL_AF_TRIGGER_START
* @see #CONTROL_AF_TRIGGER_CANCEL
*/
public static final Key<Integer> CONTROL_AF_TRIGGER =
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
* mode; in other modes, AWB is already fixed to a specific
* 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
* transform fields, and what its illumination target
* is
* </p>
* <p>
* [BC - AWB lock,AWB modes]
* </p>
* @see #CONTROL_AWB_MODE_OFF
* @see #CONTROL_AWB_MODE_AUTO
* @see #CONTROL_AWB_MODE_INCANDESCENT
* @see #CONTROL_AWB_MODE_FLUORESCENT
* @see #CONTROL_AWB_MODE_WARM_FLUORESCENT
* @see #CONTROL_AWB_MODE_DAYLIGHT
* @see #CONTROL_AWB_MODE_CLOUDY_DAYLIGHT
* @see #CONTROL_AWB_MODE_TWILIGHT
* @see #CONTROL_AWB_MODE_SHADE
*/
public static final Key<Integer> CONTROL_AWB_MODE =
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, xmax,
* ymax, weight. The coordinate system is based on the active
* pixel array, with (0,0) being the top-left of the active
* pixel array, and (android.sensor.info.activeArraySize.width,
* android.sensor.info.activeArraySize.height) being the
* bottom-right point of the active pixel array. The weight
* 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>
*/
public static final Key<int[]> CONTROL_AWB_REGIONS =
new Key<int[]>("android.control.awbRegions", int[].class);
/**
* <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>
* @see #CONTROL_CAPTURE_INTENT_CUSTOM
* @see #CONTROL_CAPTURE_INTENT_PREVIEW
* @see #CONTROL_CAPTURE_INTENT_STILL_CAPTURE
* @see #CONTROL_CAPTURE_INTENT_VIDEO_RECORD
* @see #CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT
* @see #CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG
*/
public static final Key<Integer> CONTROL_CAPTURE_INTENT =
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>
* @see #CONTROL_EFFECT_MODE_OFF
* @see #CONTROL_EFFECT_MODE_MONO
* @see #CONTROL_EFFECT_MODE_NEGATIVE
* @see #CONTROL_EFFECT_MODE_SOLARIZE
* @see #CONTROL_EFFECT_MODE_SEPIA
* @see #CONTROL_EFFECT_MODE_POSTERIZE
* @see #CONTROL_EFFECT_MODE_WHITEBOARD
* @see #CONTROL_EFFECT_MODE_BLACKBOARD
* @see #CONTROL_EFFECT_MODE_AQUA
*/
public static final Key<Integer> CONTROL_EFFECT_MODE =
new Key<Integer>("android.control.effectMode", int.class);
/**
* <p>
* Overall mode of 3A control
* routines
* </p>
* @see #CONTROL_MODE_OFF
* @see #CONTROL_MODE_AUTO
* @see #CONTROL_MODE_USE_SCENE_MODE
*/
public static final Key<Integer> CONTROL_MODE =
new Key<Integer>("android.control.mode", int.class);
/**
* <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
* @see #CONTROL_SCENE_MODE_PORTRAIT
* @see #CONTROL_SCENE_MODE_LANDSCAPE
* @see #CONTROL_SCENE_MODE_NIGHT
* @see #CONTROL_SCENE_MODE_NIGHT_PORTRAIT
* @see #CONTROL_SCENE_MODE_THEATRE
* @see #CONTROL_SCENE_MODE_BEACH
* @see #CONTROL_SCENE_MODE_SNOW
* @see #CONTROL_SCENE_MODE_SUNSET
* @see #CONTROL_SCENE_MODE_STEADYPHOTO
* @see #CONTROL_SCENE_MODE_FIREWORKS
* @see #CONTROL_SCENE_MODE_SPORTS
* @see #CONTROL_SCENE_MODE_PARTY
* @see #CONTROL_SCENE_MODE_CANDLELIGHT
* @see #CONTROL_SCENE_MODE_BARCODE
*/
public static final Key<Integer> CONTROL_SCENE_MODE =
new Key<Integer>("android.control.sceneMode", int.class);
/**
* <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>
*/
public static final Key<Boolean> CONTROL_VIDEO_STABILIZATION_MODE =
new Key<Boolean>("android.control.videoStabilizationMode", boolean.class);
/**
* <p>
* Operation mode for edge
* enhancement
* </p>
* @see #EDGE_MODE_OFF
* @see #EDGE_MODE_FAST
* @see #EDGE_MODE_HIGH_QUALITY
*/
public static final Key<Integer> EDGE_MODE =
new Key<Integer>("android.edge.mode", int.class);
/**
* <p>
* Select flash operation mode
* </p>
* @see #FLASH_MODE_OFF
* @see #FLASH_MODE_SINGLE
* @see #FLASH_MODE_TORCH
*/
public static final Key<Integer> FLASH_MODE =
new Key<Integer>("android.flash.mode", int.class);
/**
* <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>
*/
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>
*/
public static final Key<Long> JPEG_GPS_TIMESTAMP =
new Key<Long>("android.jpeg.gpsTimestamp", long.class);
/**
* <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>
*/
public static final Key<Byte> JPEG_QUALITY =
new Key<Byte>("android.jpeg.quality", byte.class);
/**
* <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>
*/
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>
*/
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>
*/
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>
*/
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>
*/
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>
* @see #LENS_OPTICAL_STABILIZATION_MODE_OFF
* @see #LENS_OPTICAL_STABILIZATION_MODE_ON
*/
public static final Key<Integer> LENS_OPTICAL_STABILIZATION_MODE =
new Key<Integer>("android.lens.opticalStabilizationMode", int.class);
/**
* <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
*/
public static final Key<Integer> NOISE_REDUCTION_MODE =
new Key<Integer>("android.noiseReduction.mode", int.class);
/**
* <p>
* An application-specified ID for the current
* request. Must be maintained unchanged in output
* frame
* </p>
*
* @hide
*/
public static final Key<Integer> REQUEST_ID =
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
* (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
* 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
* 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
* 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
* larger than active pixel array. Width and height may be
* rounded to nearest larger supportable width, especially
* for raw output, where only a few fixed scales may be
* possible. The width and height of the crop region cannot
* be set to be smaller than floor( activeArraySize.width /
* android.scaler.maxDigitalZoom ) and floor(
* activeArraySize.height / android.scaler.maxDigitalZoom),
* 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>
* 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>
*/
public static final Key<Long> SENSOR_FRAME_DURATION =
new Key<Long>("android.sensor.frameDuration", long.class);
/**
* <p>
* Gain applied to image data. Must be
* implemented through analog gain only if set to values
* below 'maximum analog sensitivity'.
* </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
* should output just the basic fields or the full set of
* fields. Value must be one of the
* android.statistics.info.availableFaceDetectModes.
* </p>
* @see #STATISTICS_FACE_DETECT_MODE_OFF
* @see #STATISTICS_FACE_DETECT_MODE_SIMPLE
* @see #STATISTICS_FACE_DETECT_MODE_FULL
*/
public static final Key<Integer> STATISTICS_FACE_DETECT_MODE =
new Key<Integer>("android.statistics.faceDetectMode", int.class);
/**
* <p>
* Table mapping blue input values to output
* values
* </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>
*/
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>
* .The input range must be monotonically increasing
* with N, and values between entries should be linearly
* interpolated. 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>
*/
public static final Key<float[]> TONEMAP_CURVE_RED =
new Key<float[]>("android.tonemap.curveRed", float[].class);
/**
* @see #TONEMAP_MODE_CONTRAST_CURVE
* @see #TONEMAP_MODE_FAST
* @see #TONEMAP_MODE_HIGH_QUALITY
*/
public static final Key<Integer> TONEMAP_MODE =
new Key<Integer>("android.tonemap.mode", int.class);
/**
* <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>
*
* @hide
*/
public static final Key<Boolean> LED_TRANSMIT =
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
* compensation must not change until the lock is set to
* 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>
*/
public static final Key<Boolean> BLACK_LEVEL_LOCK =
new Key<Boolean>("android.blackLevel.lock", boolean.class);
/*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~
* End generated code
*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~O@*/
}

View File

@@ -34,73 +34,6 @@ import android.graphics.Rect;
*
*/
public final class CaptureResult extends CameraMetadata {
/**
* The timestamp representing the start of image capture, in nanoseconds.
* This corresponds to the timestamp available through
* {@link android.graphics.SurfaceTexture#getTimestamp SurfaceTexture.getTimestamp()}
* or {@link android.media.Image#getTimestamp Image.getTimestamp()} for this
* capture's image data.
*/
public static final Key<Long> SENSOR_TIMESTAMP =
new Key<Long>("android.sensor.timestamp", Long.TYPE);
/**
* The state of the camera device's auto-exposure algorithm. One of the
* CONTROL_AE_STATE_* enumerations.
*/
public static final Key<Integer> CONTROL_AE_STATE =
new Key<Integer>("android.control.aeState", Integer.TYPE);
/**
* The auto-exposure algorithm is inactive.
* @see CONTROL_AE_STATE
*/
public static final int CONTROL_AE_STATE_INACTIVE = 0;
/**
* The auto-exposure algorithm is currently searching for proper exposure.
* @see CONTROL_AE_STATE
*/
public static final int CONTROL_AE_STATE_SEARCHING = 1;
/**
* The auto-exposure algorithm has reached proper exposure values for the
* current scene.
* @see CONTROL_AE_STATE
*/
public static final int CONTROL_AE_STATE_CONVERGED = 2;
/**
* The auto-exposure algorithm has been locked to its current values.
* @see CONTROL_AE_STATE
*/
public static final int CONTROL_AE_STATE_LOCKED = 3;
/**
* The auto-exposure algorithm has reached proper exposure values as with
* CONTROL_AE_STATE_CONVERGED, but the scene is too dark to take a good
* quality image without firing the camera flash.
* @see CONTROL_AE_STATE
*/
public static final int CONTROL_AE_STATE_FLASH_REQUIRED = 4;
/**
* The precapture sequence of the auto-exposure algorithm has been triggered,
* and is underway.
* @see CONTROL_AE_STATE
*/
public static final int CONTROL_AE_STATE_PRECAPTURE =5;
/**
* The list of faces detected in this capture. Available if face detection
* was enabled for this capture
*/
public static final Key<Face[]> STATISTICS_DETECTED_FACES =
new Key<Face[]>("android.statistics.faces", Face[].class);
// TODO: Many many more
/**
* @hide
*/
@@ -114,7 +47,7 @@ public final class CaptureResult extends CameraMetadata {
/**
* <p>Bounds of the face. A rectangle relative to the sensor's
* {@link CameraProperties#SENSOR_ACTIVE_ARRAY_SIZE}, with (0,0)
* {@link CameraProperties#SENSOR_INFO_ACTIVE_ARRAY_SIZE}, with (0,0)
* representing the top-left corner of the active array rectangle.</p>
*/
public Rect getBounds() {
@@ -189,4 +122,807 @@ public final class CaptureResult extends CameraMetadata {
private Point mRightEye;
private Point mMouth;
}
/*@O~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~
* The key entries below this point are generated from metadata
* definitions in /system/media/camera/docs. Do not modify by hand or
* modify the comment blocks at the start or end.
*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/
/**
* <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
* androird.colorCorrection.mode is TRANSFORM_MATRIX.
* In the latter case, the HAL may round the matrix to account
* for precision issues; the final rounded matrix should be
* reported back in this matrix result metadata.
* </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
* 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>
* 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>
* The ID sent with the latest
* CAMERA2_TRIGGER_PRECAPTURE_METERING call
* </p>
* <p>
* Must be 0 if no
* CAMERA2_TRIGGER_PRECAPTURE_METERING trigger received yet
* by HAL. Always updated even if AE algorithm ignores the
* trigger
* </p>
*
* @hide
*/
public static final Key<Integer> CONTROL_AE_PRECAPTURE_ID =
new Key<Integer>("android.control.aePrecaptureId", int.class);
/**
* <p>
* List of areas to use for
* metering
* </p>
* <p>
* Each area is a rectangle plus weight: xmin, ymin,
* xmax, ymax, weight.
* </p><p>
* The coordinate system is based on the active pixel array,
* with (0,0) being the top-left of the active pixel array, and
* (android.sensor.info.activeArraySize.width,
* android.sensor.info.activeArraySize.height) being the
* bottom-right point of the active pixel array. The weight
* 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>
*/
public static final Key<int[]> CONTROL_AE_REGIONS =
new Key<int[]>("android.control.aeRegions", int[].class);
/**
* <p>
* Current state of AE algorithm
* </p>
* <p>
* Whenever the AE algorithm state changes, a
* MSG_AUTOEXPOSURE notification must be send if a
* notification callback is registered.
* </p>
* @see #CONTROL_AE_STATE_INACTIVE
* @see #CONTROL_AE_STATE_SEARCHING
* @see #CONTROL_AE_STATE_CONVERGED
* @see #CONTROL_AE_STATE_LOCKED
* @see #CONTROL_AE_STATE_FLASH_REQUIRED
* @see #CONTROL_AE_STATE_PRECAPTURE
*/
public static final Key<Integer> CONTROL_AE_STATE =
new Key<Integer>("android.control.aeState", int.class);
/**
* <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
* @see #CONTROL_AF_MODE_CONTINUOUS_VIDEO
* @see #CONTROL_AF_MODE_CONTINUOUS_PICTURE
* @see #CONTROL_AF_MODE_EDOF
*/
public static final Key<Integer> CONTROL_AF_MODE =
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,
* xmax, ymax, weight.
* </p><p>
* The coordinate system is based on the active pixel array,
* with (0,0) being the top-left of the active pixel array, and
* (android.sensor.info.activeArraySize.width,
* android.sensor.info.activeArraySize.height) being the
* bottom-right point of the active pixel array. The weight
* 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>
*/
public static final Key<int[]> CONTROL_AF_REGIONS =
new Key<int[]>("android.control.afRegions", int[].class);
/**
* <p>
* Current state of AF algorithm
* </p>
* <p>
* Whenever the AF algorithm state changes, a
* MSG_AUTOFOCUS notification must be send if a notification
* callback is registered.
* </p>
* @see #CONTROL_AF_STATE_INACTIVE
* @see #CONTROL_AF_STATE_PASSIVE_SCAN
* @see #CONTROL_AF_STATE_PASSIVE_FOCUSED
* @see #CONTROL_AF_STATE_ACTIVE_SCAN
* @see #CONTROL_AF_STATE_FOCUSED_LOCKED
* @see #CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
*/
public static final Key<Integer> CONTROL_AF_STATE =
new Key<Integer>("android.control.afState", int.class);
/**
* <p>
* The ID sent with the latest
* CAMERA2_TRIGGER_AUTOFOCUS call
* </p>
* <p>
* Must be 0 if no CAMERA2_TRIGGER_AUTOFOCUS trigger
* received yet by HAL. Always updated even if AF algorithm
* ignores the trigger
* </p>
*
* @hide
*/
public static final Key<Integer> CONTROL_AF_TRIGGER_ID =
new Key<Integer>("android.control.afTriggerId", int.class);
/**
* <p>
* Whether AWB is currently setting the color
* transform fields, and what its illumination target
* is
* </p>
* <p>
* [BC - AWB lock,AWB modes]
* </p>
* @see #CONTROL_AWB_MODE_OFF
* @see #CONTROL_AWB_MODE_AUTO
* @see #CONTROL_AWB_MODE_INCANDESCENT
* @see #CONTROL_AWB_MODE_FLUORESCENT
* @see #CONTROL_AWB_MODE_WARM_FLUORESCENT
* @see #CONTROL_AWB_MODE_DAYLIGHT
* @see #CONTROL_AWB_MODE_CLOUDY_DAYLIGHT
* @see #CONTROL_AWB_MODE_TWILIGHT
* @see #CONTROL_AWB_MODE_SHADE
*/
public static final Key<Integer> CONTROL_AWB_MODE =
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, xmax,
* ymax, weight. The coordinate system is based on the active
* pixel array, with (0,0) being the top-left of the active
* pixel array, and (android.sensor.info.activeArraySize.width,
* android.sensor.info.activeArraySize.height) being the
* bottom-right point of the active pixel array. The weight
* 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>
*/
public static final Key<int[]> CONTROL_AWB_REGIONS =
new Key<int[]>("android.control.awbRegions", int[].class);
/**
* <p>
* Current state of AWB algorithm
* </p>
* <p>
* Whenever the AWB algorithm state changes, a
* MSG_AUTOWHITEBALANCE notification must be send if a
* notification callback is registered.
* </p>
* @see #CONTROL_AWB_STATE_INACTIVE
* @see #CONTROL_AWB_STATE_SEARCHING
* @see #CONTROL_AWB_STATE_CONVERGED
* @see #CONTROL_AWB_STATE_LOCKED
*/
public static final Key<Integer> CONTROL_AWB_STATE =
new Key<Integer>("android.control.awbState", int.class);
/**
* <p>
* Overall mode of 3A control
* routines
* </p>
* @see #CONTROL_MODE_OFF
* @see #CONTROL_MODE_AUTO
* @see #CONTROL_MODE_USE_SCENE_MODE
*/
public static final Key<Integer> CONTROL_MODE =
new Key<Integer>("android.control.mode", int.class);
/**
* <p>
* Operation mode for edge
* enhancement
* </p>
* @see #EDGE_MODE_OFF
* @see #EDGE_MODE_FAST
* @see #EDGE_MODE_HIGH_QUALITY
*/
public static final Key<Integer> EDGE_MODE =
new Key<Integer>("android.edge.mode", int.class);
/**
* <p>
* Select flash operation mode
* </p>
* @see #FLASH_MODE_OFF
* @see #FLASH_MODE_SINGLE
* @see #FLASH_MODE_TORCH
*/
public static final Key<Integer> FLASH_MODE =
new Key<Integer>("android.flash.mode", int.class);
/**
* <p>
* Current state of the flash
* unit
* </p>
* @see #FLASH_STATE_UNAVAILABLE
* @see #FLASH_STATE_CHARGING
* @see #FLASH_STATE_READY
* @see #FLASH_STATE_FIRED
*/
public static final Key<Integer> FLASH_STATE =
new Key<Integer>("android.flash.state", int.class);
/**
* <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>
*/
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>
*/
public static final Key<Long> JPEG_GPS_TIMESTAMP =
new Key<Long>("android.jpeg.gpsTimestamp", long.class);
/**
* <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>
*/
public static final Key<Byte> JPEG_QUALITY =
new Key<Byte>("android.jpeg.quality", byte.class);
/**
* <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>
*/
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>
*/
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>
*/
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>
*/
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>
* Should be zero for fixed-focus cameras
* </p>
*/
public static final Key<Float> LENS_FOCUS_DISTANCE =
new Key<Float>("android.lens.focusDistance", float.class);
/**
* <p>
* The range of scene distances that are in
* sharp focus (depth of field)
* </p>
* <p>
* If variable focus not supported, can still report
* fixed depth of field range
* </p>
*/
public static final Key<Float> LENS_FOCUS_RANGE =
new Key<Float>("android.lens.focusRange", float.class);
/**
* <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
*/
public static final Key<Integer> LENS_OPTICAL_STABILIZATION_MODE =
new Key<Integer>("android.lens.opticalStabilizationMode", int.class);
/**
* <p>
* Current lens status
* </p>
* @see #LENS_STATE_STATIONARY
*/
public static final Key<Integer> LENS_STATE =
new Key<Integer>("android.lens.state", int.class);
/**
* <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
*/
public static final Key<Integer> NOISE_REDUCTION_MODE =
new Key<Integer>("android.noiseReduction.mode", int.class);
/**
* <p>
* Number of frames captured since
* open()
* </p>
* <p>
* Reset on release()
* </p>
*/
public static final Key<Integer> REQUEST_FRAME_COUNT =
new Key<Integer>("android.request.frameCount", int.class);
/**
* <p>
* An application-specified ID for the current
* request. Must be maintained unchanged in output
* frame
* </p>
*
* @hide
*/
public static final Key<Integer> REQUEST_ID =
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
* (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
* 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
* 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
* 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
* larger than active pixel array. Width and height may be
* rounded to nearest larger supportable width, especially
* for raw output, where only a few fixed scales may be
* possible. The width and height of the crop region cannot
* be set to be smaller than floor( activeArraySize.width /
* android.scaler.maxDigitalZoom ) and floor(
* activeArraySize.height / android.scaler.maxDigitalZoom),
* 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>
* 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>
*/
public static final Key<Long> SENSOR_FRAME_DURATION =
new Key<Long>("android.sensor.frameDuration", long.class);
/**
* <p>
* Gain applied to image data. Must be
* implemented through analog gain only if set to values
* below 'maximum analog sensitivity'.
* </p>
* <p>
* ISO 12232:2006 REI method
* </p>
*/
public static final Key<Integer> SENSOR_SENSITIVITY =
new Key<Integer>("android.sensor.sensitivity", int.class);
/**
* <p>
* Time at start of exposure of first
* row
* </p>
* <p>
* Monotonic, should be synced to other timestamps in
* system
* </p>
*/
public static final Key<Long> SENSOR_TIMESTAMP =
new Key<Long>("android.sensor.timestamp", long.class);
/**
* <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>
* @see #STATISTICS_FACE_DETECT_MODE_OFF
* @see #STATISTICS_FACE_DETECT_MODE_SIMPLE
* @see #STATISTICS_FACE_DETECT_MODE_FULL
*/
public static final Key<Integer> STATISTICS_FACE_DETECT_MODE =
new Key<Integer>("android.statistics.faceDetectMode", int.class);
/**
* <p>
* List of unique IDs for detected
* faces
* </p>
* <p>
* Only available if faceDetectMode == FULL
* </p>
*/
public static final Key<int[]> STATISTICS_FACE_IDS =
new Key<int[]>("android.statistics.faceIds", int[].class);
/**
* <p>
* List of landmarks for detected
* faces
* </p>
* <p>
* Only available if faceDetectMode == FULL
* </p>
*/
public static final Key<int[]> STATISTICS_FACE_LANDMARKS =
new Key<int[]>("android.statistics.faceLandmarks", int[].class);
/**
* <p>
* List of the bounding rectangles for detected
* faces
* </p>
* <p>
* Only available if faceDetectMode != OFF
* </p>
*/
public static final Key<android.graphics.Rect[]> STATISTICS_FACE_RECTANGLES =
new Key<android.graphics.Rect[]>("android.statistics.faceRectangles", android.graphics.Rect[].class);
/**
* <p>
* List of the face confidence scores for
* detected faces
* </p>
* <p>
* Only available if faceDetectMode != OFF
* </p>
*/
public static final Key<byte[]> STATISTICS_FACE_SCORES =
new Key<byte[]>("android.statistics.faceScores", byte[].class);
/**
* <p>
* A low-resolution map of lens shading, per
* color channel
* </p>
* <p>
* Assume bilinear interpolation of map. The least
* shaded section of the image should have a gain factor
* of 1; all other sections should have gains above 1.
* the map should be on the order of 30-40 rows, and
* must be smaller than 64x64.
* </p>
*/
public static final Key<float[]> STATISTICS_LENS_SHADING_MAP =
new Key<float[]>("android.statistics.lensShadingMap", float[].class);
/**
* <p>
* The best-fit color channel gains calculated
* by the HAL's statistics units for the current output frame
* </p>
* <p>
* This may be different than the gains used for this frame,
* since statistics processing on data from a new frame
* typically completes after the transform has already been
* applied to that frame.
* </p><p>
* The 4 channel gains are defined in Bayer domain,
* see android.colorCorrection.gains for details.
* </p>
*/
public static final Key<float[]> STATISTICS_PREDICTED_COLOR_GAINS =
new Key<float[]>("android.statistics.predictedColorGains", float[].class);
/**
* <p>
* The best-fit color transform matrix estimate
* calculated by the HAL's statistics units for the current
* output frame
* </p>
* <p>
* The HAL must provide the estimate from its
* statistics unit on the white balance transforms to use
* for the next frame. These are the values the HAL believes
* are the best fit for the current output frame. This may
* be different than the transform used for this frame, since
* statistics processing on data from a new frame typically
* completes after the transform has already been applied to
* that frame.
* </p><p>
* These estimates must be provided for all frames, even if
* capture settings and color transforms are set by the application.
* </p>
*/
public static final Key<Rational[]> STATISTICS_PREDICTED_COLOR_TRANSFORM =
new Key<Rational[]>("android.statistics.predictedColorTransform", Rational[].class);
/**
* <p>
* The HAL estimated scene illumination lighting
* frequency
* </p>
* <p>
* Report NONE if there doesn't appear to be flickering
* illumination
* </p>
* @see #STATISTICS_SCENE_FLICKER_NONE
* @see #STATISTICS_SCENE_FLICKER_50HZ
* @see #STATISTICS_SCENE_FLICKER_60HZ
*/
public static final Key<Integer> STATISTICS_SCENE_FLICKER =
new Key<Integer>("android.statistics.sceneFlicker", int.class);
/**
* <p>
* Table mapping blue input values to output
* values
* </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>
*/
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>
* .The input range must be monotonically increasing
* with N, and values between entries should be linearly
* interpolated. 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>
*/
public static final Key<float[]> TONEMAP_CURVE_RED =
new Key<float[]>("android.tonemap.curveRed", float[].class);
/**
* @see #TONEMAP_MODE_CONTRAST_CURVE
* @see #TONEMAP_MODE_FAST
* @see #TONEMAP_MODE_HIGH_QUALITY
*/
public static final Key<Integer> TONEMAP_MODE =
new Key<Integer>("android.tonemap.mode", int.class);
/**
* <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>
*
* @hide
*/
public static final Key<Boolean> LED_TRANSMIT =
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
* compensation must not change until the lock is set to
* 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>
*/
public static final Key<Boolean> BLACK_LEVEL_LOCK =
new Key<Boolean>("android.blackLevel.lock", boolean.class);
/*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~
* End generated code
*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~O@*/
}