Android.Hardware.Camera2.CaptureResult Members

The members of Android.Hardware.Camera2.CaptureResult are listed below.

See Also: Inherited members from Android.Hardware.Camera2.CameraMetadata

Protected Constructors

A constructor used when creating managed representations of JNI objects; called by the runtime.

Public Properties

[read-only]
static
BlackLevelLockCaptureResult.Key.
[read-only]
static
ColorCorrectionAberrationModeCaptureResult.Key.
[read-only]
static
ColorCorrectionGainsCaptureResult.Key.
[read-only]
static
ColorCorrectionModeCaptureResult.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
ColorCorrectionTransformCaptureResult.Key.
[read-only]
static
ControlAeAntibandingModeCaptureResult.Key.
[read-only]
static
ControlAeExposureCompensationCaptureResult.Key.
[read-only]
static
ControlAeLockCaptureResult.Key.
  1. Starting in auto-AE mode:
  2. Lock AE
  3. Wait for the first result to be output that has the AE locked
  4. Copy exposure settings from that result into a request, set the request to manual AE
  5. Submit the capture request, proceed to run manual AE as desired.
[read-only]
static
ControlAeModeCaptureResult.Key.
[read-only]
static
ControlAePrecaptureTriggerCaptureResult.Key.
[read-only]
static
ControlAeRegionsCaptureResult.Key.
[read-only]
static
ControlAeStateCaptureResult.Key.
StateTransition CauseNew StateNotes
INACTIVEINACTIVECamera device auto exposure algorithm is disabled
StateTransition CauseNew StateNotes
INACTIVECamera device initiates AE scanSEARCHINGValues changing
INACTIVECaptureRequest.ControlAeLock is ONLOCKEDValues locked
SEARCHINGCamera device finishes AE scanCONVERGEDGood values, not changing
SEARCHINGCamera device finishes AE scanFLASH_REQUIREDConverged but too dark w/o flash
SEARCHINGCaptureRequest.ControlAeLock is ONLOCKEDValues locked
CONVERGEDCamera device initiates AE scanSEARCHINGValues changing
CONVERGEDCaptureRequest.ControlAeLock is ONLOCKEDValues locked
FLASH_REQUIREDCamera device initiates AE scanSEARCHINGValues changing
FLASH_REQUIREDCaptureRequest.ControlAeLock is ONLOCKEDValues locked
LOCKEDCaptureRequest.ControlAeLock is OFFSEARCHINGValues not good after unlock
LOCKEDCaptureRequest.ControlAeLock is OFFCONVERGEDValues good after unlock
LOCKEDCaptureRequest.ControlAeLock is OFFFLASH_REQUIREDExposure good, but too dark
PRECAPTURESequence done. CaptureRequest.ControlAeLock is OFFCONVERGEDReady for high-quality capture
PRECAPTURESequence done. CaptureRequest.ControlAeLock is ONLOCKEDReady for high-quality capture
Any stateCaptureRequest.ControlAePrecaptureTrigger is STARTPRECAPTUREStart AE precapture metering sequence
StateTransition CauseNew StateNotes
INACTIVECamera device finished AE scanCONVERGEDValues are already good, transient states are skipped by camera device.
Any stateCaptureRequest.ControlAePrecaptureTrigger is START, sequence doneFLASH_REQUIREDConverged but too dark w/o flash after a precapture sequence, transient states are skipped by camera device.
Any stateCaptureRequest.ControlAePrecaptureTrigger is START, sequence doneCONVERGEDConverged after a precapture sequence, transient states are skipped by camera device.
CONVERGEDCamera device finished AE scanFLASH_REQUIREDConverged but too dark w/o flash after a new scan, transient states are skipped by camera device.
FLASH_REQUIREDCamera device finished AE scanCONVERGEDConverged after a new scan, transient states are skipped by camera device.
[read-only]
static
ControlAeTargetFpsRangeCaptureResult.Key.
[read-only]
static
ControlAfModeCaptureResult.Key.
[read-only]
static
ControlAfRegionsCaptureResult.Key.
[read-only]
static
ControlAfStateCaptureResult.Key.
StateTransition CauseNew StateNotes
INACTIVEINACTIVENever changes
StateTransition CauseNew StateNotes
INACTIVEAF_TRIGGERACTIVE_SCANStart AF sweep, Lens now moving
ACTIVE_SCANAF sweep doneFOCUSED_LOCKEDFocused, Lens now locked
ACTIVE_SCANAF sweep doneNOT_FOCUSED_LOCKEDNot focused, Lens now locked
ACTIVE_SCANAF_CANCELINACTIVECancel/reset AF, Lens now locked
FOCUSED_LOCKEDAF_CANCELINACTIVECancel/reset AF
FOCUSED_LOCKEDAF_TRIGGERACTIVE_SCANStart new sweep, Lens now moving
NOT_FOCUSED_LOCKEDAF_CANCELINACTIVECancel/reset AF
NOT_FOCUSED_LOCKEDAF_TRIGGERACTIVE_SCANStart new sweep, Lens now moving
Any stateMode changeINACTIVE
StateTransition CauseNew StateNotes
INACTIVEAF_TRIGGERFOCUSED_LOCKEDFocus is already good or good after a scan, lens is now locked.
INACTIVEAF_TRIGGERNOT_FOCUSED_LOCKEDFocus failed after a scan, lens is now locked.
FOCUSED_LOCKEDAF_TRIGGERFOCUSED_LOCKEDFocus is already good or good after a scan, lens is now locked.
NOT_FOCUSED_LOCKEDAF_TRIGGERFOCUSED_LOCKEDFocus is good after a scan, lens is not locked.
StateTransition CauseNew StateNotes
INACTIVECamera device initiates new scanPASSIVE_SCANStart AF scan, Lens now moving
INACTIVEAF_TRIGGERNOT_FOCUSED_LOCKEDAF state query, Lens now locked
PASSIVE_SCANCamera device completes current scanPASSIVE_FOCUSEDEnd AF scan, Lens now locked
PASSIVE_SCANCamera device fails current scanPASSIVE_UNFOCUSEDEnd AF scan, Lens now locked
PASSIVE_SCANAF_TRIGGERFOCUSED_LOCKEDImmediate transition, if focus is good. Lens now locked
PASSIVE_SCANAF_TRIGGERNOT_FOCUSED_LOCKEDImmediate transition, if focus is bad. Lens now locked
PASSIVE_SCANAF_CANCELINACTIVEReset lens position, Lens now locked
PASSIVE_FOCUSEDCamera device initiates new scanPASSIVE_SCANStart AF scan, Lens now moving
PASSIVE_UNFOCUSEDCamera device initiates new scanPASSIVE_SCANStart AF scan, Lens now moving
PASSIVE_FOCUSEDAF_TRIGGERFOCUSED_LOCKEDImmediate transition, lens now locked
PASSIVE_UNFOCUSEDAF_TRIGGERNOT_FOCUSED_LOCKEDImmediate transition, lens now locked
FOCUSED_LOCKEDAF_TRIGGERFOCUSED_LOCKEDNo effect
FOCUSED_LOCKEDAF_CANCELINACTIVERestart AF scan
NOT_FOCUSED_LOCKEDAF_TRIGGERNOT_FOCUSED_LOCKEDNo effect
NOT_FOCUSED_LOCKEDAF_CANCELINACTIVERestart AF scan
StateTransition CauseNew StateNotes
INACTIVECamera device initiates new scanPASSIVE_SCANStart AF scan, Lens now moving
INACTIVEAF_TRIGGERNOT_FOCUSED_LOCKEDAF state query, Lens now locked
PASSIVE_SCANCamera device completes current scanPASSIVE_FOCUSEDEnd AF scan, Lens now locked
PASSIVE_SCANCamera device fails current scanPASSIVE_UNFOCUSEDEnd AF scan, Lens now locked
PASSIVE_SCANAF_TRIGGERFOCUSED_LOCKEDEventual transition once the focus is good. Lens now locked
PASSIVE_SCANAF_TRIGGERNOT_FOCUSED_LOCKEDEventual transition if cannot find focus. Lens now locked
PASSIVE_SCANAF_CANCELINACTIVEReset lens position, Lens now locked
PASSIVE_FOCUSEDCamera device initiates new scanPASSIVE_SCANStart AF scan, Lens now moving
PASSIVE_UNFOCUSEDCamera device initiates new scanPASSIVE_SCANStart AF scan, Lens now moving
PASSIVE_FOCUSEDAF_TRIGGERFOCUSED_LOCKEDImmediate trans. Lens now locked
PASSIVE_UNFOCUSEDAF_TRIGGERNOT_FOCUSED_LOCKEDImmediate trans. Lens now locked
FOCUSED_LOCKEDAF_TRIGGERFOCUSED_LOCKEDNo effect
FOCUSED_LOCKEDAF_CANCELINACTIVERestart AF scan
NOT_FOCUSED_LOCKEDAF_TRIGGERNOT_FOCUSED_LOCKEDNo effect
NOT_FOCUSED_LOCKEDAF_CANCELINACTIVERestart AF scan
StateTransition CauseNew StateNotes
any stateCAF-->AUTO mode switchINACTIVEMode switch without trigger, initial state must be INACTIVE
any stateCAF-->AUTO mode switch with AF_TRIGGERtrigger-reachable states from INACTIVEMode switch with trigger, INACTIVE is skipped
any stateAUTO-->CAF mode switchpassively reachable states from INACTIVEMode switch without trigger, passive transient state is skipped
[read-only]
static
ControlAfTriggerCaptureResult.Key.
[read-only]
static
ControlAwbLockCaptureResult.Key.
  1. Starting in auto-AWB mode:
  2. Lock AWB
  3. Wait for the first result to be output that has the AWB locked
  4. Copy AWB settings from that result into a request, set the request to manual AWB
  5. Submit the capture request, proceed to run manual AWB as desired.
