[read-only] static | BlackLevelLock | CaptureResult.Key. |
[read-only] static | ColorCorrectionAberrationMode | CaptureResult.Key. |
[read-only] static | ColorCorrectionGains | CaptureResult.Key. |
[read-only] static | ColorCorrectionMode | CaptureResult.Key. java Example android.colorCorrection.gains = [ R G_even G_odd B ]
java Example android.colorCorrection.transform = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
java Example r' = I0r + I1g + I2b
g' = I3r + I4g + I5b
b' = I6r + I7g + I8b
|
[read-only] static | ColorCorrectionTransform | CaptureResult.Key. |
[read-only] static | ControlAeAntibandingMode | CaptureResult.Key. |
[read-only] static | ControlAeExposureCompensation | CaptureResult.Key. |
[read-only] static | ControlAeLock | CaptureResult.Key. - Starting in auto-AE mode:
- Lock AE
- Wait for the first result to be output that has the AE locked
- Copy exposure settings from that result into a request, set the request to manual AE
- Submit the capture request, proceed to run manual AE as desired.
|
[read-only] static | ControlAeMode | CaptureResult.Key. |
[read-only] static | ControlAePrecaptureTrigger | CaptureResult.Key. |
[read-only] static | ControlAeRegions | CaptureResult.Key. |
[read-only] static | ControlAeState | CaptureResult.Key. State | Transition Cause | New State | Notes |
---|
INACTIVE | | INACTIVE | Camera device auto exposure algorithm is disabled |
State | Transition Cause | New State | Notes |
---|
INACTIVE | Camera device finished AE scan | CONVERGED | Values are already good, transient states are skipped by camera device. | Any state | CaptureRequest.ControlAePrecaptureTrigger is START, sequence done | FLASH_REQUIRED | Converged but too dark w/o flash after a precapture sequence, transient states are skipped by camera device. | Any state | CaptureRequest.ControlAePrecaptureTrigger is START, sequence done | CONVERGED | Converged after a precapture sequence, transient states are skipped by camera device. | CONVERGED | Camera device finished AE scan | FLASH_REQUIRED | Converged but too dark w/o flash after a new scan, transient states are skipped by camera device. | FLASH_REQUIRED | Camera device finished AE scan | CONVERGED | Converged after a new scan, transient states are skipped by camera device. |
|
[read-only] static | ControlAeTargetFpsRange | CaptureResult.Key. |
[read-only] static | ControlAfMode | CaptureResult.Key. |
[read-only] static | ControlAfRegions | CaptureResult.Key. |
[read-only] static | ControlAfState | CaptureResult.Key. State | Transition Cause | New State | Notes |
---|
INACTIVE | | INACTIVE | Never changes |
State | Transition Cause | New State | Notes |
---|
INACTIVE | AF_TRIGGER | ACTIVE_SCAN | Start AF sweep, Lens now moving | ACTIVE_SCAN | AF sweep done | FOCUSED_LOCKED | Focused, Lens now locked | ACTIVE_SCAN | AF sweep done | NOT_FOCUSED_LOCKED | Not focused, Lens now locked | ACTIVE_SCAN | AF_CANCEL | INACTIVE | Cancel/reset AF, Lens now locked | FOCUSED_LOCKED | AF_CANCEL | INACTIVE | Cancel/reset AF | FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | Start new sweep, Lens now moving | NOT_FOCUSED_LOCKED | AF_CANCEL | INACTIVE | Cancel/reset AF | NOT_FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | Start new sweep, Lens now moving | Any state | Mode change | INACTIVE | |
State | Transition Cause | New State | Notes |
---|
INACTIVE | AF_TRIGGER | FOCUSED_LOCKED | Focus is already good or good after a scan, lens is now locked. | INACTIVE | AF_TRIGGER | NOT_FOCUSED_LOCKED | Focus failed after a scan, lens is now locked. | FOCUSED_LOCKED | AF_TRIGGER | FOCUSED_LOCKED | Focus is already good or good after a scan, lens is now locked. | NOT_FOCUSED_LOCKED | AF_TRIGGER | FOCUSED_LOCKED | Focus is good after a scan, lens is not locked. |
State | Transition Cause | New State | Notes |
---|
INACTIVE | Camera device initiates new scan | PASSIVE_SCAN | Start AF scan, Lens now moving | INACTIVE | AF_TRIGGER | NOT_FOCUSED_LOCKED | AF state query, Lens now locked | PASSIVE_SCAN | Camera device completes current scan | PASSIVE_FOCUSED | End AF scan, Lens now locked | PASSIVE_SCAN | Camera device fails current scan | PASSIVE_UNFOCUSED | End AF scan, Lens now locked | PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | Immediate transition, if focus is good. Lens now locked | PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | Immediate transition, if focus is bad. Lens now locked | PASSIVE_SCAN | AF_CANCEL | INACTIVE | Reset lens position, Lens now locked | PASSIVE_FOCUSED | Camera device initiates new scan | PASSIVE_SCAN | Start AF scan, Lens now moving | PASSIVE_UNFOCUSED | Camera device initiates new scan | PASSIVE_SCAN | Start AF scan, Lens now moving | PASSIVE_FOCUSED | AF_TRIGGER | FOCUSED_LOCKED | Immediate transition, lens now locked | PASSIVE_UNFOCUSED | AF_TRIGGER | NOT_FOCUSED_LOCKED | Immediate transition, lens now locked | FOCUSED_LOCKED | AF_TRIGGER | FOCUSED_LOCKED | No effect | FOCUSED_LOCKED | AF_CANCEL | INACTIVE | Restart AF scan | NOT_FOCUSED_LOCKED | AF_TRIGGER | NOT_FOCUSED_LOCKED | No effect | NOT_FOCUSED_LOCKED | AF_CANCEL | INACTIVE | Restart AF scan |
State | Transition Cause | New State | Notes |
---|
INACTIVE | Camera device initiates new scan | PASSIVE_SCAN | Start AF scan, Lens now moving | INACTIVE | AF_TRIGGER | NOT_FOCUSED_LOCKED | AF state query, Lens now locked | PASSIVE_SCAN | Camera device completes current scan | PASSIVE_FOCUSED | End AF scan, Lens now locked | PASSIVE_SCAN | Camera device fails current scan | PASSIVE_UNFOCUSED | End AF scan, Lens now locked | PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | Eventual transition once the focus is good. Lens now locked | PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | Eventual transition if cannot find focus. Lens now locked | PASSIVE_SCAN | AF_CANCEL | INACTIVE | Reset lens position, Lens now locked | PASSIVE_FOCUSED | Camera device initiates new scan | PASSIVE_SCAN | Start AF scan, Lens now moving | PASSIVE_UNFOCUSED | Camera device initiates new scan | PASSIVE_SCAN | Start AF scan, Lens now moving | PASSIVE_FOCUSED | AF_TRIGGER | FOCUSED_LOCKED | Immediate trans. Lens now locked | PASSIVE_UNFOCUSED | AF_TRIGGER | NOT_FOCUSED_LOCKED | Immediate trans. Lens now locked | FOCUSED_LOCKED | AF_TRIGGER | FOCUSED_LOCKED | No effect | FOCUSED_LOCKED | AF_CANCEL | INACTIVE | Restart AF scan | NOT_FOCUSED_LOCKED | AF_TRIGGER | NOT_FOCUSED_LOCKED | No effect | NOT_FOCUSED_LOCKED | AF_CANCEL | INACTIVE | Restart AF scan |
State | Transition Cause | New State | Notes |
---|
any state | CAF-->AUTO mode switch | INACTIVE | Mode switch without trigger, initial state must be INACTIVE | any state | CAF-->AUTO mode switch with AF_TRIGGER | trigger-reachable states from INACTIVE | Mode switch with trigger, INACTIVE is skipped | any state | AUTO-->CAF mode switch | passively reachable states from INACTIVE | Mode switch without trigger, passive transient state is skipped |
|
[read-only] static | ControlAfTrigger | CaptureResult.Key. |
[read-only] static | ControlAwbLock | CaptureResult.Key. - Starting in auto-AWB mode:
- Lock AWB
- Wait for the first result to be output that has the AWB locked
- Copy AWB settings from that result into a request, set the request to manual AWB
- Submit the capture request, proceed to run manual AWB as desired.
|
[read-only] static | ControlAwbMode | CaptureResult.Key. |
[read-only] static | ControlAwbRegions | CaptureResult.Key. |
[read-only] static | ControlAwbState | CaptureResult.Key. State | Transition Cause | New State | Notes |
---|
INACTIVE | | INACTIVE | Camera device auto white balance algorithm is disabled |
State | Transition Cause | New State | Notes |
---|
INACTIVE | Camera device finished AWB scan | CONVERGED | Values are already good, transient states are skipped by camera device. | LOCKED | CaptureRequest.ControlAwbLock is OFF | CONVERGED | Values good after unlock, transient states are skipped by camera device. |
|
[read-only] static | ControlCaptureIntent | CaptureResult.Key. |
[read-only] static | ControlEffectMode | CaptureResult.Key. |
[read-only] static | ControlMode | CaptureResult.Key. |
[read-only] static | ControlSceneMode | CaptureResult.Key. |
[read-only] static | ControlVideoStabilizationMode | CaptureResult.Key. |
[read-only] static | EdgeMode | CaptureResult.Key. |
[read-only] static | FlashMode | CaptureResult.Key. |
[read-only] static | FlashState | CaptureResult.Key. |
[read-only] | FrameNumber | long. Get the frame number associated with this result. |
[read-only] static | HotPixelMode | CaptureResult.Key. |
[read-only] static | JpegGpsLocation | CaptureResult.Key. |
[read-only] static | JpegOrientation | CaptureResult.Key. java Example private int getJpegOrientation(CameraCharacteristics c, int deviceOrientation) {
if (deviceOrientation == android.view.OrientationEventListener.ORIENTATION_UNKNOWN) return 0;
int sensorOrientation = c.get(CameraCharacteristics.SENSOR_ORIENTATION);
// Round device orientation to a multiple of 90
deviceOrientation = (deviceOrientation + 45) / 90 * 90;
// Reverse device orientation for front-facing cameras
boolean facingFront = c.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT;
if (facingFront) deviceOrientation = -deviceOrientation;
// Calculate desired JPEG orientation relative to camera orientation to make
// the image upright relative to the device orientation
int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;
return jpegOrientation;
}
|
[read-only] static | JpegQuality | CaptureResult.Key. |
[read-only] static | JpegThumbnailQuality | CaptureResult.Key. |
[read-only] static | JpegThumbnailSize | CaptureResult.Key. |
[read-only] static | LensAperture | CaptureResult.Key. |
[read-only] static | LensFilterDensity | CaptureResult.Key. |
[read-only] static | LensFocalLength | CaptureResult.Key. |
[read-only] static | LensFocusDistance | CaptureResult.Key. |
[read-only] static | LensFocusRange | CaptureResult.Key. |
[read-only] static | LensOpticalStabilizationMode | CaptureResult.Key. |
[read-only] static | LensState | CaptureResult.Key. |
[read-only] static | NoiseReductionMode | CaptureResult.Key. |
[read-only] | Request | CaptureRequest. Get the request associated with this result. |
[read-only] static | RequestPipelineDepth | CaptureResult.Key. |
[read-only] static | ScalerCropRegion | CaptureResult.Key. |
[read-only] static | SensorExposureTime | CaptureResult.Key. |
[read-only] static | SensorFrameDuration | CaptureResult.Key. - Requested resolutions of output image streams
- Availability of binning / skipping modes on the imager
- The bandwidth of the imager interface
- The bandwidth of the various ISP processing blocks
- The image sensor is always configured to output the smallest
resolution possible given the application's requested output stream
sizes. The smallest resolution is defined as being at least as large
as the largest requested output stream size; the camera pipeline must
never digitally upsample sensor data when the crop region covers the
whole sensor. In general, this means that if only small output stream
resolutions are configured, the sensor can provide a higher frame
rate.
- Since any request may use any or all the currently configured
output streams, the sensor and ISP must be configured to support
scaling a single capture to all the streams at the same time. This
means the camera pipeline must be ready to produce the largest
requested output size without any delay. Therefore, the overall
frame rate of a given configured stream set is governed only by the
largest requested stream resolution.
- Using more than one output stream in a request does not affect the
frame duration.
- Certain format-streams may need to do additional background processing
before data is consumed/produced by that stream. These processors
can run concurrently to the rest of the camera pipeline, but
cannot process more than 1 capture at a time.
- Let the set of currently configured input/output streams
be called S.
- Find the minimum frame durations for each stream in S, by
looking it up in CameraCharacteristics.ScalerStreamConfigurationMap using
StreamConfigurationMap#getOutputMinFrameDuration(int, Size) (with
its respective size/format). Let this set of frame durations be called
F.
- For any given request R, the minimum frame duration allowed
for R is the maximum out of all values in F. Let the streams
used in R be called S_r.
|
[read-only] static | SensorGreenSplit | CaptureResult.Key. - A 5x5 pixel (or larger) window W within the active sensor array is
chosen. The term 'pixel' here is taken to mean a group of 4 Bayer
mosaic channels (R, Gr, Gb, B). The location and size of the window
chosen is implementation defined, and should be chosen to provide a
green split estimate that is both representative of the entire image
for this camera sensor, and can be calculated quickly.
- The arithmetic mean of the green channels from the red
rows (mean_Gr) within W is computed.
- The arithmetic mean of the green channels from the blue
rows (mean_Gb) within W is computed.
- The maximum ratio R of the two means is computed as follows:
R = max((mean_Gr + 1)/(mean_Gb + 1), (mean_Gb + 1)/(mean_Gr + 1))
- R < 1.03 is a negligible split (<3% divergence).
- 1.20 <= R >= 1.03 will require some software
correction to avoid demosaic errors (3-20% divergence).
- R > 1.20 will require strong software correction to produce
a usuable image (>20% divergence).
|
[read-only] static | SensorNeutralColorPoint | CaptureResult.Key. |
[read-only] static | SensorNoiseProfile | CaptureResult.Key. |
[read-only] static | SensorRollingShutterSkew | CaptureResult.Key. |
[read-only] static | SensorSensitivity | CaptureResult.Key. |
[read-only] static | SensorTestPatternData | CaptureResult.Key. |
[read-only] static | SensorTestPatternMode | CaptureResult.Key. |
[read-only] static | SensorTimestamp | CaptureResult.Key. |
[read-only] | SequenceId | int. The sequence ID for this failure that was returned by the
CameraCaptureSession.Capture(CaptureRequest, .CaptureCallback, .CaptureCallback) family of functions. |
[read-only] static | ShadingMode | CaptureResult.Key. java Example [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ]
|
[read-only] static | StatisticsFaceDetectMode | CaptureResult.Key. |
[read-only] static | StatisticsFaces | CaptureResult.Key. |
[read-only] static | StatisticsHotPixelMap | CaptureResult.Key. |
[read-only] static | StatisticsHotPixelMapMode | CaptureResult.Key. |
[read-only] static | StatisticsLensShadingCorrectionMap | CaptureResult.Key. |
[read-only] static | StatisticsLensShadingMapMode | CaptureResult.Key. |
[read-only] static | StatisticsSceneFlicker | CaptureResult.Key. |
[read-only] static | TonemapCurve | CaptureResult.Key. java Example curveRed =
[ P0(in, out), P1(in, out), P2(in, out), P3(in, out), ..., PN(in, out) ]
2 <= N <= android.tonemap.maxCurvePoints java Example curveRed = [ (0, 0), (1.0, 1.0) ]
java Example curveRed = [ (0, 1.0), (1.0, 0) ]
java Example curveRed = [
(0.0000, 0.0000), (0.0667, 0.2920), (0.1333, 0.4002), (0.2000, 0.4812),
(0.2667, 0.5484), (0.3333, 0.6069), (0.4000, 0.6594), (0.4667, 0.7072),
(0.5333, 0.7515), (0.6000, 0.7928), (0.6667, 0.8317), (0.7333, 0.8685),
(0.8000, 0.9035), (0.8667, 0.9370), (0.9333, 0.9691), (1.0000, 1.0000) ]
java Example curveRed = [
(0.0000, 0.0000), (0.0667, 0.2864), (0.1333, 0.4007), (0.2000, 0.4845),
(0.2667, 0.5532), (0.3333, 0.6125), (0.4000, 0.6652), (0.4667, 0.7130),
(0.5333, 0.7569), (0.6000, 0.7977), (0.6667, 0.8360), (0.7333, 0.8721),
(0.8000, 0.9063), (0.8667, 0.9389), (0.9333, 0.9701), (1.0000, 1.0000) ]
|
[read-only] static | TonemapMode | CaptureResult.Key. |