><a href="#dynamic_android.control.postRawSensitivityBoost">android.control.postRawSensitivityBoost</a></li>
<li
><a href="#dynamic_android.control.enableZsl">android.control.enableZsl</a></li>
+ <li
+ ><a href="#dynamic_android.control.afSceneChange">android.control.afSceneChange</a></li>
</ul>
</li>
</ul> <!-- toc_section -->
><a href="#static_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a></li>
<li
><a href="#static_android.lens.radialDistortion">android.lens.radialDistortion</a></li>
+ <li
+ ><a href="#static_android.lens.poseReference">android.lens.poseReference</a></li>
</ul>
</li>
<li>
><a href="#static_android.request.availableResultKeys">android.request.availableResultKeys</a></li>
<li
><a href="#static_android.request.availableCharacteristicsKeys">android.request.availableCharacteristicsKeys</a></li>
+ <li
+ ><a href="#static_android.request.availableSessionKeys">android.request.availableSessionKeys</a></li>
+ <li
+ ><a href="#static_android.request.availablePhysicalCameraRequestKeys">android.request.availablePhysicalCameraRequestKeys</a></li>
</ul>
</li>
<li>
><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
<li
><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
+ <li
+ ><a href="#controls_android.statistics.oisDataMode">android.statistics.oisDataMode</a></li>
</ul>
</li>
<li>
><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a></li>
<li
><a href="#static_android.statistics.info.availableLensShadingMapModes">android.statistics.info.availableLensShadingMapModes</a></li>
+ <li
+ ><a href="#static_android.statistics.info.availableOisDataModes">android.statistics.info.availableOisDataModes</a></li>
</ul>
</li>
><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a></li>
<li
><a href="#dynamic_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
+ <li
+ ><a href="#dynamic_android.statistics.oisDataMode">android.statistics.oisDataMode</a></li>
+ <li
+ ><a href="#dynamic_android.statistics.oisTimestamps">android.statistics.oisTimestamps</a></li>
+ <li
+ ><a href="#dynamic_android.statistics.oisXShifts">android.statistics.oisXShifts</a></li>
+ <li
+ ><a href="#dynamic_android.statistics.oisYShifts">android.statistics.oisYShifts</a></li>
+ <li
+ ><a href="#dynamic_android.statistics.oisSamples">android.statistics.oisSamples</a></li>
</ul>
</li>
</ul> <!-- toc_section -->
<ul class="toc_section">
<li
><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
+ <li
+ ><a href="#static_android.info.version">android.info.version</a></li>
</ul>
</li>
</ul> <!-- toc_section -->
</li>
</ul> <!-- toc_section -->
</li>
+ <li>
+ <span class="toc_section_header"><a href="#section_logicalMultiCamera">logicalMultiCamera</a></span>
+ <ul class="toc_section">
+ <li>
+ <span class="toc_kind_header">static</span>
+ <ul class="toc_section">
+ <li
+ ><a href="#static_android.logicalMultiCamera.physicalIds">android.logicalMultiCamera.physicalIds</a></li>
+ <li
+ ><a href="#static_android.logicalMultiCamera.sensorSyncType">android.logicalMultiCamera.sensorSyncType</a></li>
+ </ul>
+ </li>
+ </ul> <!-- toc_section -->
+ </li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
+ <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
<p>All advanced white balance adjustments (not specified
this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Color correction processing must not slow down
capture rate relative to sensor raw output.<wbr/></p>
<p>Advanced white balance adjustments above and beyond
(or defaults if AWB has never been run).<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Color correction processing operates at improved
quality but the capture rate might be reduced (relative to sensor
raw output rate)</p>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
relative to sensor raw output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
reduced (relative to sensor raw output rate)</p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
+ <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
<p>All advanced white balance adjustments (not specified
this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Color correction processing must not slow down
capture rate relative to sensor raw output.<wbr/></p>
<p>Advanced white balance adjustments above and beyond
(or defaults if AWB has never been run).<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Color correction processing operates at improved
quality but the capture rate might be reduced (relative to sensor
raw output rate)</p>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
relative to sensor raw output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
reduced (relative to sensor raw output rate)</p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
avoid banding problems.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">50HZ</span>
+ <span class="entry_type_enum_name">50HZ (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">60HZ</span>
+ <span class="entry_type_enum_name">60HZ (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
avoid banding problems with 60Hz illumination
sources.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AUTO</span>
+ <span class="entry_type_enum_name">AUTO (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
antibanding routine to the current illumination
condition.<wbr/> This is the default mode if AUTO is
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
is free to update its parameters.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
must not update the exposure and sensitivity parameters
while the lock is active.<wbr/></p>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
<p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
override attempts to use this value to ON.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
with no flash control.<wbr/></p>
<p>The application's values for
android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
+ <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
<span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
the camera's flash unit,<wbr/> firing it in low-light
conditions.<wbr/></p>
STILL_<wbr/>CAPTURE</p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
+ <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
<span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
the camera's flash unit,<wbr/> always firing it for still
captures.<wbr/></p>
STILL_<wbr/>CAPTURE</p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
+ <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
reduction.<wbr/></p>
<p>If deemed necessary by the camera device,<wbr/> a red eye
reduction flash will fire during the precapture
sequence.<wbr/></p></span>
</li>
+ <li>
+ <span class="entry_type_enum_name">ON_EXTERNAL_FLASH (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>An external flash has been turned on.<wbr/></p>
+<p>It informs the camera device that an external flash has been turned on,<wbr/> and that
+metering (and continuous focus if active) should be quickly recaculated to account
+for the external flash.<wbr/> Otherwise,<wbr/> this mode acts like ON.<wbr/></p>
+<p>When the external flash is turned off,<wbr/> AE mode should be changed to one of the
+other available AE modes.<wbr/></p>
+<p>If the camera device supports AE external flash mode,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must
+be FLASH_<wbr/>REQUIRED after the camera device finishes AE scan and it's too dark without
+flash.<wbr/></p></span>
+ </li>
</ul>
</td> <!-- entry_type -->
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">IDLE</span>
+ <span class="entry_type_enum_name">IDLE (v3.2)</span>
<span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">START</span>
+ <span class="entry_type_enum_name">START (v3.2)</span>
<span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
by the camera device.<wbr/></p>
<p>The exact effect of the precapture trigger depends on
the current AE mode and state.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CANCEL</span>
+ <span class="entry_type_enum_name">CANCEL (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
precapture metering sequence,<wbr/> the auto-exposure routine will return to its
initial state.<wbr/></p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
application.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AUTO</span>
+ <span class="entry_type_enum_name">AUTO (v3.2)</span>
<span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
<p>In this mode,<wbr/> the lens does not move unless
the autofocus trigger action is called.<wbr/> When that trigger
and sets the AF state to INACTIVE.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MACRO</span>
+ <span class="entry_type_enum_name">MACRO (v3.2)</span>
<span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
<p>In this mode,<wbr/> the lens does not move unless the
autofocus trigger action is called.<wbr/> When that trigger is
INACTIVE.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
+ <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
<span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
position continually to attempt to provide a
constantly-in-focus image stream.<wbr/></p>
canceled.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
+ <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
<span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
position continually to attempt to provide a
constantly-in-focus image stream.<wbr/></p>
has just been started.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">EDOF</span>
+ <span class="entry_type_enum_name">EDOF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
<p>The camera device will produce images with an extended
depth of field automatically; no special focusing
is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
ignored.<wbr/></p>
<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
-camera device.<wbr/></p>
+camera device.<wbr/> The capture result will either be a zero weight region as well,<wbr/> or
+the region selected by the camera device as the focus area of interest.<wbr/></p>
<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
region and output only the intersection rectangle as the metering region in the result
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">IDLE</span>
+ <span class="entry_type_enum_name">IDLE (v3.2)</span>
<span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">START</span>
+ <span class="entry_type_enum_name">START (v3.2)</span>
<span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CANCEL</span>
+ <span class="entry_type_enum_name">CANCEL (v3.2)</span>
<span class="entry_type_enum_notes"><p>Autofocus will return to its initial
state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
algorithm is free to update its parameters if in AUTO
mode.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
algorithm will not update its parameters while the lock
is active.<wbr/></p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
<p>The application-selected color transform matrix
(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
device for manual white balance control.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AUTO</span>
+ <span class="entry_type_enum_name">AUTO (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">INCANDESCENT</span>
+ <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses incandescent light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FLUORESCENT</span>
+ <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses fluorescent light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
+ <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses warm fluorescent light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">DAYLIGHT</span>
+ <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses daylight light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
+ <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses cloudy daylight light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">TWILIGHT</span>
+ <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses twilight light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SHADE</span>
+ <span class="entry_type_enum_name">SHADE (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses shade light as the assumed scene
illumination for white balance.<wbr/></p>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">CUSTOM</span>
+ <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
<span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
categories.<wbr/> The camera device will default to preview-like
behavior.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PREVIEW</span>
+ <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
<p>The precapture trigger may be used to start off a metering
w/<wbr/>flash sequence.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">STILL_CAPTURE</span>
+ <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a still capture-type
use case.<wbr/></p>
<p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">VIDEO_RECORD</span>
+ <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a video recording
use case.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
+ <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
image while recording video) use case.<wbr/></p>
<p>The camera device should take the highest-quality image
frame rate of video recording.<wbr/> </p></span>
</li>
<li>
- <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+ <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
application will stream full-resolution images and
reprocess one or several later for a final
capture.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MANUAL</span>
+ <span class="entry_type_enum_name">MANUAL (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for manual capture use case where
the applications want to directly control the capture parameters.<wbr/></p>
<p>For example,<wbr/> the application may wish to manually control
<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> etc.<wbr/></p></span>
</li>
+ <li>
+ <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>This request is for a motion tracking use case,<wbr/> where
+the application will use camera and inertial sensor data to
+locate and track objects in the world.<wbr/></p>
+<p>The camera device auto-exposure routine will limit the exposure time
+of the camera to no more than 20 milliseconds,<wbr/> to minimize motion blur.<wbr/></p></span>
+ </li>
</ul>
</td> <!-- entry_type -->
<td class="entry_details" colspan="6">
<p>This control (except for MANUAL) is only effective if
<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
-<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
-contains PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/> MANUAL will be supported if
-<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains MANUAL_<wbr/>SENSOR.<wbr/> Other intent values are
-always supported.<wbr/></p>
+<p>All intents are supported by all devices,<wbr/> except that:
+ * ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
+PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/>
+ * MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
+MANUAL_<wbr/>SENSOR.<wbr/>
+ * MOTION_<wbr/>TRACKING will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
+MOTION_<wbr/>TRACKING.<wbr/></p>
</td>
</tr>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MONO</span>
+ <span class="entry_type_enum_name">MONO (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
a single color.<wbr/></p>
<p>This will typically be grayscale.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">NEGATIVE</span>
+ <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
are inverted.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SOLARIZE</span>
+ <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
image is wholly or partially reversed in
tone.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SEPIA</span>
+ <span class="entry_type_enum_name">SEPIA (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">POSTERIZE</span>
+ <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
discrete regions of tone rather than a continuous
gradient of tones.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">WHITEBOARD</span>
+ <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">BLACKBOARD</span>
+ <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AQUA</span>
+ <span class="entry_type_enum_name">AQUA (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
<p>All control by the device's metering and focusing (3A)
routines is disabled,<wbr/> and no other settings in
can be immediately applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AUTO</span>
+ <span class="entry_type_enum_name">AUTO (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
<p>Manual control of capture parameters is disabled.<wbr/> All
controls in android.<wbr/>control.<wbr/>* besides sceneMode take
effect.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">USE_SCENE_MODE</span>
+ <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
<p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
contain some modes other than DISABLED).<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
+ <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
used by camera device background auto-exposure,<wbr/> auto-white balance and
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">DISABLED</span>
+ <span class="entry_type_enum_name">DISABLED (v3.2)</span>
<span class="entry_type_enum_value">0</span>
<span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FACE_PRIORITY</span>
+ <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
auto-exposure routines.<wbr/></p>
remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ACTION</span>
+ <span class="entry_type_enum_name">ACTION (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
<p>Similar to SPORTS.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PORTRAIT</span>
+ <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">LANDSCAPE</span>
+ <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">NIGHT</span>
+ <span class="entry_type_enum_name">NIGHT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
+ <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
settings.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">THEATRE</span>
+ <span class="entry_type_enum_name">THEATRE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
remain off.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">BEACH</span>
+ <span class="entry_type_enum_name">BEACH (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SNOW</span>
+ <span class="entry_type_enum_name">SNOW (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SUNSET</span>
+ <span class="entry_type_enum_name">SUNSET (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">STEADYPHOTO</span>
+ <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
device motion (for example: due to hand shake).<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FIREWORKS</span>
+ <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SPORTS</span>
+ <span class="entry_type_enum_name">SPORTS (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
<p>Similar to ACTION.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PARTY</span>
+ <span class="entry_type_enum_name">PARTY (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
people.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CANDLELIGHT</span>
+ <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
is a flame.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">BARCODE</span>
+ <span class="entry_type_enum_name">BARCODE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
for use by camera applications that wish to read the
barcode value.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_SPEED_VIDEO</span>
+ <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
<span class="entry_type_enum_deprecated">[deprecated]</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HDR</span>
+ <span class="entry_type_enum_name">HDR (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
<p>In this scene mode,<wbr/> the camera device captures images
the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT</span>
+ <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_hidden">[hidden]</span>
<span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">DEVICE_CUSTOM_START</span>
+ <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_hidden">[hidden]</span>
<span class="entry_type_enum_value">100</span>
customized scene modes.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">DEVICE_CUSTOM_END</span>
+ <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_hidden">[hidden]</span>
<span class="entry_type_enum_value">127</span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FALSE</span>
+ <span class="entry_type_enum_name">FALSE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
after previous requests.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">TRUE</span>
+ <span class="entry_type_enum_name">TRUE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
captured before previous requests.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FALSE</span>
+ <span class="entry_type_enum_name">FALSE (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">TRUE</span>
+ <span class="entry_type_enum_name">TRUE (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FALSE</span>
+ <span class="entry_type_enum_name">FALSE (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">TRUE</span>
+ <span class="entry_type_enum_name">TRUE (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
avoid banding problems.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">50HZ</span>
+ <span class="entry_type_enum_name">50HZ (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">60HZ</span>
+ <span class="entry_type_enum_name">60HZ (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
avoid banding problems with 60Hz illumination
sources.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AUTO</span>
+ <span class="entry_type_enum_name">AUTO (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
antibanding routine to the current illumination
condition.<wbr/> This is the default mode if AUTO is
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
is free to update its parameters.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
must not update the exposure and sensitivity parameters
while the lock is active.<wbr/></p>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
<p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
override attempts to use this value to ON.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
with no flash control.<wbr/></p>
<p>The application's values for
android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
+ <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
<span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
the camera's flash unit,<wbr/> firing it in low-light
conditions.<wbr/></p>
STILL_<wbr/>CAPTURE</p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
+ <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
<span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
the camera's flash unit,<wbr/> always firing it for still
captures.<wbr/></p>
STILL_<wbr/>CAPTURE</p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
+ <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
reduction.<wbr/></p>
<p>If deemed necessary by the camera device,<wbr/> a red eye
reduction flash will fire during the precapture
sequence.<wbr/></p></span>
</li>
+ <li>
+ <span class="entry_type_enum_name">ON_EXTERNAL_FLASH (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>An external flash has been turned on.<wbr/></p>
+<p>It informs the camera device that an external flash has been turned on,<wbr/> and that
+metering (and continuous focus if active) should be quickly recaculated to account
+for the external flash.<wbr/> Otherwise,<wbr/> this mode acts like ON.<wbr/></p>
+<p>When the external flash is turned off,<wbr/> AE mode should be changed to one of the
+other available AE modes.<wbr/></p>
+<p>If the camera device supports AE external flash mode,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must
+be FLASH_<wbr/>REQUIRED after the camera device finishes AE scan and it's too dark without
+flash.<wbr/></p></span>
+ </li>
</ul>
</td> <!-- entry_type -->
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">IDLE</span>
+ <span class="entry_type_enum_name">IDLE (v3.2)</span>
<span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">START</span>
+ <span class="entry_type_enum_name">START (v3.2)</span>
<span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
by the camera device.<wbr/></p>
<p>The exact effect of the precapture trigger depends on
the current AE mode and state.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CANCEL</span>
+ <span class="entry_type_enum_name">CANCEL (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
precapture metering sequence,<wbr/> the auto-exposure routine will return to its
initial state.<wbr/></p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">INACTIVE</span>
+ <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
<span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/></p>
<p>When a camera device is opened,<wbr/> it starts in
this state.<wbr/> This is a transient state,<wbr/> the camera device may skip reporting
this state in capture result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SEARCHING</span>
+ <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
<span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
for the current scene.<wbr/></p>
<p>This is a transient state,<wbr/> the camera device may skip
reporting this state in capture result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CONVERGED</span>
+ <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
<span class="entry_type_enum_notes"><p>AE has a good set of control values for the
current scene.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">LOCKED</span>
+ <span class="entry_type_enum_name">LOCKED (v3.2)</span>
<span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FLASH_REQUIRED</span>
+ <span class="entry_type_enum_name">FLASH_REQUIRED (v3.2)</span>
<span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
needs to be fired for good quality still
capture.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PRECAPTURE</span>
+ <span class="entry_type_enum_name">PRECAPTURE (v3.2)</span>
<span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
and is currently executing it.<wbr/></p>
<p>Precapture can be triggered through setting
</tr>
</tbody>
</table>
-<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
+<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON*:</p>
<table>
<thead>
<tr>
</tr>
</tbody>
</table>
+<p>If the camera device supports AE external flash mode (ON_<wbr/>EXTERNAL_<wbr/>FLASH is included in
+<a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a>),<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must be FLASH_<wbr/>REQUIRED after
+the camera device finishes AE scan and it's too dark without flash.<wbr/></p>
<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
can be skipped in that manner is called a transient state.<wbr/></p>
-<p>For example,<wbr/> for above AE modes (AE_<wbr/>MODE_<wbr/>ON_<wbr/>*),<wbr/> in addition to the state transitions
+<p>For example,<wbr/> for above AE modes (AE_<wbr/>MODE_<wbr/>ON*),<wbr/> in addition to the state transitions
listed in above table,<wbr/> it is also legal for the camera device to skip one or more
transient states between two results.<wbr/> See below table for examples:</p>
<table>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
application.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AUTO</span>
+ <span class="entry_type_enum_name">AUTO (v3.2)</span>
<span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
<p>In this mode,<wbr/> the lens does not move unless
the autofocus trigger action is called.<wbr/> When that trigger
and sets the AF state to INACTIVE.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MACRO</span>
+ <span class="entry_type_enum_name">MACRO (v3.2)</span>
<span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
<p>In this mode,<wbr/> the lens does not move unless the
autofocus trigger action is called.<wbr/> When that trigger is
INACTIVE.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
+ <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
<span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
position continually to attempt to provide a
constantly-in-focus image stream.<wbr/></p>
canceled.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
+ <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
<span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
position continually to attempt to provide a
constantly-in-focus image stream.<wbr/></p>
has just been started.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">EDOF</span>
+ <span class="entry_type_enum_name">EDOF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
<p>The camera device will produce images with an extended
depth of field automatically; no special focusing
is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
ignored.<wbr/></p>
<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
-camera device.<wbr/></p>
+camera device.<wbr/> The capture result will either be a zero weight region as well,<wbr/> or
+the region selected by the camera device as the focus area of interest.<wbr/></p>
<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
region and output only the intersection rectangle as the metering region in the result
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">IDLE</span>
+ <span class="entry_type_enum_name">IDLE (v3.2)</span>
<span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">START</span>
+ <span class="entry_type_enum_name">START (v3.2)</span>
<span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CANCEL</span>
+ <span class="entry_type_enum_name">CANCEL (v3.2)</span>
<span class="entry_type_enum_notes"><p>Autofocus will return to its initial
state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">INACTIVE</span>
+ <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
<span class="entry_type_enum_notes"><p>AF is off or has not yet tried to scan/<wbr/>been asked
to scan.<wbr/></p>
<p>When a camera device is opened,<wbr/> it starts in this
result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PASSIVE_SCAN</span>
+ <span class="entry_type_enum_name">PASSIVE_SCAN (v3.2)</span>
<span class="entry_type_enum_notes"><p>AF is currently performing an AF scan initiated the
camera device in a continuous autofocus mode.<wbr/></p>
<p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
capture result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
+ <span class="entry_type_enum_name">PASSIVE_FOCUSED (v3.2)</span>
<span class="entry_type_enum_notes"><p>AF currently believes it is in focus,<wbr/> but may
restart scanning at any time.<wbr/></p>
<p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
capture result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ACTIVE_SCAN</span>
+ <span class="entry_type_enum_name">ACTIVE_SCAN (v3.2)</span>
<span class="entry_type_enum_notes"><p>AF is performing an AF scan because it was
triggered by AF trigger.<wbr/></p>
<p>Only used by AUTO or MACRO AF modes.<wbr/> This is a transient
capture result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
+ <span class="entry_type_enum_name">FOCUSED_LOCKED (v3.2)</span>
<span class="entry_type_enum_notes"><p>AF believes it is focused correctly and has locked
focus.<wbr/></p>
<p>This state is reached only after an explicit START AF trigger has been
a new AF trigger is sent to the camera device (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>).<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
+ <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED (v3.2)</span>
<span class="entry_type_enum_notes"><p>AF has failed to focus successfully and has locked
focus.<wbr/></p>
<p>This state is reached only after an explicit START AF trigger has been
a new AF trigger is sent to the camera device (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>).<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
+ <span class="entry_type_enum_name">PASSIVE_UNFOCUSED (v3.2)</span>
<span class="entry_type_enum_notes"><p>AF finished a passive scan without finding focus,<wbr/>
and may restart scanning at any time.<wbr/></p>
<p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient state,<wbr/> the camera
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
algorithm is free to update its parameters if in AUTO
mode.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
algorithm will not update its parameters while the lock
is active.<wbr/></p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
<p>The application-selected color transform matrix
(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
device for manual white balance control.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AUTO</span>
+ <span class="entry_type_enum_name">AUTO (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">INCANDESCENT</span>
+ <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses incandescent light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FLUORESCENT</span>
+ <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses fluorescent light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
+ <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses warm fluorescent light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">DAYLIGHT</span>
+ <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses daylight light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
+ <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses cloudy daylight light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">TWILIGHT</span>
+ <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses twilight light as the assumed scene
illumination for white balance.<wbr/></p>
will be available in the capture result for this request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SHADE</span>
+ <span class="entry_type_enum_name">SHADE (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses shade light as the assumed scene
illumination for white balance.<wbr/></p>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">CUSTOM</span>
+ <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
<span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
categories.<wbr/> The camera device will default to preview-like
behavior.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PREVIEW</span>
+ <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
<p>The precapture trigger may be used to start off a metering
w/<wbr/>flash sequence.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">STILL_CAPTURE</span>
+ <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a still capture-type
use case.<wbr/></p>
<p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">VIDEO_RECORD</span>
+ <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a video recording
use case.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
+ <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
image while recording video) use case.<wbr/></p>
<p>The camera device should take the highest-quality image
frame rate of video recording.<wbr/> </p></span>
</li>
<li>
- <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+ <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
application will stream full-resolution images and
reprocess one or several later for a final
capture.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MANUAL</span>
+ <span class="entry_type_enum_name">MANUAL (v3.2)</span>
<span class="entry_type_enum_notes"><p>This request is for manual capture use case where
the applications want to directly control the capture parameters.<wbr/></p>
<p>For example,<wbr/> the application may wish to manually control
<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> etc.<wbr/></p></span>
</li>
+ <li>
+ <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>This request is for a motion tracking use case,<wbr/> where
+the application will use camera and inertial sensor data to
+locate and track objects in the world.<wbr/></p>
+<p>The camera device auto-exposure routine will limit the exposure time
+of the camera to no more than 20 milliseconds,<wbr/> to minimize motion blur.<wbr/></p></span>
+ </li>
</ul>
</td> <!-- entry_type -->
<td class="entry_details" colspan="6">
<p>This control (except for MANUAL) is only effective if
<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
-<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
-contains PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/> MANUAL will be supported if
-<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains MANUAL_<wbr/>SENSOR.<wbr/> Other intent values are
-always supported.<wbr/></p>
+<p>All intents are supported by all devices,<wbr/> except that:
+ * ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
+PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/>
+ * MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
+MANUAL_<wbr/>SENSOR.<wbr/>
+ * MOTION_<wbr/>TRACKING will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
+MOTION_<wbr/>TRACKING.<wbr/></p>
</td>
</tr>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">INACTIVE</span>
+ <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
<span class="entry_type_enum_notes"><p>AWB is not in auto mode,<wbr/> or has not yet started metering.<wbr/></p>
<p>When a camera device is opened,<wbr/> it starts in this
state.<wbr/> This is a transient state,<wbr/> the camera device may
result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SEARCHING</span>
+ <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
<span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
values for the current scene.<wbr/></p>
<p>This is a transient state,<wbr/> the camera device
may skip reporting this state in capture result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CONVERGED</span>
+ <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
<span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
current scene.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">LOCKED</span>
+ <span class="entry_type_enum_name">LOCKED (v3.2)</span>
<span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MONO</span>
+ <span class="entry_type_enum_name">MONO (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
a single color.<wbr/></p>
<p>This will typically be grayscale.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">NEGATIVE</span>
+ <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
are inverted.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SOLARIZE</span>
+ <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
image is wholly or partially reversed in
tone.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SEPIA</span>
+ <span class="entry_type_enum_name">SEPIA (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">POSTERIZE</span>
+ <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
discrete regions of tone rather than a continuous
gradient of tones.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">WHITEBOARD</span>
+ <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">BLACKBOARD</span>
+ <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AQUA</span>
+ <span class="entry_type_enum_name">AQUA (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
<p>All control by the device's metering and focusing (3A)
routines is disabled,<wbr/> and no other settings in
can be immediately applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">AUTO</span>
+ <span class="entry_type_enum_name">AUTO (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
<p>Manual control of capture parameters is disabled.<wbr/> All
controls in android.<wbr/>control.<wbr/>* besides sceneMode take
effect.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">USE_SCENE_MODE</span>
+ <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
<p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
contain some modes other than DISABLED).<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
+ <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
used by camera device background auto-exposure,<wbr/> auto-white balance and
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">DISABLED</span>
+ <span class="entry_type_enum_name">DISABLED (v3.2)</span>
<span class="entry_type_enum_value">0</span>
<span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FACE_PRIORITY</span>
+ <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
auto-exposure routines.<wbr/></p>
remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ACTION</span>
+ <span class="entry_type_enum_name">ACTION (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
<p>Similar to SPORTS.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PORTRAIT</span>
+ <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">LANDSCAPE</span>
+ <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">NIGHT</span>
+ <span class="entry_type_enum_name">NIGHT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
+ <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
settings.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">THEATRE</span>
+ <span class="entry_type_enum_name">THEATRE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
remain off.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">BEACH</span>
+ <span class="entry_type_enum_name">BEACH (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SNOW</span>
+ <span class="entry_type_enum_name">SNOW (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SUNSET</span>
+ <span class="entry_type_enum_name">SUNSET (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">STEADYPHOTO</span>
+ <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
device motion (for example: due to hand shake).<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FIREWORKS</span>
+ <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SPORTS</span>
+ <span class="entry_type_enum_name">SPORTS (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
<p>Similar to ACTION.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PARTY</span>
+ <span class="entry_type_enum_name">PARTY (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
people.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CANDLELIGHT</span>
+ <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
is a flame.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">BARCODE</span>
+ <span class="entry_type_enum_name">BARCODE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
for use by camera applications that wish to read the
barcode value.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_SPEED_VIDEO</span>
+ <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
<span class="entry_type_enum_deprecated">[deprecated]</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HDR</span>
+ <span class="entry_type_enum_name">HDR (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
<p>In this scene mode,<wbr/> the camera device captures images
the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT</span>
+ <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_hidden">[hidden]</span>
<span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">DEVICE_CUSTOM_START</span>
+ <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_hidden">[hidden]</span>
<span class="entry_type_enum_value">100</span>
customized scene modes.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">DEVICE_CUSTOM_END</span>
+ <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_hidden">[hidden]</span>
<span class="entry_type_enum_value">127</span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FALSE</span>
+ <span class="entry_type_enum_name">FALSE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
after previous requests.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">TRUE</span>
+ <span class="entry_type_enum_name">TRUE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
captured before previous requests.<wbr/></p></span>
</li>
<tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
<!-- end of entry -->
+
+ <tr class="entry" id="dynamic_android.control.afSceneChange">
+ <td class="entry_name
+ " rowspan="3">
+ android.<wbr/>control.<wbr/>af<wbr/>Scene<wbr/>Change
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name entry_type_name_enum">byte</span>
+
+ <span class="entry_type_visibility"> [public]</span>
+
+
+
+
+
+ <ul class="entry_type_enum">
+ <li>
+ <span class="entry_type_enum_name">NOT_DETECTED (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>Scene change is not detected within the AF region(s).<wbr/></p></span>
+ </li>
+ <li>
+ <span class="entry_type_enum_name">DETECTED (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>Scene change is detected within the AF region(s).<wbr/></p></span>
+ </li>
+ </ul>
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>Whether a significant scene change is detected within the currently-set AF
+region(s).<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ </td>
+
+ <td class="entry_range">
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>When the camera focus routine detects a change in the scene it is looking at,<wbr/>
+such as a large shift in camera viewpoint,<wbr/> significant motion in the scene,<wbr/> or a
+significant illumination change,<wbr/> this value will be set to DETECTED for a single capture
+result.<wbr/> Otherwise the value will be NOT_<wbr/>DETECTED.<wbr/> The threshold for detection is similar
+to what would trigger a new passive focus scan to begin in CONTINUOUS autofocus modes.<wbr/></p>
+<p>This key will be available if the camera device advertises this key via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
<!-- end of kind -->
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
Bayer RAW output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Improved processing quality but the frame rate might be slowed down
relative to raw output.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
slow down frame rate relative to sensor.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+ <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
slow down frame rate relative to sensor.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+ <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SINGLE</span>
+ <span class="entry_type_enum_name">SINGLE (v3.2)</span>
<span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
for this capture.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">TORCH</span>
+ <span class="entry_type_enum_name">TORCH (v3.2)</span>
<span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FALSE</span>
+ <span class="entry_type_enum_name">FALSE (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">TRUE</span>
+ <span class="entry_type_enum_name">TRUE (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SINGLE</span>
+ <span class="entry_type_enum_name">SINGLE (v3.2)</span>
<span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
for this capture.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">TORCH</span>
+ <span class="entry_type_enum_name">TORCH (v3.2)</span>
<span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">UNAVAILABLE</span>
+ <span class="entry_type_enum_name">UNAVAILABLE (v3.2)</span>
<span class="entry_type_enum_notes"><p>No flash on camera.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CHARGING</span>
+ <span class="entry_type_enum_name">CHARGING (v3.2)</span>
<span class="entry_type_enum_notes"><p>Flash is charging and cannot be fired.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">READY</span>
+ <span class="entry_type_enum_name">READY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Flash is ready to fire.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FIRED</span>
+ <span class="entry_type_enum_name">FIRED (v3.2)</span>
<span class="entry_type_enum_notes"><p>Flash fired for this capture.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PARTIAL</span>
+ <span class="entry_type_enum_name">PARTIAL (v3.2)</span>
<span class="entry_type_enum_notes"><p>Flash partially illuminated this frame.<wbr/></p>
<p>This is usually due to the next or previous frame having
the flash fire,<wbr/> and the flash spilling into this capture
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
<p>The frame rate must not be reduced relative to sensor raw output
for this option.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
rate relative to sensor raw output.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
<p>The frame rate must not be reduced relative to sensor raw output
for this option.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
rate relative to sensor raw output.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">UNCALIBRATED</span>
+ <span class="entry_type_enum_name">UNCALIBRATED (v3.2)</span>
<span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/></p>
<p>Setting the lens to the same focus distance on separate occasions may
represents the farthest focus.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">APPROXIMATE</span>
+ <span class="entry_type_enum_name">APPROXIMATE (v3.2)</span>
<span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/></p>
<p>However,<wbr/> setting the lens to the same focus distance
on separate occasions may result in a different real
mechanism,<wbr/> and the device temperature.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CALIBRATED</span>
+ <span class="entry_type_enum_name">CALIBRATED (v3.2)</span>
<span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters,<wbr/> and
is calibrated.<wbr/></p>
<p>The lens mechanism is calibrated so that setting the
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FRONT</span>
+ <span class="entry_type_enum_name">FRONT (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device faces the same direction as the device's screen.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">BACK</span>
+ <span class="entry_type_enum_name">BACK (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device faces the opposite direction as the device's screen.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">EXTERNAL</span>
+ <span class="entry_type_enum_name">EXTERNAL (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device is an external camera,<wbr/> and has no fixed facing relative to the
device's screen.<wbr/></p></span>
</li>
<tr class="entry_cont">
<td class="entry_details" colspan="6">
<p>The position of the camera device's lens optical center,<wbr/>
-as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>,<wbr/> relative to the
-optical center of the largest camera device facing in the
-same direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor coordinate
-axes</a>.<wbr/> Note that only the axis definitions are shared with
-the sensor coordinate system,<wbr/> but not the origin.<wbr/></p>
-<p>If this device is the largest or only camera device with a
-given facing,<wbr/> then this position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a
-camera device with a lens optical center located 3 cm from
-the main sensor along the +X axis (to the right from the
-user's perspective) will report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
-<p>To transform a pixel coordinates between two cameras
-facing the same direction,<wbr/> first the source camera
-<a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> must be corrected for.<wbr/> Then
-the source camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs
-to be applied,<wbr/> followed by the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a>
-of the source camera,<wbr/> the translation of the source camera
-relative to the destination camera,<wbr/> the
-<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination camera,<wbr/> and
-finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a>
-of the destination camera.<wbr/> This obtains a
-radial-distortion-free coordinate in the destination
-camera pixel coordinates.<wbr/></p>
-<p>To compare this against a real image from the destination
-camera,<wbr/> the destination camera image then needs to be
-corrected for radial distortion before comparison or
-sampling.<wbr/></p>
+as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>.<wbr/></p>
+<p>Prior to Android P,<wbr/> or when <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is PRIMARY_<wbr/>CAMERA,<wbr/> this position
+is relative to the optical center of the largest camera device facing in the same
+direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor
+coordinate axes</a>.<wbr/> Note that only the axis definitions are shared with the sensor
+coordinate system,<wbr/> but not the origin.<wbr/></p>
+<p>If this device is the largest or only camera device with a given facing,<wbr/> then this
+position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a camera device with a lens optical center located 3 cm
+from the main sensor along the +X axis (to the right from the user's perspective) will
+report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
+<p>To transform a pixel coordinates between two cameras facing the same direction,<wbr/> first
+the source camera <a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> must be corrected for.<wbr/> Then the source
+camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs to be applied,<wbr/> followed by the
+<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the source camera,<wbr/> the translation of the source camera
+relative to the destination camera,<wbr/> the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination
+camera,<wbr/> and finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> of the destination
+camera.<wbr/> This obtains a radial-distortion-free coordinate in the destination camera pixel
+coordinates.<wbr/></p>
+<p>To compare this against a real image from the destination camera,<wbr/> the destination camera
+image then needs to be corrected for radial distortion before comparison or sampling.<wbr/></p>
+<p>When <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is GYROSCOPE,<wbr/> then this position is relative to
+the center of the primary gyroscope on the device.<wbr/></p>
</td>
</tr>
<tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
<!-- end of entry -->
+
+ <tr class="entry" id="static_android.lens.poseReference">
+ <td class="entry_name
+ " rowspan="3">
+ android.<wbr/>lens.<wbr/>pose<wbr/>Reference
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name entry_type_name_enum">byte</span>
+
+ <span class="entry_type_visibility"> [public]</span>
+
+
+
+
+
+ <ul class="entry_type_enum">
+ <li>
+ <span class="entry_type_enum_name">PRIMARY_CAMERA (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>The value of <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a> is relative to the optical center of
+the largest camera device facing the same direction as this camera.<wbr/></p>
+<p>This is the default value for API levels before Android P.<wbr/></p></span>
+ </li>
+ <li>
+ <span class="entry_type_enum_name">GYROSCOPE (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>The value of <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a> is relative to the position of the
+primary gyroscope of this Android device.<wbr/></p></span>
+ </li>
+ </ul>
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>The origin for <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ </td>
+
+ <td class="entry_range">
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>Different calibration methods and use cases can produce better or worse results
+depending on the selected coordinate origin.<wbr/></p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
<!-- end of kind -->
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">STATIONARY</span>
+ <span class="entry_type_enum_name">STATIONARY (v3.2)</span>
<span class="entry_type_enum_notes"><p>The lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MOVING</span>
+ <span class="entry_type_enum_name">MOVING (v3.2)</span>
<span class="entry_type_enum_notes"><p>One or several of the lens parameters
(<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> or <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) is
<tr class="entry_cont">
<td class="entry_details" colspan="6">
<p>The position of the camera device's lens optical center,<wbr/>
-as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>,<wbr/> relative to the
-optical center of the largest camera device facing in the
-same direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor coordinate
-axes</a>.<wbr/> Note that only the axis definitions are shared with
-the sensor coordinate system,<wbr/> but not the origin.<wbr/></p>
-<p>If this device is the largest or only camera device with a
-given facing,<wbr/> then this position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a
-camera device with a lens optical center located 3 cm from
-the main sensor along the +X axis (to the right from the
-user's perspective) will report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
-<p>To transform a pixel coordinates between two cameras
-facing the same direction,<wbr/> first the source camera
-<a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> must be corrected for.<wbr/> Then
-the source camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs
-to be applied,<wbr/> followed by the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a>
-of the source camera,<wbr/> the translation of the source camera
-relative to the destination camera,<wbr/> the
-<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination camera,<wbr/> and
-finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a>
-of the destination camera.<wbr/> This obtains a
-radial-distortion-free coordinate in the destination
-camera pixel coordinates.<wbr/></p>
-<p>To compare this against a real image from the destination
-camera,<wbr/> the destination camera image then needs to be
-corrected for radial distortion before comparison or
-sampling.<wbr/></p>
+as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>.<wbr/></p>
+<p>Prior to Android P,<wbr/> or when <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is PRIMARY_<wbr/>CAMERA,<wbr/> this position
+is relative to the optical center of the largest camera device facing in the same
+direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor
+coordinate axes</a>.<wbr/> Note that only the axis definitions are shared with the sensor
+coordinate system,<wbr/> but not the origin.<wbr/></p>
+<p>If this device is the largest or only camera device with a given facing,<wbr/> then this
+position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a camera device with a lens optical center located 3 cm
+from the main sensor along the +X axis (to the right from the user's perspective) will
+report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
+<p>To transform a pixel coordinates between two cameras facing the same direction,<wbr/> first
+the source camera <a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> must be corrected for.<wbr/> Then the source
+camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs to be applied,<wbr/> followed by the
+<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the source camera,<wbr/> the translation of the source camera
+relative to the destination camera,<wbr/> the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination
+camera,<wbr/> and finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> of the destination
+camera.<wbr/> This obtains a radial-distortion-free coordinate in the destination camera pixel
+coordinates.<wbr/></p>
+<p>To compare this against a real image from the destination camera,<wbr/> the destination camera
+image then needs to be corrected for radial distortion before comparison or sampling.<wbr/></p>
+<p>When <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is GYROSCOPE,<wbr/> then this position is relative to
+the center of the primary gyroscope on the device.<wbr/></p>
</td>
</tr>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
relative to sensor.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
rate relative to sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MINIMAL</span>
+ <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
sensor output.<wbr/> </p></span>
</li>
<li>
- <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+ <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
relative to sensor.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
rate relative to sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MINIMAL</span>
+ <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
sensor output.<wbr/> </p></span>
</li>
<li>
- <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+ <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FINAL</span>
+ <span class="entry_type_enum_name">FINAL (v3.2)</span>
<span class="entry_type_enum_notes"><p>The last or only metadata result buffer
for this capture.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PARTIAL</span>
+ <span class="entry_type_enum_name">PARTIAL (v3.2)</span>
<span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
capture.<wbr/> More result buffers for this capture will be sent
by the camera device,<wbr/> the last of which will be marked
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">NONE</span>
+ <span class="entry_type_enum_name">NONE (v3.2)</span>
<span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
for application-bound buffer data.<wbr/> If no
application-bound streams exist,<wbr/> no frame should be
included with any output stream buffers</p></span>
</li>
<li>
- <span class="entry_type_enum_name">FULL</span>
+ <span class="entry_type_enum_name">FULL (v3.2)</span>
<span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
only be produced if they are separately
enabled</p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">CAPTURE</span>
+ <span class="entry_type_enum_name">CAPTURE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
and process it according to the
settings</p></span>
</li>
<li>
- <span class="entry_type_enum_name">REPROCESS</span>
+ <span class="entry_type_enum_name">REPROCESS (v3.2)</span>
<span class="entry_type_enum_notes"><p>Process previously captured data; the
<a href="#controls_android.request.inputStreams">android.<wbr/>request.<wbr/>input<wbr/>Streams</a> parameter determines the
source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">BACKWARD_COMPATIBLE</span>
+ <span class="entry_type_enum_name">BACKWARD_COMPATIBLE (v3.2)</span>
<span class="entry_type_enum_notes"><p>The minimal set of capabilities that every camera
device (regardless of <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>)
supports.<wbr/></p>
not standard color output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MANUAL_SENSOR</span>
+ <span class="entry_type_enum_name">MANUAL_SENSOR (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device can be manually controlled (3A algorithms such
as auto-exposure,<wbr/> and auto-focus can be bypassed).<wbr/>
zero for each supported size-format combination.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">MANUAL_POST_PROCESSING</span>
+ <span class="entry_type_enum_name">MANUAL_POST_PROCESSING (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device post-processing stages can be manually controlled.<wbr/>
The camera device supports basic manual control of the image post-processing
controls,<wbr/> but this capability only covers the above list of controls.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">RAW</span>
+ <span class="entry_type_enum_name">RAW (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device supports outputting RAW buffers and
metadata for interpreting them.<wbr/></p>
</ul></span>
</li>
<li>
- <span class="entry_type_enum_name">PRIVATE_REPROCESSING</span>
+ <span class="entry_type_enum_name">PRIVATE_REPROCESSING (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device supports the Zero Shutter Lag reprocessing use case.<wbr/></p>
<ul>
</ul></span>
</li>
<li>
- <span class="entry_type_enum_name">READ_SENSOR_SETTINGS</span>
+ <span class="entry_type_enum_name">READ_SENSOR_SETTINGS (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device supports accurately reporting the sensor settings for many of
the sensor controls while the built-in 3A algorithm is running.<wbr/> This allows
always be included if the MANUAL_<wbr/>SENSOR capability is available.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">BURST_CAPTURE</span>
+ <span class="entry_type_enum_name">BURST_CAPTURE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device supports capturing high-resolution images at >= 20 frames per
second,<wbr/> in at least the uncompressed YUV format,<wbr/> when post-processing settings are set
resolution of the device,<wbr/> whichever is smaller.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">YUV_REPROCESSING</span>
+ <span class="entry_type_enum_name">YUV_REPROCESSING (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device supports the YUV_<wbr/>420_<wbr/>888 reprocessing use case,<wbr/> similar as
PRIVATE_<wbr/>REPROCESSING,<wbr/> This capability requires the camera device to support the
</ul></span>
</li>
<li>
- <span class="entry_type_enum_name">DEPTH_OUTPUT</span>
+ <span class="entry_type_enum_name">DEPTH_OUTPUT (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device can produce depth measurements from its field of view.<wbr/></p>
<p>This capability requires the camera device to support the following:</p>
</ul>
</li>
<li>The <a href="#static_android.depth.depthIsExclusive">android.<wbr/>depth.<wbr/>depth<wbr/>Is<wbr/>Exclusive</a> entry is listed by this device.<wbr/></li>
+<li>As of Android P,<wbr/> the <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> entry is listed by this device.<wbr/></li>
<li>A LIMITED camera with only the DEPTH_<wbr/>OUTPUT capability does not have to support
normal YUV_<wbr/>420_<wbr/>888,<wbr/> JPEG,<wbr/> and PRIV-format outputs.<wbr/> It only has to support the DEPTH16
format.<wbr/></li>
rate,<wbr/> including depth stall time.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CONSTRAINED_HIGH_SPEED_VIDEO</span>
+ <span class="entry_type_enum_name">CONSTRAINED_HIGH_SPEED_VIDEO (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The device supports constrained high speed video recording (frame rate >=120fps) use
case.<wbr/> The camera device will support high speed capture session created by <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>,<wbr/> which
the application avoids unnecessary maximum target FPS changes as much as possible
during high speed streaming.<wbr/></p></span>
</li>
+ <li>
+ <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
+ <span class="entry_type_enum_optional">[optional]</span>
+ <span class="entry_type_enum_notes"><p>The camera device supports the MOTION_<wbr/>TRACKING value for
+<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a>,<wbr/> which limits maximum exposure time to 20 ms.<wbr/></p>
+<p>This limits the motion blur of capture images,<wbr/> resulting in better image tracking
+results for use cases such as image stabilization or augmented reality.<wbr/></p></span>
+ </li>
+ <li>
+ <span class="entry_type_enum_name">LOGICAL_MULTI_CAMERA (v3.3)</span>
+ <span class="entry_type_enum_optional">[optional]</span>
+ <span class="entry_type_enum_notes"><p>The camera device is a logical camera backed by two or more physical cameras that are
+also exposed to the application.<wbr/></p>
+<p>This capability requires the camera device to support the following:</p>
+<ul>
+<li>This camera device must list the following static metadata entries in <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>:<ul>
+<li><a href="#static_android.logicalMultiCamera.physicalIds">android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>physical<wbr/>Ids</a></li>
+<li><a href="#static_android.logicalMultiCamera.sensorSyncType">android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>sensor<wbr/>Sync<wbr/>Type</a></li>
+</ul>
+</li>
+<li>The underlying physical cameras' static metadata must list the following entries,<wbr/>
+ so that the application can correlate pixels from the physical streams:<ul>
+<li><a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a></li>
+<li><a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a></li>
+<li><a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a></li>
+<li><a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a></li>
+<li><a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a></li>
+</ul>
+</li>
+<li>The SENSOR_<wbr/>INFO_<wbr/>TIMESTAMP_<wbr/>SOURCE of the logical device and physical devices must be
+ the same.<wbr/></li>
+<li>The logical camera device must be LIMITED or higher device.<wbr/></li>
+</ul>
+<p>Both the logical camera device and its underlying physical devices support the
+mandatory stream combinations required for their device levels.<wbr/></p>
+<p>Additionally,<wbr/> for each guaranteed stream combination,<wbr/> the logical camera supports:</p>
+<ul>
+<li>For each guaranteed stream combination,<wbr/> the logical camera supports replacing one
+ logical <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a>
+ or raw stream with two physical streams of the same size and format,<wbr/> each from a
+ separate physical camera,<wbr/> given that the size and format are supported by both
+ physical cameras.<wbr/></li>
+<li>If the logical camera doesn't advertise RAW capability,<wbr/> but the underlying physical
+ cameras do,<wbr/> the logical camera will support guaranteed stream combinations for RAW
+ capability,<wbr/> except that the RAW streams will be physical streams,<wbr/> each from a separate
+ physical camera.<wbr/> This is usually the case when the physical cameras have different
+ sensor sizes.<wbr/></li>
+</ul>
+<p>Using physical streams in place of a logical stream of the same size and format will
+not slow down the frame rate of the capture,<wbr/> as long as the minimum frame duration
+of the physical and logical streams are the same.<wbr/></p></span>
+ </li>
</ul>
</td> <!-- entry_type -->
enum notes.<wbr/> The entry <a href="#static_android.depth.maxDepthSamples">android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples</a> must be available
if the DEPTH_<wbr/>POINT_<wbr/>CLOUD format is supported (HAL pixel format BLOB,<wbr/> dataspace
DEPTH).<wbr/></p>
+<p>For a camera device with LOGICAL_<wbr/>MULTI_<wbr/>CAMERA capability,<wbr/> it should operate in the
+same way as a physical camera device based on its hardware level and capabilities.<wbr/>
+It's recommended that its feature set is superset of that of individual physical cameras.<wbr/></p>
</td>
</tr>
<tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
<!-- end of entry -->
-
-
- <!-- end of kind -->
- </tbody>
- <tr><td colspan="7" class="kind">dynamic</td></tr>
-
- <thead class="entries_header">
- <tr>
- <th class="th_name">Property Name</th>
- <th class="th_type">Type</th>
- <th class="th_description">Description</th>
- <th class="th_units">Units</th>
- <th class="th_range">Range</th>
- <th class="th_hal_version">Initial HIDL HAL version</th>
- <th class="th_tags">Tags</th>
- </tr>
- </thead>
-
- <tbody>
-
-
-
-
-
-
-
-
-
- <tr class="entry" id="dynamic_android.request.frameCount">
+ <tr class="entry" id="static_android.request.availableSessionKeys">
<td class="entry_name
- entry_name_deprecated
- " rowspan="3">
- android.<wbr/>request.<wbr/>frame<wbr/>Count
+ " rowspan="5">
+ android.<wbr/>request.<wbr/>available<wbr/>Session<wbr/>Keys
</td>
<td class="entry_type">
<span class="entry_type_name">int32</span>
+ <span class="entry_type_container">x</span>
- <span class="entry_type_visibility"> [hidden]</span>
+ <span class="entry_type_array">
+ n
+ </span>
+ <span class="entry_type_visibility"> [ndk_public]</span>
+ <span class="entry_type_hwlevel">[legacy] </span>
- <span class="entry_type_deprecated">[deprecated] </span>
</td> <!-- entry_type -->
<td class="entry_description">
- <p>A frame counter set by the framework.<wbr/> This value monotonically
-increases with every new result (that is,<wbr/> each new result has a unique
-frameCount value).<wbr/></p>
+ <p>A subset of the available request keys that the camera device
+can pass as part of the capture session initialization.<wbr/></p>
</td>
<td class="entry_units">
- count of frames
</td>
<td class="entry_range">
- <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
- <p>> 0</p>
</td>
<td class="entry_hal_version">
- <p>3.<wbr/>2</p>
+ <p>3.<wbr/>3</p>
</td>
<td class="entry_tags">
</tr>
<tr class="entry_cont">
<td class="entry_details" colspan="6">
- <p>Reset on release()</p>
+ <p>This is a subset of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a> which
+contains a list of keys that are difficult to apply per-frame and
+can result in unexpected delays when modified during the capture session
+lifetime.<wbr/> Typical examples include parameters that require a
+time-consuming hardware re-configuration or internal camera pipeline
+change.<wbr/> For performance reasons we advise clients to pass their initial
+values as part of
+<a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/>
+Once the camera capture session is enabled it is also recommended to avoid
+changing them from their initial values set in
+<a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/>
+Control over session parameters can still be exerted in capture requests
+but clients should be aware and expect delays during their application.<wbr/>
+An example usage scenario could look like this:</p>
+<ul>
+<li>The camera client starts by quering the session parameter key list via
+ <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a>.<wbr/></li>
+<li>Before triggering the capture session create sequence,<wbr/> a capture request
+ must be built via
+ <a href="https://developer.android.com/reference/CameraDevice.html#createCaptureRequest">CameraDevice#createCaptureRequest</a>
+ using an appropriate template matching the particular use case.<wbr/></li>
+<li>The client should go over the list of session parameters and check
+ whether some of the keys listed matches with the parameters that
+ they intend to modify as part of the first capture request.<wbr/></li>
+<li>If there is no such match,<wbr/> the capture request can be passed
+ unmodified to
+ <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/></li>
+<li>If matches do exist,<wbr/> the client should update the respective values
+ and pass the request to
+ <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/></li>
+<li>After the capture session initialization completes the session parameter
+ key list can continue to serve as reference when posting or updating
+ further requests.<wbr/> As mentioned above further changes to session
+ parameters should ideally be avoided,<wbr/> if updates are necessary
+ however clients could expect a delay/<wbr/>glitch during the
+ parameter switch.<wbr/></li>
+</ul>
</td>
</tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">HAL Implementation Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
+use the extensions C api (refer to
+android.<wbr/>hardware.<wbr/>camera.<wbr/>device.<wbr/>V3_<wbr/>4.<wbr/>Stream<wbr/>Configuration.<wbr/>session<wbr/>Params for more details).<wbr/></p>
+<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
+vendor extensions API and not against this field.<wbr/></p>
+<p>The HAL must not consume any request tags in the session parameters that
+are not listed either here or in the vendor tag list.<wbr/></p>
+<p>The public camera2 API will always make the vendor tags visible
+via
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a>.<wbr/></p>
+ </td>
+ </tr>
<tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
<!-- end of entry -->
- <tr class="entry" id="dynamic_android.request.id">
+ <tr class="entry" id="static_android.request.availablePhysicalCameraRequestKeys">
<td class="entry_name
- " rowspan="1">
- android.<wbr/>request.<wbr/>id
+ " rowspan="5">
+ android.<wbr/>request.<wbr/>available<wbr/>Physical<wbr/>Camera<wbr/>Request<wbr/>Keys
</td>
<td class="entry_type">
<span class="entry_type_name">int32</span>
+ <span class="entry_type_container">x</span>
+ <span class="entry_type_array">
+ n
+ </span>
<span class="entry_type_visibility"> [hidden]</span>
+ <span class="entry_type_hwlevel">[limited] </span>
</td> <!-- entry_type -->
<td class="entry_description">
- <p>An application-specified ID for the current
-request.<wbr/> Must be maintained unchanged in output
-frame</p>
+ <p>A subset of the available request keys that can be overriden for
+physical devices backing a logical multi-camera.<wbr/></p>
</td>
<td class="entry_units">
- arbitrary integer assigned by application
</td>
<td class="entry_range">
- <p>Any int</p>
</td>
<td class="entry_hal_version">
- <p>3.<wbr/>2</p>
+ <p>3.<wbr/>3</p>
</td>
<td class="entry_tags">
- <ul class="entry_tags">
- <li><a href="#tag_V1">V1</a></li>
- </ul>
</td>
</tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>This is a subset of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a> which contains a list
+of keys that can be overriden using <a href="https://developer.android.com/reference/CaptureRequest/Builder.html#setPhysicalCameraKey">Builder#setPhysicalCameraKey</a>.<wbr/>
+The respective value of such request key can be obtained by calling
+<a href="https://developer.android.com/reference/CaptureRequest/Builder.html#getPhysicalCameraKey">Builder#getPhysicalCameraKey</a>.<wbr/> Capture requests that contain
+individual physical device requests must be built via
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureRequest(int,">Set)</a>.<wbr/></p>
+ </td>
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">HAL Implementation Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
+use the extensions C api (refer to
+android.<wbr/>hardware.<wbr/>camera.<wbr/>device.<wbr/>V3_<wbr/>4.<wbr/>Capture<wbr/>Request.<wbr/>physical<wbr/>Camera<wbr/>Settings for more
+details).<wbr/></p>
+<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
+vendor extensions API and not against this field.<wbr/></p>
+<p>The HAL must not consume any request tags in the session parameters that
+are not listed either here or in the vendor tag list.<wbr/></p>
+<p>There should be no overlap between this set of keys and the available session keys
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a> along
+with any other controls that can have impact on the dual-camera sync.<wbr/></p>
+<p>The public camera2 API will always make the vendor tags visible
+via
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailablePhysicalCameraRequestKeys">CameraCharacteristics#getAvailablePhysicalCameraRequestKeys</a>.<wbr/></p>
+ </td>
+ </tr>
<tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
<!-- end of entry -->
-
- <tr class="entry" id="dynamic_android.request.metadataMode">
- <td class="entry_name
- " rowspan="1">
+
+
+ <!-- end of kind -->
+ </tbody>
+ <tr><td colspan="7" class="kind">dynamic</td></tr>
+
+ <thead class="entries_header">
+ <tr>
+ <th class="th_name">Property Name</th>
+ <th class="th_type">Type</th>
+ <th class="th_description">Description</th>
+ <th class="th_units">Units</th>
+ <th class="th_range">Range</th>
+ <th class="th_hal_version">Initial HIDL HAL version</th>
+ <th class="th_tags">Tags</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+
+
+
+
+
+
+
+
+ <tr class="entry" id="dynamic_android.request.frameCount">
+ <td class="entry_name
+ entry_name_deprecated
+ " rowspan="3">
+ android.<wbr/>request.<wbr/>frame<wbr/>Count
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name">int32</span>
+
+ <span class="entry_type_visibility"> [hidden]</span>
+
+
+
+ <span class="entry_type_deprecated">[deprecated] </span>
+
+
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>A frame counter set by the framework.<wbr/> This value monotonically
+increases with every new result (that is,<wbr/> each new result has a unique
+frameCount value).<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ count of frames
+ </td>
+
+ <td class="entry_range">
+ <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
+ <p>> 0</p>
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>2</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>Reset on release()</p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+ <tr class="entry" id="dynamic_android.request.id">
+ <td class="entry_name
+ " rowspan="1">
+ android.<wbr/>request.<wbr/>id
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name">int32</span>
+
+ <span class="entry_type_visibility"> [hidden]</span>
+
+
+
+
+
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>An application-specified ID for the current
+request.<wbr/> Must be maintained unchanged in output
+frame</p>
+ </td>
+
+ <td class="entry_units">
+ arbitrary integer assigned by application
+ </td>
+
+ <td class="entry_range">
+ <p>Any int</p>
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>2</p>
+ </td>
+
+ <td class="entry_tags">
+ <ul class="entry_tags">
+ <li><a href="#tag_V1">V1</a></li>
+ </ul>
+ </td>
+
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+ <tr class="entry" id="dynamic_android.request.metadataMode">
+ <td class="entry_name
+ " rowspan="1">
android.<wbr/>request.<wbr/>metadata<wbr/>Mode
</td>
<td class="entry_type">
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">NONE</span>
+ <span class="entry_type_enum_name">NONE (v3.2)</span>
<span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
for application-bound buffer data.<wbr/> If no
application-bound streams exist,<wbr/> no frame should be
included with any output stream buffers</p></span>
</li>
<li>
- <span class="entry_type_enum_name">FULL</span>
+ <span class="entry_type_enum_name">FULL (v3.2)</span>
<span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
only be produced if they are separately
enabled</p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">RAW16</span>
+ <span class="entry_type_enum_name">RAW16 (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_value">0x20</span>
<span class="entry_type_enum_notes"><p>RAW16 is a standard,<wbr/> cross-platform format for raw image
the full set of performance guarantees.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">RAW_OPAQUE</span>
+ <span class="entry_type_enum_name">RAW_OPAQUE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_value">0x24</span>
<span class="entry_type_enum_notes"><p>RAW_<wbr/>OPAQUE (or
performance guarantees.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">YV12</span>
+ <span class="entry_type_enum_name">YV12 (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_value">0x32315659</span>
<span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
</li>
<li>
- <span class="entry_type_enum_name">YCrCb_420_SP</span>
+ <span class="entry_type_enum_name">YCrCb_420_SP (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_value">0x11</span>
<span class="entry_type_enum_notes"><p>NV21</p></span>
</li>
<li>
- <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
+ <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED (v3.2)</span>
<span class="entry_type_enum_value">0x22</span>
<span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
</li>
<li>
- <span class="entry_type_enum_name">YCbCr_420_888</span>
+ <span class="entry_type_enum_name">YCbCr_420_888 (v3.2)</span>
<span class="entry_type_enum_value">0x23</span>
<span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
</li>
<li>
- <span class="entry_type_enum_name">BLOB</span>
+ <span class="entry_type_enum_name">BLOB (v3.2)</span>
<span class="entry_type_enum_value">0x21</span>
<span class="entry_type_enum_notes"><p>JPEG format</p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OUTPUT</span>
+ <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">INPUT</span>
+ <span class="entry_type_enum_name">INPUT (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">CENTER_ONLY</span>
+ <span class="entry_type_enum_name">CENTER_ONLY (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device only supports centered crop regions.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FREEFORM</span>
+ <span class="entry_type_enum_name">FREEFORM (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device supports arbitrarily chosen crop regions.<wbr/></p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
device returns captures from the image sensor.<wbr/></p>
<p>This is the default if the key is not set.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SOLID_COLOR</span>
+ <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
<span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
respective color channel provided in
<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">COLOR_BARS</span>
+ <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
<span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
<p>The vertical bars (left-to-right) are as follows:</p>
<ul>
0% intensity or 100% intensity.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
+ <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
<span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
each bar should start at its specified color at the top,<wbr/>
and fade to gray at the bottom.<wbr/></p>
of the image.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PN9</span>
+ <span class="entry_type_enum_name">PN9 (v3.2)</span>
<span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
generated from a PN9 512-bit sequence (typically implemented
in hardware with a linear feedback shift register).<wbr/></p>
be exactly the same as the last.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CUSTOM1</span>
+ <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
<span class="entry_type_enum_value">256</span>
<span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
available only on this camera device are at least this numeric
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">RGGB</span>
+ <span class="entry_type_enum_name">RGGB (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">GRBG</span>
+ <span class="entry_type_enum_name">GRBG (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">GBRG</span>
+ <span class="entry_type_enum_name">GBRG (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">BGGR</span>
+ <span class="entry_type_enum_name">BGGR (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">RGB</span>
+ <span class="entry_type_enum_name">RGB (v3.2)</span>
<span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
values for each pixel,<wbr/> instead of just 1 16-bit value
per pixel.<wbr/></p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">UNKNOWN</span>
+ <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
<span class="entry_type_enum_notes"><p>Timestamps from <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> are in nanoseconds and monotonic,<wbr/>
but can not be compared to timestamps from other subsystems
(e.<wbr/>g.<wbr/> accelerometer,<wbr/> gyro etc.<wbr/>),<wbr/> or other instances of the same or different
and the result metadata generated by a single capture are identical.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">REALTIME</span>
+ <span class="entry_type_enum_name">REALTIME (v3.2)</span>
<span class="entry_type_enum_notes"><p>Timestamps from <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> are in the same timebase as
<a href="https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos">SystemClock#elapsedRealtimeNanos</a>,<wbr/>
and they can be compared to other timestamps using that base.<wbr/></p></span>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FALSE</span>
+ <span class="entry_type_enum_name">FALSE (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">TRUE</span>
+ <span class="entry_type_enum_name">TRUE (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">DAYLIGHT</span>
+ <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
<span class="entry_type_enum_value">1</span>
</li>
<li>
- <span class="entry_type_enum_name">FLUORESCENT</span>
+ <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
<span class="entry_type_enum_value">2</span>
</li>
<li>
- <span class="entry_type_enum_name">TUNGSTEN</span>
+ <span class="entry_type_enum_name">TUNGSTEN (v3.2)</span>
<span class="entry_type_enum_value">3</span>
<span class="entry_type_enum_notes"><p>Incandescent light</p></span>
</li>
<li>
- <span class="entry_type_enum_name">FLASH</span>
+ <span class="entry_type_enum_name">FLASH (v3.2)</span>
<span class="entry_type_enum_value">4</span>
</li>
<li>
- <span class="entry_type_enum_name">FINE_WEATHER</span>
+ <span class="entry_type_enum_name">FINE_WEATHER (v3.2)</span>
<span class="entry_type_enum_value">9</span>
</li>
<li>
- <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
+ <span class="entry_type_enum_name">CLOUDY_WEATHER (v3.2)</span>
<span class="entry_type_enum_value">10</span>
</li>
<li>
- <span class="entry_type_enum_name">SHADE</span>
+ <span class="entry_type_enum_name">SHADE (v3.2)</span>
<span class="entry_type_enum_value">11</span>
</li>
<li>
- <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
+ <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT (v3.2)</span>
<span class="entry_type_enum_value">12</span>
<span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
</li>
<li>
- <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
+ <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT (v3.2)</span>
<span class="entry_type_enum_value">13</span>
<span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
</li>
<li>
- <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
+ <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT (v3.2)</span>
<span class="entry_type_enum_value">14</span>
<span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
</li>
<li>
- <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
+ <span class="entry_type_enum_name">WHITE_FLUORESCENT (v3.2)</span>
<span class="entry_type_enum_value">15</span>
<span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
</li>
<li>
- <span class="entry_type_enum_name">STANDARD_A</span>
+ <span class="entry_type_enum_name">STANDARD_A (v3.2)</span>
<span class="entry_type_enum_value">17</span>
</li>
<li>
- <span class="entry_type_enum_name">STANDARD_B</span>
+ <span class="entry_type_enum_name">STANDARD_B (v3.2)</span>
<span class="entry_type_enum_value">18</span>
</li>
<li>
- <span class="entry_type_enum_name">STANDARD_C</span>
+ <span class="entry_type_enum_name">STANDARD_C (v3.2)</span>
<span class="entry_type_enum_value">19</span>
</li>
<li>
- <span class="entry_type_enum_name">D55</span>
+ <span class="entry_type_enum_name">D55 (v3.2)</span>
<span class="entry_type_enum_value">20</span>
</li>
<li>
- <span class="entry_type_enum_name">D65</span>
+ <span class="entry_type_enum_name">D65 (v3.2)</span>
<span class="entry_type_enum_value">21</span>
</li>
<li>
- <span class="entry_type_enum_name">D75</span>
+ <span class="entry_type_enum_name">D75 (v3.2)</span>
<span class="entry_type_enum_value">22</span>
</li>
<li>
- <span class="entry_type_enum_name">D50</span>
+ <span class="entry_type_enum_name">D50 (v3.2)</span>
<span class="entry_type_enum_value">23</span>
</li>
<li>
- <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
+ <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN (v3.2)</span>
<span class="entry_type_enum_value">24</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
device returns captures from the image sensor.<wbr/></p>
<p>This is the default if the key is not set.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SOLID_COLOR</span>
+ <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
<span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
respective color channel provided in
<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">COLOR_BARS</span>
+ <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
<span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
<p>The vertical bars (left-to-right) are as follows:</p>
<ul>
0% intensity or 100% intensity.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
+ <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
<span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
each bar should start at its specified color at the top,<wbr/>
and fade to gray at the bottom.<wbr/></p>
of the image.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PN9</span>
+ <span class="entry_type_enum_name">PN9 (v3.2)</span>
<span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
generated from a PN9 512-bit sequence (typically implemented
in hardware with a linear feedback shift register).<wbr/></p>
be exactly the same as the last.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">CUSTOM1</span>
+ <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
<span class="entry_type_enum_value">256</span>
<span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
available only on this camera device are at least this numeric
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
frame rate relative to sensor raw output</p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
cost of possibly reduced frame rate.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
frame rate relative to sensor raw output</p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
cost of possibly reduced frame rate.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
results.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SIMPLE</span>
+ <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FULL</span>
+ <span class="entry_type_enum_name">FULL (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Return all face
metadata.<wbr/></p>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
</li>
</ul>
<tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
<!-- end of entry -->
+
+ <tr class="entry" id="controls_android.statistics.oisDataMode">
+ <td class="entry_name
+ " rowspan="1">
+ android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name entry_type_name_enum">byte</span>
+
+ <span class="entry_type_visibility"> [public]</span>
+
+
+
+
+
+ <ul class="entry_type_enum">
+ <li>
+ <span class="entry_type_enum_name">OFF (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>Do not include OIS data in the capture result.<wbr/></p></span>
+ </li>
+ <li>
+ <span class="entry_type_enum_name">ON (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>Include OIS data in the capture result.<wbr/></p></span>
+ </li>
+ </ul>
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>A control for selecting whether OIS position information is included in output
+result metadata.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ </td>
+
+ <td class="entry_range">
+ <p>android.<wbr/>Statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes</p>
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
<!-- end of kind -->
<tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
<!-- end of entry -->
+
+ <tr class="entry" id="static_android.statistics.info.availableOisDataModes">
+ <td class="entry_name
+ " rowspan="3">
+ android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name">byte</span>
+ <span class="entry_type_container">x</span>
+
+ <span class="entry_type_array">
+ n
+ </span>
+ <span class="entry_type_visibility"> [public as enumList]</span>
+
+
+
+
+ <div class="entry_type_notes">list of enums</div>
+
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>List of OIS data output modes for <a href="#controls_android.statistics.oisDataMode">android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode</a> that
+are supported by this camera device.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ </td>
+
+ <td class="entry_range">
+ <p>Any value listed in <a href="#controls_android.statistics.oisDataMode">android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode</a></p>
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>If no OIS data output is available for this camera device,<wbr/> this key will
+contain only OFF.<wbr/></p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
results.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">SIMPLE</span>
+ <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FULL</span>
+ <span class="entry_type_enum_name">FULL (v3.2)</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>Return all face
metadata.<wbr/></p>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">NONE</span>
+ <span class="entry_type_enum_name">NONE (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device does not detect any flickering illumination
in the current scene.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">50HZ</span>
+ <span class="entry_type_enum_name">50HZ (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 50Hz
in the current scene.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">60HZ</span>
+ <span class="entry_type_enum_name">60HZ (v3.2)</span>
<span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 60Hz
in the current scene.<wbr/></p></span>
</li>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
<span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
<span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
</li>
</ul>
<tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
<!-- end of entry -->
-
-
- <!-- end of kind -->
- </tbody>
+
+ <tr class="entry" id="dynamic_android.statistics.oisDataMode">
+ <td class="entry_name
+ " rowspan="1">
+ android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name entry_type_name_enum">byte</span>
- <!-- end of section -->
- <tr><td colspan="7" id="section_tonemap" class="section">tonemap</td></tr>
+ <span class="entry_type_visibility"> [public]</span>
- <tr><td colspan="7" class="kind">controls</td></tr>
- <thead class="entries_header">
- <tr>
- <th class="th_name">Property Name</th>
- <th class="th_type">Type</th>
- <th class="th_description">Description</th>
- <th class="th_units">Units</th>
- <th class="th_range">Range</th>
- <th class="th_hal_version">Initial HIDL HAL version</th>
- <th class="th_tags">Tags</th>
- </tr>
- </thead>
- <tbody>
+
+ <ul class="entry_type_enum">
+ <li>
+ <span class="entry_type_enum_name">OFF (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>Do not include OIS data in the capture result.<wbr/></p></span>
+ </li>
+ <li>
+ <span class="entry_type_enum_name">ON (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>Include OIS data in the capture result.<wbr/></p></span>
+ </li>
+ </ul>
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>A control for selecting whether OIS position information is included in output
+result metadata.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ </td>
+
+ <td class="entry_range">
+ <p>android.<wbr/>Statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes</p>
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+ <tr class="entry" id="dynamic_android.statistics.oisTimestamps">
+ <td class="entry_name
+ " rowspan="3">
+ android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name">int64</span>
+ <span class="entry_type_container">x</span>
+
+ <span class="entry_type_array">
+ n
+ </span>
+ <span class="entry_type_visibility"> [ndk_public]</span>
+
+
+
+
+
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>An array of timestamps of OIS samples,<wbr/> in nanoseconds.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ nanoseconds
+ </td>
+
+ <td class="entry_range">
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>The array contains the timestamps of OIS samples.<wbr/> The timestamps are in the same
+timebase as and comparable to <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a>.<wbr/></p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+ <tr class="entry" id="dynamic_android.statistics.oisXShifts">
+ <td class="entry_name
+ " rowspan="3">
+ android.<wbr/>statistics.<wbr/>ois<wbr/>XShifts
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name">float</span>
+ <span class="entry_type_container">x</span>
+
+ <span class="entry_type_array">
+ n
+ </span>
+ <span class="entry_type_visibility"> [ndk_public]</span>
+
+
+
+
+
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>An array of shifts of OIS samples,<wbr/> in x direction.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ Pixels in active array.<wbr/>
+ </td>
+
+ <td class="entry_range">
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>The array contains the amount of shifts in x direction,<wbr/> in pixels,<wbr/> based on OIS samples.<wbr/>
+A positive value is a shift from left to right in active array coordinate system.<wbr/> For
+example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array coordinates,<wbr/> a shift of
+(3,<wbr/> 0) puts the new optical center at (1003,<wbr/> 500).<wbr/></p>
+<p>The number of shifts must match the number of timestamps in
+<a href="#dynamic_android.statistics.oisTimestamps">android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps</a>.<wbr/></p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+ <tr class="entry" id="dynamic_android.statistics.oisYShifts">
+ <td class="entry_name
+ " rowspan="3">
+ android.<wbr/>statistics.<wbr/>ois<wbr/>YShifts
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name">float</span>
+ <span class="entry_type_container">x</span>
+
+ <span class="entry_type_array">
+ n
+ </span>
+ <span class="entry_type_visibility"> [ndk_public]</span>
+
+
+
+
+
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>An array of shifts of OIS samples,<wbr/> in y direction.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ Pixels in active array.<wbr/>
+ </td>
+
+ <td class="entry_range">
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>The array contains the amount of shifts in y direction,<wbr/> in pixels,<wbr/> based on OIS samples.<wbr/>
+A positive value is a shift from top to bottom in active array coordinate system.<wbr/> For
+example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array coordinates,<wbr/> a shift of
+(0,<wbr/> 5) puts the new optical center at (1000,<wbr/> 505).<wbr/></p>
+<p>The number of shifts must match the number of timestamps in
+<a href="#dynamic_android.statistics.oisTimestamps">android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps</a>.<wbr/></p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+ <tr class="entry" id="dynamic_android.statistics.oisSamples">
+ <td class="entry_name
+ " rowspan="3">
+ android.<wbr/>statistics.<wbr/>ois<wbr/>Samples
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name">float</span>
+ <span class="entry_type_container">x</span>
+
+ <span class="entry_type_array">
+ n
+ </span>
+ <span class="entry_type_visibility"> [java_public as oisSample]</span>
+
+ <span class="entry_type_synthetic">[synthetic] </span>
+
+
+
+
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>An array of OIS samples.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ </td>
+
+ <td class="entry_range">
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>Each OIS sample contains the timestamp and the amount of shifts in x and y direction,<wbr/>
+in pixels,<wbr/> of the OIS sample.<wbr/></p>
+<p>A positive value for a shift in x direction is a shift from left to right in active array
+coordinate system.<wbr/> For example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array
+coordinates,<wbr/> a shift of (3,<wbr/> 0) puts the new optical center at (1003,<wbr/> 500).<wbr/></p>
+<p>A positive value for a shift in y direction is a shift from top to bottom in active array
+coordinate system.<wbr/> For example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array
+coordinates,<wbr/> a shift of (0,<wbr/> 5) puts the new optical center at (1000,<wbr/> 505).<wbr/></p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+
+ <!-- end of kind -->
+ </tbody>
+
+ <!-- end of section -->
+ <tr><td colspan="7" id="section_tonemap" class="section">tonemap</td></tr>
+
+
+ <tr><td colspan="7" class="kind">controls</td></tr>
+
+ <thead class="entries_header">
+ <tr>
+ <th class="th_name">Property Name</th>
+ <th class="th_type">Type</th>
+ <th class="th_description">Description</th>
+ <th class="th_units">Units</th>
+ <th class="th_range">Range</th>
+ <th class="th_hal_version">Initial HIDL HAL version</th>
+ <th class="th_tags">Tags</th>
+ </tr>
+ </thead>
+
+ <tbody>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">CONTRAST_CURVE</span>
+ <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
reducing frame rate compared to raw sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">GAMMA_VALUE</span>
+ <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
tonemapping.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PRESET_CURVE</span>
+ <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">SRGB</span>
+ <span class="entry_type_enum_name">SRGB (v3.2)</span>
<span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
</li>
<li>
- <span class="entry_type_enum_name">REC709</span>
+ <span class="entry_type_enum_name">REC709 (v3.2)</span>
<span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">CONTRAST_CURVE</span>
+ <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FAST</span>
+ <span class="entry_type_enum_name">FAST (v3.2)</span>
<span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
reducing frame rate compared to raw sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">HIGH_QUALITY</span>
+ <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
<span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">GAMMA_VALUE</span>
+ <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
tonemapping.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">PRESET_CURVE</span>
+ <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
<span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">SRGB</span>
+ <span class="entry_type_enum_name">SRGB (v3.2)</span>
<span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
</li>
<li>
- <span class="entry_type_enum_name">REC709</span>
+ <span class="entry_type_enum_name">REC709 (v3.2)</span>
<span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">TRANSMIT</span>
+ <span class="entry_type_enum_name">TRANSMIT (v3.2)</span>
<span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used.<wbr/></p></span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">LIMITED</span>
+ <span class="entry_type_enum_name">LIMITED (v3.2)</span>
<span class="entry_type_enum_notes"><p>This camera device does not have enough capabilities to qualify as a <code>FULL</code> device or
better.<wbr/></p>
<p>Only the stream configurations listed in the <code>LEGACY</code> and <code>LIMITED</code> tables in the
can be checked for in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">FULL</span>
+ <span class="entry_type_enum_name">FULL (v3.2)</span>
<span class="entry_type_enum_notes"><p>This camera device is capable of supporting advanced imaging applications.<wbr/></p>
<p>The stream configurations listed in the <code>FULL</code>,<wbr/> <code>LEGACY</code> and <code>LIMITED</code> tables in the
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
23,<wbr/> and <code>FULL</code> devices may only support <code>CENTERED</code> cropping.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">LEGACY</span>
+ <span class="entry_type_enum_name">LEGACY (v3.2)</span>
<span class="entry_type_enum_notes"><p>This camera device is running in backward compatibility mode.<wbr/></p>
<p>Only the stream configurations listed in the <code>LEGACY</code> table in the <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are supported.<wbr/></p>
<p>A <code>LEGACY</code> device does not support per-frame control,<wbr/> manual sensor control,<wbr/> manual
enable the flash.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">3</span>
+ <span class="entry_type_enum_name">3 (v3.2)</span>
<span class="entry_type_enum_notes"><p>This camera device is capable of YUV reprocessing and RAW data capture,<wbr/> in addition to
FULL-level capabilities.<wbr/></p>
<p>The stream configurations listed in the <code>LEVEL_<wbr/>3</code>,<wbr/> <code>RAW</code>,<wbr/> <code>FULL</code>,<wbr/> <code>LEGACY</code> and
<code>RAW</code>)</li>
</ul></span>
</li>
+ <li>
+ <span class="entry_type_enum_name">EXTERNAL (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>This camera device is backed by an external camera connected to this Android device.<wbr/></p>
+<p>The device has capability identical to a LIMITED level device,<wbr/> with the following
+exceptions:</p>
+<ul>
+<li>The device may not report lens/<wbr/>sensor related information such as<ul>
+<li><a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a></li>
+<li><a href="#static_android.lens.info.hyperfocalDistance">android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance</a></li>
+<li><a href="#static_android.sensor.info.physicalSize">android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size</a></li>
+<li><a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a></li>
+<li><a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a></li>
+<li><a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a></li>
+<li><a href="#dynamic_android.sensor.rollingShutterSkew">android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew</a></li>
+</ul>
+</li>
+<li>The device will report 0 for <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a></li>
+<li>The device has less guarantee on stable framerate,<wbr/> as the framerate partly depends
+ on the external camera being used.<wbr/></li>
+</ul></span>
+ </li>
</ul>
</td> <!-- entry_type -->
<p>Camera HAL3+ must not implement LEGACY mode.<wbr/> It is there for backwards compatibility in
the <code>android.<wbr/>hardware.<wbr/>camera2</code> user-facing API only on legacy HALv1 devices,<wbr/> and is
implemented by the camera framework code.<wbr/></p>
+<p>EXTERNAL level devices have lower peformance bar in CTS since the peformance might depend
+on the external camera being used and is not fully controlled by the device manufacturer.<wbr/>
+The ITS test suite is exempted for the same reason.<wbr/></p>
+ </td>
+ </tr>
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+ <tr class="entry" id="static_android.info.version">
+ <td class="entry_name
+ " rowspan="5">
+ android.<wbr/>info.<wbr/>version
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name">byte</span>
+
+ <span class="entry_type_visibility"> [public as string]</span>
+
+
+
+
+
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>A short string for manufacturer version information about the camera device,<wbr/> such as
+ISP hardware,<wbr/> sensors,<wbr/> etc.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ </td>
+
+ <td class="entry_range">
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>This can be used in <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_IMAGE_DESCRIPTION">TAG_<wbr/>IMAGE_<wbr/>DESCRIPTION</a>
+in jpeg EXIF.<wbr/> This key may be absent if no version information is available on the
+device.<wbr/></p>
+ </td>
+ </tr>
+
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">HAL Implementation Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>The string must consist of only alphanumeric characters,<wbr/> punctuation,<wbr/> and
+whitespace,<wbr/> i.<wbr/>e.<wbr/> it must match regular expression "[\p{Alnum}\p{Punct}\p{Space}]*".<wbr/>
+It must not exceed 256 characters.<wbr/></p>
</td>
</tr>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OFF</span>
+ <span class="entry_type_enum_name">OFF (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">ON</span>
+ <span class="entry_type_enum_name">ON (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">CONVERGING</span>
+ <span class="entry_type_enum_name">CONVERGING (v3.2)</span>
<span class="entry_type_enum_value">-1</span>
<span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/></p>
<p>Synchronization is in progress,<wbr/> and reading metadata from this
request settings remain constant).<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">UNKNOWN</span>
+ <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
<span class="entry_type_enum_value">-2</span>
<span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/></p>
<p>The result may have already converged,<wbr/> or it may be in
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
+ <span class="entry_type_enum_name">PER_FRAME_CONTROL (v3.2)</span>
<span class="entry_type_enum_value">0</span>
<span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/></p>
<p>Changing controls over multiple requests one after another will
<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">UNKNOWN</span>
+ <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
<span class="entry_type_enum_value">-1</span>
<span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
of the past requests applied to the camera settings.<wbr/></p>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">OUTPUT</span>
+ <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">INPUT</span>
+ <span class="entry_type_enum_name">INPUT (v3.2)</span>
</li>
</ul>
<ul class="entry_type_enum">
<li>
- <span class="entry_type_enum_name">FALSE</span>
+ <span class="entry_type_enum_name">FALSE (v3.2)</span>
</li>
<li>
- <span class="entry_type_enum_name">TRUE</span>
+ <span class="entry_type_enum_name">TRUE (v3.2)</span>
</li>
</ul>
</tbody>
<!-- end of section -->
+ <tr><td colspan="7" id="section_logicalMultiCamera" class="section">logicalMultiCamera</td></tr>
+
+
+ <tr><td colspan="7" class="kind">static</td></tr>
+
+ <thead class="entries_header">
+ <tr>
+ <th class="th_name">Property Name</th>
+ <th class="th_type">Type</th>
+ <th class="th_description">Description</th>
+ <th class="th_units">Units</th>
+ <th class="th_range">Range</th>
+ <th class="th_hal_version">Initial HIDL HAL version</th>
+ <th class="th_tags">Tags</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+
+
+
+
+
+
+
+
+ <tr class="entry" id="static_android.logicalMultiCamera.physicalIds">
+ <td class="entry_name
+ " rowspan="3">
+ android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>physical<wbr/>Ids
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name">byte</span>
+ <span class="entry_type_container">x</span>
+
+ <span class="entry_type_array">
+ n
+ </span>
+ <span class="entry_type_visibility"> [hidden]</span>
+
+
+ <span class="entry_type_hwlevel">[limited] </span>
+
+
+
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>String containing the ids of the underlying physical cameras.<wbr/></p>
+ </td>
+
+ <td class="entry_units">
+ UTF-8 null-terminated string
+ </td>
+
+ <td class="entry_range">
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ <ul class="entry_tags">
+ <li><a href="#tag_LOGICALCAMERA">LOGICALCAMERA</a></li>
+ </ul>
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>For a logical camera,<wbr/> this is concatenation of all underlying physical camera ids.<wbr/>
+The null terminator for physical camera id must be preserved so that the whole string
+can be tokenized using '\0' to generate list of physical camera ids.<wbr/></p>
+<p>For example,<wbr/> if the physical camera ids of the logical camera are "2" and "3",<wbr/> the
+value of this tag will be ['2',<wbr/> '\0',<wbr/> '3',<wbr/> '\0'].<wbr/></p>
+<p>The number of physical camera ids must be no less than 2.<wbr/></p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+ <tr class="entry" id="static_android.logicalMultiCamera.sensorSyncType">
+ <td class="entry_name
+ " rowspan="3">
+ android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>sensor<wbr/>Sync<wbr/>Type
+ </td>
+ <td class="entry_type">
+ <span class="entry_type_name entry_type_name_enum">byte</span>
+
+ <span class="entry_type_visibility"> [public]</span>
+
+
+ <span class="entry_type_hwlevel">[limited] </span>
+
+
+
+ <ul class="entry_type_enum">
+ <li>
+ <span class="entry_type_enum_name">APPROXIMATE (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>A software mechanism is used to synchronize between the physical cameras.<wbr/> As a result,<wbr/>
+the timestamp of an image from a physical stream is only an approximation of the
+image sensor start-of-exposure time.<wbr/></p></span>
+ </li>
+ <li>
+ <span class="entry_type_enum_name">CALIBRATED (v3.3)</span>
+ <span class="entry_type_enum_notes"><p>The camera device supports frame timestamp synchronization at the hardware level,<wbr/>
+and the timestamp of a physical stream image accurately reflects its
+start-of-exposure time.<wbr/></p></span>
+ </li>
+ </ul>
+
+ </td> <!-- entry_type -->
+
+ <td class="entry_description">
+ <p>The accuracy of frame timestamp synchronization between physical cameras</p>
+ </td>
+
+ <td class="entry_units">
+ </td>
+
+ <td class="entry_range">
+ </td>
+
+ <td class="entry_hal_version">
+ <p>3.<wbr/>3</p>
+ </td>
+
+ <td class="entry_tags">
+ <ul class="entry_tags">
+ <li><a href="#tag_LOGICALCAMERA">LOGICALCAMERA</a></li>
+ </ul>
+ </td>
+
+ </tr>
+ <tr class="entries_header">
+ <th class="th_details" colspan="6">Details</th>
+ </tr>
+ <tr class="entry_cont">
+ <td class="entry_details" colspan="6">
+ <p>The accuracy of the frame timestamp synchronization determines the physical cameras'
+ability to start exposure at the same time.<wbr/> If the sensorSyncType is CALIBRATED,<wbr/>
+the physical camera sensors usually run in master-slave mode so that their shutter
+time is synchronized.<wbr/> For APPROXIMATE sensorSyncType,<wbr/> the camera sensors usually run in
+master-master mode,<wbr/> and there could be offset between their start of exposure.<wbr/></p>
+<p>In both cases,<wbr/> all images generated for a particular capture request still carry the same
+timestamps,<wbr/> so that they can be used to look up the matching frame number and
+onCaptureStarted callback.<wbr/></p>
+ </td>
+ </tr>
+
+
+ <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
+ <!-- end of entry -->
+
+
+
+ <!-- end of kind -->
+ </tbody>
+
+ <!-- end of section -->
<!-- </namespace> -->
</table>
<li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
</ul>
</li> <!-- tag_REPROC -->
+ <li id="tag_LOGICALCAMERA">LOGICALCAMERA -
+ Entry is required for logical multi-camera capability.
+
+ <ul class="tags_entries">
+ <li><a href="#static_android.logicalMultiCamera.physicalIds">android.logicalMultiCamera.physicalIds</a> (static)</li>
+ <li><a href="#static_android.logicalMultiCamera.sensorSyncType">android.logicalMultiCamera.sensorSyncType</a> (static)</li>
+ </ul>
+ </li> <!-- tag_LOGICALCAMERA -->
<li id="tag_FUTURE">FUTURE -
Entry is under-specified and is not required for now. This is for book-keeping purpose,
do not implement or use it, it may be revised for future.