[read-only]
static
ControlAwbModeCaptureResult.Key.
[read-only]
static
ControlAwbRegionsCaptureResult.Key.
[read-only]
static
ControlAwbStateCaptureResult.Key.
StateTransition CauseNew StateNotes
INACTIVEINACTIVECamera device auto white balance algorithm is disabled
StateTransition CauseNew StateNotes
INACTIVECamera device initiates AWB scanSEARCHINGValues changing
INACTIVECaptureRequest.ControlAwbLock is ONLOCKEDValues locked
SEARCHINGCamera device finishes AWB scanCONVERGEDGood values, not changing
SEARCHINGCaptureRequest.ControlAwbLock is ONLOCKEDValues locked
CONVERGEDCamera device initiates AWB scanSEARCHINGValues changing
CONVERGEDCaptureRequest.ControlAwbLock is ONLOCKEDValues locked
LOCKEDCaptureRequest.ControlAwbLock is OFFSEARCHINGValues not good after unlock
StateTransition CauseNew StateNotes
INACTIVECamera device finished AWB scanCONVERGEDValues are already good, transient states are skipped by camera device.
LOCKEDCaptureRequest.ControlAwbLock is OFFCONVERGEDValues good after unlock, transient states are skipped by camera device.
[read-only]
static
ControlCaptureIntentCaptureResult.Key.
[read-only]
static
ControlEffectModeCaptureResult.Key.
[read-only]
static
ControlModeCaptureResult.Key.
[read-only]
static
ControlSceneModeCaptureResult.Key.
[read-only]
static
ControlVideoStabilizationModeCaptureResult.Key.
[read-only]
static
EdgeModeCaptureResult.Key.
[read-only]
static
FlashModeCaptureResult.Key.
[read-only]
static
FlashStateCaptureResult.Key.
[read-only]
FrameNumberlong. Get the frame number associated with this result.
[read-only]
static
HotPixelModeCaptureResult.Key.
[read-only]
static
JpegGpsLocationCaptureResult.Key.
[read-only]
static
JpegOrientationCaptureResult.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
JpegQualityCaptureResult.Key.
[read-only]
static
JpegThumbnailQualityCaptureResult.Key.
[read-only]
static
JpegThumbnailSizeCaptureResult.Key.
[read-only]
static
LensApertureCaptureResult.Key.
[read-only]
static
LensFilterDensityCaptureResult.Key.
[read-only]
static
LensFocalLengthCaptureResult.Key.
[read-only]
static
LensFocusDistanceCaptureResult.Key.
[read-only]
static
LensFocusRangeCaptureResult.Key.
[read-only]
static
LensOpticalStabilizationModeCaptureResult.Key.
[read-only]
static
LensStateCaptureResult.Key.
[read-only]
static
NoiseReductionModeCaptureResult.Key.
[read-only]
RequestCaptureRequest. Get the request associated with this result.
[read-only]
static
RequestPipelineDepthCaptureResult.Key.
[read-only]
static
ScalerCropRegionCaptureResult.Key.
[read-only]
static
SensorExposureTimeCaptureResult.Key.
[read-only]
static
SensorFrameDurationCaptureResult.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.
  1. Let the set of currently configured input/output streams be called S.
  2. 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.
  3. 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
SensorGreenSplitCaptureResult.Key.
  1. 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.
  2. The arithmetic mean of the green channels from the red rows (mean_Gr) within W is computed.
  3. The arithmetic mean of the green channels from the blue rows (mean_Gb) within W is computed.
  4. 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
SensorNeutralColorPointCaptureResult.Key.
[read-only]
static
SensorNoiseProfileCaptureResult.Key.
[read-only]
static
SensorRollingShutterSkewCaptureResult.Key.
[read-only]
static
SensorSensitivityCaptureResult.Key.
[read-only]
static
SensorTestPatternDataCaptureResult.Key.
[read-only]
static
SensorTestPatternModeCaptureResult.Key.
[read-only]
static
SensorTimestampCaptureResult.Key.
[read-only]
SequenceIdint. The sequence ID for this failure that was returned by the CameraCaptureSession.Capture(CaptureRequest, .CaptureCallback, .CaptureCallback) family of functions.
[read-only]
static
ShadingModeCaptureResult.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
StatisticsFaceDetectModeCaptureResult.Key.
[read-only]
static
StatisticsFacesCaptureResult.Key.
[read-only]
static
StatisticsHotPixelMapCaptureResult.Key.
[read-only]
static
StatisticsHotPixelMapModeCaptureResult.Key.
[read-only]
static
StatisticsLensShadingCorrectionMapCaptureResult.Key.
[read-only]
static
StatisticsLensShadingMapModeCaptureResult.Key.
[read-only]
static
StatisticsSceneFlickerCaptureResult.Key.
[read-only]
static
TonemapCurveCaptureResult.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
TonemapModeCaptureResult.Key.

Protected Properties

[read-only]
override
ThresholdClassIntPtr. This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.
[read-only]
override
ThresholdTypeType. This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.

Public Methods

Get(CaptureResult.Key) : Java.Lang.Object
Documentation for this section has not yet been entered.