Home | History | Annotate | Download | only in docs

Lines Matching full:wbr

1088               android.<wbr/>color<wbr/>Correction.<wbr/>mode
1103 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
1104 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
1106 by our white balance pipeline) must be disabled.<wbr/></p>
1107 <p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
1108 TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
1109 this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
1114 capture rate relative to sensor raw output.<wbr/></p>
1116 the specified white balance pipeline may be applied.<wbr/></p>
1117 <p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
1119 (or defaults if AWB has never been run).<wbr/></p></span>
1125 output).<wbr/></p>
1127 the specified white balance pipeline may be applied.<wbr/></p>
1128 <p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
1130 (or defaults if AWB has never been run).<wbr/></p></span>
1138 sensor's native color into linear sRGB color.<wbr/></p>
1156 <p>When auto-white balance (AWB) is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
1157 control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
1158 application controls how the color mapping is performed.<wbr/></p>
1159 <p>We define the expected processing pipeline below.<wbr/> For consistency
1160 across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1161 <p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
1162 do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
1163 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
1164 camera device (in the results) and be roughly correct.<wbr/></p>
1165 <p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
1166 FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
1167 as what was produced by the camera device in the earlier frame.<wbr/></p>
1170 <p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
1171 gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
1172 matrix (applied after demosaic).<wbr/></p>
1174 <pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
1176 <p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
1177 output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
1179 the camera device does not support a separate gain for even/<wbr/>odd green
1180 channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1181 <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1183 <pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
1185 <p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
1186 to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
1192 <p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
1193 values are clipped to fit within the range.<wbr/></p>
1205 android.<wbr/>color<wbr/>Correction.<wbr/>transform
1227 from sensor RGB color space to output linear sRGB color space.<wbr/></p>
1247 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
1249 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1250 <p>In the latter case,<wbr/> the camera device may round the matrix to account
1252 in this matrix result metadata.<wbr/> The transform should keep the magnitude
1253 of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
1254 values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
1266 android.<wbr/>color<wbr/>Correction.<wbr/>gains
1288 white-balance.<wbr/></p>
1308 when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
1309 TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
1310 request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
1311 TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1313 applied by the camera device to the current frame.<wbr/></p>
1323 the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1324 for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1325 is the gain for green pixels on the odd rows.<wbr/></p>
1326 <p>If a HAL does not support a separate gain for even/<wbr/>odd green
1327 channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
1328 <code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1339 android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode
1354 <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
1359 relative to sensor raw output.<wbr/></p></span>
1364 capture rate (relative to sensor raw output).<wbr/></p></span>
1371 <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
1378 <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
1391 can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
1392 the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
1394 image.<wbr/></p>
1395 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
1396 correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
1397 use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
1398 capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
1399 applying aberration correction.<wbr/></p>
1400 <p>LEGACY devices will always be in FAST mode.<wbr/></p>
1439 android.<wbr/>color<wbr/>Correction.<wbr/>mode
1454 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
1455 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
1457 by our white balance pipeline) must be disabled.<wbr/></p>
1458 <p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
1459 TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
1460 this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
1465 capture rate relative to sensor raw output.<wbr/></p>
1467 the specified white balance pipeline may be applied.<wbr/></p>
1468 <p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
1470 (or defaults if AWB has never been run).<wbr/></p></span>
1476 output).<wbr/></p>
1478 the specified white balance pipeline may be applied.<wbr/></p>
1479 <p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
1481 (or defaults if AWB has never been run).<wbr/></p></span>
1489 sensor's native color into linear sRGB color.<wbr/></p>
1507 <p>When auto-white balance (AWB) is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
1508 control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
1509 application controls how the color mapping is performed.<wbr/></p>
1510 <p>We define the expected processing pipeline below.<wbr/> For consistency
1511 across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1512 <p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
1513 do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
1514 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
1515 camera device (in the results) and be roughly correct.<wbr/></p>
1516 <p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
1517 FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
1518 as what was produced by the camera device in the earlier frame.<wbr/></p>
1521 <p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
1522 gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
1523 matrix (applied after demosaic).<wbr/></p>
1525 <pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
1527 <p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
1528 output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
1530 the camera device does not support a separate gain for even/<wbr/>odd green
1531 channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1532 <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1534 <pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
1536 <p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
1537 to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
1543 <p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
1544 values are clipped to fit within the range.<wbr/></p>
1556 android.<wbr/>color<wbr/>Correction.<wbr/>transform
1578 from sensor RGB color space to output linear sRGB color space.<wbr/></p>
1598 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
1600 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1601 <p>In the latter case,<wbr/> the camera device may round the matrix to account
1603 in this matrix result metadata.<wbr/> The transform should keep the magnitude
1604 of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
1605 values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
1617 android.<wbr/>color<wbr/>Correction.<wbr/>gains
1639 white-balance.<wbr/></p>
1659 when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
1660 TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
1661 request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
1662 TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1664 applied by the camera device to the current frame.<wbr/></p>
1674 the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1675 for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1676 is the gain for green pixels on the odd rows.<wbr/></p>
1677 <p>If a HAL does not support a separate gain for even/<wbr/>odd green
1678 channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
1679 <code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1690 android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode
1705 <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
1710 relative to sensor raw output.<wbr/></p></span>
1715 capture rate (relative to sensor raw output).<wbr/></p></span>
1722 <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
1729 <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
1742 can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
1743 the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
1745 image.<wbr/></p>
1746 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
1747 correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
1748 use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
1749 capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
1750 applying aberration correction.<wbr/></p>
1751 <p>LEGACY devices will always be in FAST mode.<wbr/></p>
1790 android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes
1811 <p>List of aberration correction modes for <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a> that are
1812 supported by this camera device.<wbr/></p>
1819 <p>Any value listed in <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></p>
1834 <p>This key lists the valid modes for <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a>.<wbr/> If no
1835 aberration correction modes are available for a device,<wbr/> this list will solely include
1836 OFF mode.<wbr/> All camera devices will support either OFF or FAST mode.<wbr/></p>
1837 <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always list
1838 OFF mode.<wbr/> This includes all FULL level devices.<wbr/></p>
1839 <p>LEGACY devices will always only support FAST mode.<wbr/></p>
1883 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
1899 avoid banding problems.<wbr/></p></span>
1904 avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
1910 sources.<wbr/></p></span>
1916 condition.<wbr/> This is the default mode if AUTO is
1917 available on given camera device.<wbr/></p></span>
1925 algorithm's antibanding compensation.<wbr/></p>
1932 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
1947 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1948 lights,<wbr/> flicker at the rate of the power supply frequency
1949 (60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1950 typically not noticeable to a person,<wbr/> it can be visible to
1951 a camera device.<wbr/> If a camera sets its exposure time to the
1952 wrong value,<wbr/> the flicker may become visible in the
1953 viewfinder as flicker or in a final captured image,<wbr/> as a
1954 set of variable-brightness bands across the image.<wbr/></p>
1955 <p>Therefore,<wbr/> the auto-exposure routines of camera devices
1957 exposure value will not cause such banding.<wbr/> The choice of
1958 exposure time depends on the rate of flicker,<wbr/> which the
1959 camera device can detect automatically,<wbr/> or the expected
1961 control.<wbr/></p>
1963 options for the antibanding mode.<wbr/> The
1964 <a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1965 the available modes for a given camera device.<wbr/></p>
1967 camera device.<wbr/> When AUTO mode is not available,<wbr/> the
1968 default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
1969 and 60HZ will be available.<wbr/></p>
1971 <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1972 then this setting has no effect,<wbr/> and the application must
1974 issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1975 the application in this.<wbr/></p>
1984 <p>For all capture request templates,<wbr/> this field must be set
1985 to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
1986 the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
1987 60HZ must be available.<wbr/></p>
1989 <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1991 adjusted for antibanding.<wbr/></p>
2002 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
2019 brightness.<wbr/></p>
2027 <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
2042 <p>The adjustment is measured as a count of steps,<wbr/> with the
2043 step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
2044 allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
2045 <p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
2047 exposure compensation of -1 EV.<wbr/> One EV represents a doubling
2048 of image brightness.<wbr/> Note that this control will only be
2049 effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
2050 will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
2051 <p>In the event of exposure compensation value being changed,<wbr/> camera device
2052 may take several frames to reach the newly requested exposure target.<wbr/>
2053 During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
2054 state.<wbr/> Once the new exposure target is reached,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> will
2055 change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
2056 FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
2068 android.<wbr/>control.<wbr/>ae<wbr/>Lock
2084 is free to update its parameters.<wbr/></p></span>
2090 while the lock is active.<wbr/></p>
2091 <p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
2092 will still take effect while auto-exposure is locked.<wbr/></p>
2094 this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
2102 calculated values.<wbr/></p>
2123 <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
2124 and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
2125 <p>Note that even when AE is locked,<wbr/> the flash may be fired if
2126 the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
2127 ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
2128 <p>When <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> is changed,<wbr/> even if the AE lock
2129 is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
2130 <p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
2131 when AE is already locked,<wbr/> the camera device will not change the exposure time
2132 (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) and sensitivity (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
2133 parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
2134 is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
2135 <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> the scene may become overexposed.<wbr/></p>
2136 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
2138 latest capture result received from the camera device,<wbr/> since additional captures
2139 and AE updates may have occurred even before the result was sent out.<wbr/> If an
2141 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
2146 <li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
2147 <li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
2149 <p>See <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE lock related state transition details.<wbr/></p>
2161 android.<wbr/>control.<wbr/>ae<wbr/>Mode
2176 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
2177 <p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
2178 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
2179 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
2180 device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
2181 a flash unit for this camera device.<wbr/></p>
2183 behavior is device dependent when AE is in OFF mode.<wbr/>
2184 To have consistent behavior across different devices,<wbr/>
2186 or lock AWB and AF before setting AE to OFF.<wbr/>
2187 See <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>,<wbr/>
2188 <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a>,<wbr/> and <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
2189 for more details.<wbr/></p>
2191 override attempts to use this value to ON.<wbr/></p></span>
2195 wbr/>
2196 with no flash control.<wbr/></p>
2198 <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
2199 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
2200 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
2202 android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
2206 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
2207 the camera's flash unit,<wbr/> firing it in low-light
2208 conditions.<wbr/></p>
2210 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
2212 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
2213 STILL_<wbr/>CAPTURE</p></span>
2217 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
2218 the camera's flash unit,<wbr/> always firing it for still
2219 captures.<wbr/></p>
2221 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
2223 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
2224 STILL_<wbr/>CAPTURE</p></span>
2228 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
2229 reduction.<wbr/></p>
2230 <p>If deemed necessary by the camera device,<wbr/> a red eye
2232 sequence.<wbr/></p></span>
2240 auto-exposure routine.<wbr/></p>
2247 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
2262 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
2263 AUTO.<wbr/></p>
2264 <p>When set to any of the ON modes,<wbr/> the camera device's
2265 auto-exposure routine is enabled,<wbr/> overriding the
2266 application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
2267 and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
2268 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
2269 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
2270 is selected,<wbr/> the camera device's flash unit controls are
2271 also overridden.<wbr/></p>
2273 has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
2274 <p>If flash TORCH mode is desired,<wbr/> this field must be set to
2275 ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
2276 <p>When set to any of the ON modes,<wbr/> the values chosen by the
2279 CaptureResult.<wbr/></p>
2291 android.<wbr/>control.<wbr/>ae<wbr/>Regions
2310 <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
2314 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
2318 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
2319 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
2334 <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
2335 Otherwise will always be present.<wbr/></p>
2337 of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
2338 <p>The coordinate system is based on the active pixel array,<wbr/>
2339 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
2340 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2341 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
2342 bottom-right pixel in the active pixel array.<wbr/></p>
2343 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
2344 for every pixel in the area.<wbr/> This means that a large metering area
2346 the metering result.<wbr/> Metering areas can partially overlap and the
2347 camera device will add the weights in the overlap region.<wbr/></p>
2348 <p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
2349 region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
2350 weight is ignored.<wbr/></p>
2351 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
2352 camera device.<wbr/></p>
2353 <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
2354 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
2356 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
2357 not reported in the result metadata.<wbr/></p>
2367 int[5 * area_<wbr/>count].<wbr/>
2369 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
2370 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
2371 exclusive on xmax and ymax.<wbr/></p>
2382 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
2404 exposure.<wbr/></p>
2412 <p>Any of the entries in <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
2427 <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
2428 manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
2429 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
2441 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
2456 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
2461 by the camera device.<wbr/></p>
2463 the current AE mode and state.<wbr/></p></span>
2471 metering sequence when it processes this request.<wbr/></p>
2492 <p>This entry is normally set to IDLE,<wbr/> or is not
2493 included at all in the request settings.<wbr/> When included and
2494 set to START,<wbr/> the camera device will trigger the auto-exposure (AE)
2495 precapture metering sequence.<wbr/></p>
2498 be made,<wbr/> and for firing pre-capture flash pulses to estimate
2499 scene brightness and required final capture flash power,<wbr/> when
2500 the flash is enabled.<wbr/></p>
2501 <p>Normally,<wbr/> this entry should be set to START for only a
2502 single request,<wbr/> and the application should wait until the
2503 sequence completes before starting a new one.<wbr/></p>
2504 <p>When a precapture metering sequence is finished,<wbr/> the camera device
2506 subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
2507 For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
2508 submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
2509 submit a request with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == true</code>,<wbr/> followed by a request
2510 with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == false</code>,<wbr/> if the application decides not to submit a
2511 still capture request after the precapture sequence completes.<wbr/></p>
2514 <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
2515 details.<wbr/></p>
2516 <p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
2518 precapture sequence before the high-resolution capture,<wbr/> including
2519 potentially firing a pre-capture flash.<wbr/></p>
2531 android.<wbr/>control.<wbr/>af<wbr/>Mode
2547 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
2548 application.<wbr/></p></span>
2552 <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
2553 <p>In this mode,<wbr/> the lens does not move unless
2554 the autofocus trigger action is called.<wbr/> When that trigger
2555 is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
2556 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
2557 <p>Always supported if lens is not fixed focus.<wbr/></p>
2558 <p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
2559 is fixed-focus.<wbr/></p>
2560 <p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
2561 and sets the AF state to INACTIVE.<wbr/></p></span>
2565 <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
2566 <p>In this mode,<wbr/> the lens does not move unless the
2567 autofocus trigger action is called.<wbr/> When that trigger is
2568 activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
2569 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
2571 the camera.<wbr/></p>
2572 <p>When that trigger is activated,<wbr/> AF will transition to
2573 ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
2574 NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
2575 position to default,<wbr/> and sets the AF state to
2576 INACTIVE.<wbr/></p></span>
2580 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
2582 constantly-in-focus image stream.<wbr/></p>
2585 movement and no overshoots.<wbr/> When the AF trigger is not
2586 involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
2587 and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
2588 states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
2590 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
2591 lens position until a cancel AF trigger is received.<wbr/></p>
2592 <p>Once cancel is received,<wbr/> the algorithm should transition
2593 back to INACTIVE and resume passive scan.<wbr/> Note that this
2594 behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
2595 ongoing PASSIVE_<wbr/>SCAN must immediately be
2596 canceled.<wbr/></p></span>
2600 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
2602 constantly-in-focus image stream.<wbr/></p>
2605 possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
2606 algorithm should start in INACTIVE state,<wbr/> and then
2607 transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
2608 appropriate as it attempts to maintain focus.<wbr/> When the AF
2609 trigger is activated,<wbr/> the algorithm should finish its
2610 PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
2611 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
2612 lens position until a cancel AF trigger is received.<wbr/></p>
2613 <p>When the AF cancel trigger is activated,<wbr/> the algorithm
2615 has just been started.<wbr/></p></span>
2619 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
2622 operations need to be done before taking a picture.<wbr/></p>
2623 <p>AF triggers are ignored,<wbr/> and the AF state will always be
2624 INACTIVE.<wbr/></p></span>
2631 <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
2632 mode it is set to.<wbr/></p>
2639 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
2654 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
2655 (i.<wbr/>e.<wbr/> <code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>).<wbr/> Also note that
2656 when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> the behavior of AF is device
2657 dependent.<wbr/> It is recommended to lock AF by using <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> before
2658 setting <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> to OFF,<wbr/> or set AF mode to OFF when AE is OFF.<wbr/></p>
2659 <p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
2660 the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
2661 in result metadata.<wbr/></p>
2670 <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
2671 request (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> <code>==</code> START).<wbr/> After an AF trigger,<wbr/> the afState will end
2672 up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
2673 <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> which indicates that the lens is
2674 locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
2675 after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
2676 the same focal plane remains in focus.<wbr/></p>
2677 <p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
2678 scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
2679 (see <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> the HAL should maintain the
2680 same lock behavior as above.<wbr/></p>
2681 <p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
2682 focus distance control depends on the <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a>.<wbr/>
2683 However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
2684 manual control.<wbr/></p>
2685 <p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
2686 camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
2687 remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
2688 by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
2689 that will arise on camera modules with open-loop VCMs.<wbr/></p>
2700 android.<wbr/>control.<wbr/>af<wbr/>Regions
2719 <p>List of metering areas to use for auto-focus.<wbr/></p>
2723 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
2727 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
2728 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
2743 <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
2744 Otherwise will always be present.<wbr/></p>
2746 of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
2747 <p>The coordinate system is based on the active pixel array,<wbr/>
2748 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
2749 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2750 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
2751 bottom-right pixel in the active pixel array.<wbr/></p>
2752 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
2753 for every pixel in the area.<wbr/> This means that a large metering area
2755 the metering result.<wbr/> Metering areas can partially overlap and the
2756 camera device will add the weights in the overlap region.<wbr/></p>
2757 <p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
2758 is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
2759 ignored.<wbr/></p>
2760 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
2761 camera device.<wbr/></p>
2762 <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
2763 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
2765 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
2766 not reported in the result metadata.<wbr/></p>
2776 int[5 * area_<wbr/>count].<wbr/>
2778 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
2779 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
2780 exclusive on xmax and ymax.<wbr/></p>
2791 android.<wbr/>control.<wbr/>af<wbr/>Trigger
2806 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
2810 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
2815 state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
2822 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
2843 <p>This entry is normally set to IDLE,<wbr/> or is not
2844 included at all in the request settings.<wbr/></p>
2845 <p>When included and set to START,<wbr/> the camera device will trigger the
2846 autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
2847 <p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
2848 and return to its initial AF state.<wbr/></p>
2849 <p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
2850 single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
2852 and over again.<wbr/></p>
2853 <p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what the trigger means for each AF mode.<wbr/></p>
2865 android.<wbr/>control.<wbr/>awb<wbr/>Lock
2882 mode.<wbr/></p></span>
2888 is active.<wbr/></p></span>
2896 latest calculated values.<wbr/></p>
2917 <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
2918 and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
2919 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
2921 latest capture result received from the camera device,<wbr/> since additional captures
2922 and AWB updates may have occurred even before the result was sent out.<wbr/> If an
2924 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
2929 <li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
2930 <li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
2933 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
2934 AWB is already fixed to a specific setting.<wbr/></p>
2935 <p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
2947 android.<wbr/>control.<wbr/>awb<wbr/>Mode
2962 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
2964 (<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
2965 (<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
2966 device for manual white balance control.<wbr/></p></span>
2970 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
2971 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
2972 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
2973 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
2975 will be available in the capture result for this request.<wbr/></p></span>
2981 illumination for white balance.<wbr/></p>
2983 camera device,<wbr/> they will approximately match the CIE
2984 standard illuminant A.<wbr/></p>
2985 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
2986 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
2987 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
2989 will be available in the capture result for this request.<wbr/></p></span>
2995 illumination for white balance.<wbr/></p>
2997 camera device,<wbr/> they will approximately match the CIE
2998 standard illuminant F2.<wbr/></p>
2999 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3000 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3001 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3003 will be available in the capture result for this request.<wbr/></p></span>
3009 illumination for white balance.<wbr/></p>
3011 camera device,<wbr/> they will approximately match the CIE
3012 standard illuminant F4.<wbr/></p>
3013 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3014 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3015 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3017 will be available in the capture result for this request.<wbr/></p></span>
3023 illumination for white balance.<wbr/></p>
3025 camera device,<wbr/> they will approximately match the CIE
3026 standard illuminant D65.<wbr/></p>
3027 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3028 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3029 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3031 will be available in the capture result for this request.<wbr/></p></span>
3037 illumination for white balance.<wbr/></p>
3038 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3039 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3040 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3042 will be available in the capture result for this request.<wbr/></p></span>
3048 illumination for white balance.<wbr/></p>
3049 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3050 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3051 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3053 will be available in the capture result for this request.<wbr/></p></span>
3059 illumination for white balance.<wbr/></p>
3060 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3061 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3062 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3064 will be available in the capture result for this request.<wbr/></p></span>
3072 transform fields,<wbr/> and what its illumination target
3073 is.<wbr/></p>
3080 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
3095 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
3096 <p>When set to the ON mode,<wbr/> the camera device's auto-white balance
3097 routine is enabled,<wbr/> overriding the application's selected
3098 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
3099 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/> Note that when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
3100 is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
3101 also set AWB mode to OFF or lock AWB by using <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> before
3102 setting AE mode to OFF.<wbr/></p>
3103 <p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
3104 routine is disabled.<wbr/> The application manually controls the white
3105 balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>
3106 and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
3107 <p>When set to any other modes,<wbr/> the camera device's auto-white
3108 balance routine is disabled.<wbr/> The camera device uses each
3110 adjustment.<wbr/> The application's values for
3111 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
3112 <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
3113 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
3125 android.<wbr/>control.<wbr/>awb<wbr/>Regions
3145 estimation.<wbr/></p>
3149 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
3153 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
3154 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
3169 <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
3170 Otherwise will always be present.<wbr/></p>
3172 of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
3173 <p>The coordinate system is based on the active pixel array,<wbr/>
3174 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
3175 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3176 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
3177 bottom-right pixel in the active pixel array.<wbr/></p>
3178 <p>The weight must range from 0 to 1000,<wbr/> and represents a weight
3179 for every pixel in the area.<wbr/> This means that a large metering area
3181 the metering result.<wbr/> Metering areas can partially overlap and the
3182 camera device will add the weights in the overlap region.<wbr/></p>
3183 <p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
3184 only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
3185 0 weight is ignored.<wbr/></p>
3186 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
3187 camera device.<wbr/></p>
3188 <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
3189 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
3191 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
3192 not reported in the result metadata.<wbr/></p>
3202 int[5 * area_<wbr/>count].<wbr/>
3204 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
3205 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
3206 exclusive on xmax and ymax.<wbr/></p>
3217 android.<wbr/>control.<wbr/>capture<wbr/>Intent
3233 categories.<wbr/> The camera device will default to preview-like
3234 behavior.<wbr/></p></span>
3238 <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
3240 w/<wbr/>flash sequence.<wbr/></p></span>
3245 use case.<wbr/></p>
3246 <p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
3251 use case.<wbr/></p></span>
3256 image while recording video) use case.<wbr/></p>
3259 frame rate of video recording.<wbr/> </p></span>
3266 capture.<wbr/></p></span>
3271 the applications want to directly control the capture parameters.<wbr/></p>
3272 <p>For example,<wbr/> the application may wish to manually control
3273 <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>
3280 <p>Information to the camera device 3A (auto-exposure,<wbr/>
3281 auto-focus,<wbr/> auto-white balance) routines about the purpose
3282 of this capture,<wbr/> to help the camera device to decide optimal 3A
3283 strategy.<wbr/></p>
3305 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
3306 <p>ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
3307 contains ZSL.<wbr/> MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
3308 contains MANUAL_<wbr/>SENSOR.<wbr/> Other intent values are always supported.<wbr/></p>
3320 android.<wbr/>control.<wbr/>effect<wbr/>Mode
3335 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
3341 a single color.<wbr/></p>
3342 <p>This will typically be grayscale.<wbr/></p></span>
3348 are inverted.<wbr/></p></span>
3355 tone.<wbr/></p></span>
3361 gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
3368 gradient of tones.<wbr/></p></span>
3374 as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
3380 as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
3385 <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
3392 <p>A special color effect to apply.<wbr/></p>
3399 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
3414 <p>When this mode is set,<wbr/> a color effect will be applied
3415 to images produced by the camera device.<wbr/> The interpretation
3417 implementor of the camera device,<wbr/> and should not be
3419 devices.<wbr/></p>
3431 android.<wbr/>control.<wbr/>mode
3446 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
3448 routines is disabled,<wbr/> and no other settings in
3449 android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
3450 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
3452 blocks that do not allow for manual control,<wbr/> or are not
3453 exposed by the camera API.<wbr/></p>
3454 <p>However,<wbr/> the camera device's 3A routines may continue to
3456 when control is switched to AUTO mode,<wbr/> good control values
3457 can be immediately applied.<wbr/></p></span>
3461 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
3462 <p>Manual control of capture parameters is disabled.<wbr/> All
3463 controls in android.<wbr/>control.<wbr/>* besides sceneMode take
3464 effect.<wbr/></p></span>
3468 <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
3469 <p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
3470 control.<wbr/>afMode controls; the camera device will ignore
3471 those settings while USE_<wbr/>SCENE_<wbr/>MODE is active (except for
3472 FACE_<wbr/>PRIORITY scene mode).<wbr/> Other control entries are still
3473 active.<wbr/> This setting can only be used if scene mode is
3474 supported (i.<wbr/>e.<wbr/> <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
3475 contain some modes other than DISABLED).<wbr/></p></span>
3479 <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
3480 used by camera device background auto-exposure,<wbr/> auto-white balance and
3481 auto-focus algorithms (3A) to update their statistics.<wbr/></p>
3482 <p>Specifically,<wbr/> the 3A routines are locked to the last
3483 values set from a request with AUTO,<wbr/> OFF,<wbr/> or
3484 USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
3485 collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
3486 discarded by the camera device.<wbr/></p></span>
3493 <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
3494 routines.<wbr/></p>
3515 <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr
3516 by the camera device is disabled.<wbr/> The application must set the fields for
3517 capture parameters itself.<wbr/></p>
3518 <p>When set to AUTO,<wbr/> the individual algorithm controls in
3519 android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
3520 <p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
3521 android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
3522 one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
3523 as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
3524 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
3525 <p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
3527 update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
3529 the subsequent auto 3A capture results.<wbr/></p>
3530 <p>LEGACY mode devices will only support AUTO and USE_<wbr/>SCENE_<wbr/>MODE modes.<wbr/>
3531 LIMITED mode devices will only support OFF and OFF_<wbr/>KEEP_<wbr/>STATE if they
3532 support the MANUAL_<wbr/>SENSOR and MANUAL_<wbr/>POST_<wbr/>PROCSESING capabilities.<wbr/>
3533 FULL mode devices will always support OFF and OFF_<wbr/>KEEP_<wbr/>STATE.<wbr/></p>
3545 android.<wbr/>control.<wbr/>scene<wbr/>Mode
3561 <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
3565 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
3566 detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
3567 auto-exposure routines.<wbr/></p>
3569 (i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
3571 face detection statistics to the framework).<wbr/></p>
3572 <p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3573 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
3574 remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
3579 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
3580 <p>Similar to SPORTS.<wbr/></p></span>
3585 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
3590 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
3595 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
3601 settings.<wbr/></p></span>
3606 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
3607 remain off.<wbr/></p></span>
3612 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
3617 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
3622 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
3628 device motion (for example: due to hand shake).<wbr/></p></span>
3633 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
3638 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
3639 <p>Similar to ACTION.<wbr/></p></span>
3644 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
3645 people.<wbr/></p></span>
3651 is a flame.<wbr/></p></span>
3658 barcode value.<wbr/></p></span>
3663 <span class="entry_type_enum_notes"><p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
3665 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
3666 output frame rates,<wbr/> the application is only allowed to select video size
3667 and fps range combinations listed in this static metadata.<wbr/> The fps range
3668 can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
3669 <p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
3670 ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
3671 controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
3672 and post-processing parameters is possible.<wbr/> All other controls operate the
3673 same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
3674 android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
3676 <li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
3677 <li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
3678 <li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
3679 <li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
3680 <li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
3681 <li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
3682 <li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
3683 <li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
3684 <li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
3685 <li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
3687 <p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
3689 <li><a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> (automatic flash for still capture will not work since aeMode is ON)</li>
3690 <li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
3691 <li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
3692 <li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
3694 <p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
3695 be lower than what camera can output,<wbr/> depending on the destination Surfaces for
3696 the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
3698 high frame rate for a given video size,<wbr/> or it will end up with lower recording
3699 frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
3700 rate will be bounded by the screen refresh rate.<wbr/></p>
3702 (processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
3703 in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
3706 format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
3707 min(2,<wbr/> <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>[Processed (but not-stalling)]).<wbr/></li>
3709 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
3710 <li>No processed non-stalling or raw streams are configured.<wbr/></li>
3712 <p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
3713 <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> will be ignored by the camera device,<wbr/>
3714 the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
3716 by the camera device.<wbr/></p>
3717 <p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
3718 reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
3719 the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
3724 <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
3725 <p>In this scene mode,<wbr/> the camera device captures images
3727 visible in the final image.<wbr/> For example,<wbr/> when taking a
3728 picture of a object in front of a bright window,<wbr/> both
3730 visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
3731 one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
3733 image,<wbr/> has no user control,<wbr/> and may have other artifacts
3734 depending on the HDR method used.<wbr/></p>
3735 <p>Therefore,<wbr/> HDR captures operate at a much slower rate
3736 than regular captures.<wbr/></p>
3737 <p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
3738 is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
3739 STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
3740 using a high dynamic range capture technique.<wbr/> On LEGACY
3741 devices,<wbr/> captures that target a JPEG-format output will
3742 be captured with HDR,<wbr/> and the capture intent is not
3743 relevant.<wbr/></p>
3745 of images internally and combining them into one,<wbr/> or it
3747 range capture hardware.<wbr/> In all cases,<wbr/> a single image is
3749 while in HDR mode.<wbr/></p>
3751 produce an HDR image,<wbr/> only YUV and JPEG outputs are
3752 supported for LIMITED/<wbr/>FULL device HDR captures,<wbr/> and only
3754 captures.<wbr/> Using a RAW output for HDR capture is not
3755 supported.<wbr/></p></span>
3762 <p>Control for which scene mode is currently active.<wbr/></p>
3769 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
3785 capture settings.<wbr/></p>
3787 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/>
3788 these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3789 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> while in use.<wbr/></p>
3791 to the implementor of the camera device.<wbr/> Their behavior will not be
3792 consistent across all devices,<wbr/> and any given device may only implement
3793 a subset of these modes.<wbr/></p>
3803 the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3804 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
3805 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
3806 <p>For HIGH_<wbr/>SPEED_<wbr/>VIDEO mode,<wbr/> if it is included in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/>
3808 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> For a given size,<wbr/> e.<wbr/>g.<wbr/>
3809 1280x720,<wbr/> if the HAL has two different sensor configurations for normal streaming
3810 mode and high speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture
3811 requests,<wbr/> the HAL may have to switch between different sensor modes.<wbr/></p>
3822 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
3837 <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
3841 <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
3849 active.<wbr/></p>
3871 the camera in order to stabilize motion between consecutive frames.<wbr/></p>
3872 <p>If enabled,<wbr/> video stabilization can modify the
3873 <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
3875 frames to initialize,<wbr/> the camera device will report the current mode
3876 in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
3878 still be "OFF",<wbr/> and it will become "ON" when the initialization is
3879 done.<wbr/></p>
3881 (<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
3882 produce undesirable interaction,<wbr/> so it is recommended not to enable
3883 both at the same time.<wbr/></p>
3922 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
3943 <p>List of auto-exposure antibanding modes for <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> that are
3944 supported by this camera device.<wbr/></p>
3951 <p>Any value listed in <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a></p>
3967 supported by a given camera device.<wbr/> This field lists the
3970 <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> control.<wbr/></p>
3982 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
4003 <p>List of auto-exposure modes for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> that are supported by this camera
4004 device.<wbr/></p>
4011 <p>Any value listed in <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a></p>
4027 given camera device,<wbr/> especially if no flash unit is
4028 available.<wbr/> This entry lists the valid modes for
4029 <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
4030 <p>All camera devices support ON,<wbr/> and all camera devices with flash
4031 units support ON_<wbr/>AUTO_<wbr/>FLASH and ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
4032 <p>FULL mode camera devices always support OFF mode,<wbr/>
4033 which enables application control of camera exposure time,<wbr/>
4034 sensitivity,<wbr/> and frame duration.<wbr/></p>
4035 <p>LEGACY mode camera devices never support OFF mode.<wbr/>
4036 LIMITED mode devices support OFF if they support the MANUAL_<wbr/>SENSOR
4037 capability.<wbr/></p>
4049 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
4070 <p>List of frame rate ranges for <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> supported by
4071 this camera device.<wbr/></p>
4093 <p>For devices at the LIMITED level or above,<wbr/> this list will include at least (30,<wbr/> 30) for
4094 constant-framerate recording.<wbr/></p>
4106 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
4127 <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a>,<wbr/> in counts of <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a>,<wbr/>
4128 that are supported by this camera device.<wbr/></p>
4135 <p>Range [0,<wbr/>0] indicates that exposure compensation is not supported.<wbr/></p>
4136 <p>For LIMITED and FULL devices,<wbr/> range must follow below requirements if exposure
4137 compensation is supported (<code>range != [0,<wbr/> 0]</code>):</p>
4138 <p><code>Min.<wbr/>exposure compensation * <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> &lt;= -2 EV</code></p>
4139 <p><code>Max.<wbr/>exposure compensation * <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> &gt;= 2 EV</code></p>
4140 <p>LEGACY devices may support a smaller range than this.<wbr/></p>
4159 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
4176 can be changed.<wbr/></p>
4198 <p>This is the unit for <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a>.<wbr/> For example,<wbr/> if this key has
4199 a value of <code>1/<wbr/>2</code>,<wbr/> then a setting of <code>-2</code> for <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> means
4200 that the target EV offset for the auto-exposure routine is -1 EV.<wbr/></p>
4202 of two.<wbr/> +1 EV doubles the image brightness,<wbr/> while -1 EV halves the image brightness.<wbr/></p>
4211 <p>This must be less than or equal to 1/<wbr/>2.<wbr/></p>
4222 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
4243 <p>List of auto-focus (AF) modes for <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> that are
4244 supported by this camera device.<wbr/></p>
4251 <p>Any value listed in <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a></p>
4267 given camera device.<wbr/> This entry lists the valid modes for
4268 <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
4269 <p>All LIMITED and FULL mode camera devices will support OFF mode,<wbr/> and all
4271 (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>) will support AUTO mode.<wbr/></p>
4273 focusing to infinity (by also setting <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> to
4274 <code>0.<wbr/>0f</code>).<wbr/></p>
4286 android.<wbr/>control.<wbr/>available<wbr/>Effects
4301 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
4307 <p>List of color effects for <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that are supported by this camera
4308 device.<wbr/></p>
4315 <p>Any value listed in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></p>
4331 images produced by the camera device.<wbr/>
4332 Implementations are not expected to be consistent across all devices.<wbr/>
4333 If no color effect modes are available for a device,<wbr/> this will only list
4334 OFF.<wbr/></p>
4336 <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/> OFF is always included in this list.<wbr/></p>
4338 as auto-exposure,<wbr/> white balance,<wbr/> or focus.<wbr/></p>
4350 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
4365 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
4371 <p>List of scene modes for <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> that are supported by this camera
4372 device.<wbr/></p>
4379 <p>Any value listed in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a></p>
4394 <p>This list contains scene modes that can be set for the camera device.<wbr/>
4396 camera device may be included here.<wbr/> Implementations are not expected
4397 to be consistent across all devices.<wbr/></p>
4398 <p>If no scene modes are supported by the camera device,<wbr/> this
4399 will be set to DISABLED.<wbr/> Otherwise DISABLED will not be listed.<wbr/></p>
4400 <p>FACE_<wbr/>PRIORITY is always listed if face detection is
4401 supported (i.<wbr/>e.<wbr/><code><a href="#static_android.statistics.info.maxFaceCount">android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count</a> &gt;
4402 0</code>).<wbr/></p>
4414 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
4429 <div class="entry_type_notes">List of enums.<wbr/></div>
4435 <p>List of video stabilization modes for <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>
4436 that are supported by this camera device.<wbr/></p>
4443 <p>Any value listed in <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a></p>
4458 <p>OFF will always be listed.<wbr/></p>
4470 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
4491 <p>List of auto-white-balance modes for <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> that are supported by this
4492 camera device.<wbr/></p>
4499 <p>Any value listed in <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a></p>
4515 given camera device.<wbr/> This entry lists the valid modes for
4516 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
4517 <p>All camera devices will support ON mode.<wbr/></p>
4518 <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always support OFF
4519 mode,<wbr/> which enables application control of white balance,<wbr/> by using
4520 <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>(<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> must be set to TRANSFORM_<wbr/>MATRIX).<wbr/> This includes all FULL
4521 mode camera devices.<wbr/></p>
4533 android.<wbr/>control.<wbr/>max<wbr/>Regions
4554 auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
4556 <a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>,<wbr/> <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>,<wbr/>
4557 and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
4564 <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
4565 this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
4566 <code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
4585 android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae
4603 routine.<wbr/></p>
4610 <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
4611 value will be &gt;= 1.<wbr/></p>
4624 <a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>.<wbr/></p>
4633 <p>This entry is private to the framework.<wbr/> Fill in
4634 maxRegions to have this entry be automatically populated.<wbr/></p>
4645 android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb
4663 routine.<wbr/></p>
4670 <p>Value will be &gt;= 0.<wbr/></p>
4683 <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>.<wbr/></p>
4692 <p>This entry is private to the framework.<wbr/> Fill in
4693 maxRegions to have this entry be automatically populated.<wbr/></p>
4704 android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af
4721 <p>The maximum number of metering regions that can be used by the auto-focus (AF) routine.<wbr/></p>
4728 <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
4729 value will be &gt;= 1.<wbr/></p>
4742 <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
4751 <p>This entry is private to the framework.<wbr/> Fill in
4752 maxRegions to have this entry be automatically populated.<wbr/></p>
4763 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
4783 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
4784 settings to use with each available scene mode.<wbr/></p>
4791 <p>For each available scene mode,<wbr/> the list must contain three
4792 entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
4793 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values used
4794 by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
4795 where aeMode has the lowest index position.<wbr/></p>
4810 <p>When a scene mode is enabled,<wbr/> the camera device is expected
4811 to override <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/>
4812 and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
4813 that scene mode.<wbr/></p>
4814 <p>The order of this list matches that of availableSceneModes,<wbr/>
4815 with 3 entries for each mode.<wbr/> The overrides listed
4816 for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
4817 mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
4818 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values are
4819 used instead,<wbr/> matching the behavior when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>
4820 is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
4821 overrides should be set to 0.<wbr/></p>
4822 <p>For example,<wbr/> if availableSceneModes contains
4823 <code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
4825 <code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
4826 ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
4835 <p>To maintain backward compatibility,<wbr/> this list will be made available
4836 in the static metadata of the camera service.<wbr/> The camera service will
4837 use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
4838 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> when using a scene
4839 mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
4850 android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations
4871 supported by the camera device,<wbr/> in the format of (width,<wbr/> height,<wbr/> fps_<wbr/>min,<wbr/> fps_<wbr/>max).<wbr/></p>
4878 <p>For each configuration,<wbr/> the fps_<wbr/>max &gt;= 60fps.<wbr/></p>
4893 <p>When HIGH_<wbr/>SPEED_<wbr/>VIDEO is supported in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/>
4895 configurations.<wbr/> All the sizes listed in this configuration will be a subset
4897 non-stalling formats.<wbr/></p>
4898 <p>For the high speed video use case,<wbr/> where the application will set
4899 <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> to HIGH_<wbr/>SPEED_<wbr/>VIDEO in capture requests,<wbr/> the application must
4901 preview streams and setup the recording requests.<wbr/> For example,<wbr/> if the application intends
4902 to do high speed recording,<wbr/> it can select the maximum size reported by this metadata to
4903 configure output streams.<wbr/> Once the size is selected,<wbr/> application can filter this metadata
4904 by selected size and get the supported fps ranges,<wbr/> and use these fps ranges to setup the
4905 recording requests.<wbr/> Note that for the use case of multiple output streams,<wbr/> application
4906 must select one unique size from this metadata to use.<wbr/> Otherwise a request error might
4907 occur.<wbr/></p>
4908 <p>For normal video recording use case,<wbr/> where some application will NOT set
4909 <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> to HIGH_<wbr/>SPEED_<wbr/>VIDEO in capture requests,<wbr/> the fps ranges
4910 reported in this metadata must not be used to setup capture requests,<wbr/> or it will cause
4911 request error.<wbr/></p>
4921 <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> for processed non-stalling output formats.<wbr/>
4922 Note that for all high speed video configurations,<wbr/> HAL must be able to support a minimum
4923 of two streams,<wbr/> though the application might choose to configure just one stream.<wbr/></p>
4924 <p>Since the HIGH_<wbr/>SPEED_<wbr/>VIDEO mode may be turned on for preview view only case,<wbr/> the preview
4925 fps is bounded by device refresh rate (e.<wbr/>g.<wbr/> 60fps).<wbr/> For a given resolution,<wbr/> it is
4926 recommended that this list includes some fps ranges (e.<wbr/>g.<wbr/> [30,<wbr/> 60]) that is suitable
4927 for preview only streaming case.<wbr/></p>
4966 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
4983 CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
5003 CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
5004 by HAL.<wbr
5017 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
5033 avoid banding problems.<wbr/></p></span>
5038 avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
5044 sources.<wbr/></p></span>
5050 condition.<wbr/> This is the default mode if AUTO is
5051 available on given camera device.<wbr/></p></span>
5059 algorithm's antibanding compensation.<wbr/></p>
5066 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
5081 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
5082 lights,<wbr/> flicker at the rate of the power supply frequency
5083 (60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
5084 typically not noticeable to a person,<wbr/> it can be visible to
5085 a camera device.<wbr/> If a camera sets its exposure time to the
5086 wrong value,<wbr/> the flicker may become visible in the
5087 viewfinder as flicker or in a final captured image,<wbr/> as a
5088 set of variable-brightness bands across the image.<wbr/></p>
5089 <p>Therefore,<wbr/> the auto-exposure routines of camera devices
5091 exposure value will not cause such banding.<wbr/> The choice of
5092 exposure time depends on the rate of flicker,<wbr/> which the
5093 camera device can detect automatically,<wbr/> or the expected
5095 control.<wbr/></p>
5097 options for the antibanding mode.<wbr/> The
5098 <a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
5099 the available modes for a given camera device.<wbr/></p>
5101 camera device.<wbr/> When AUTO mode is not available,<wbr/> the
5102 default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
5103 and 60HZ will be available.<wbr/></p>
5105 <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
5106 then this setting has no effect,<wbr/> and the application must
5108 issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
5109 the application in this.<wbr/></p>
5118 <p>For all capture request templates,<wbr/> this field must be set
5119 to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
5120 the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
5121 60HZ must be available.<wbr/></p>
5123 <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
5125 adjusted for antibanding.<wbr/></p>
5136 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
5153 brightness.<wbr/></p>
5161 <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
5176 <p>The adjustment is measured as a count of steps,<wbr/> with the
5177 step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
5178 allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
5179 <p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
5181 exposure compensation of -1 EV.<wbr/> One EV represents a doubling
5182 of image brightness.<wbr/> Note that this control will only be
5183 effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
5184 will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
5185 <p>In the event of exposure compensation value being changed,<wbr/> camera device
5186 may take several frames to reach the newly requested exposure target.<wbr/>
5187 During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
5188 state.<wbr/> Once the new exposure target is reached,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> will
5189 change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
5190 FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
5202 android.<wbr/>control.<wbr/>ae<wbr/>Lock
5218 is free to update its parameters.<wbr/></p></span>
5224 while the lock is active.<wbr/></p>
5225 <p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
5226 will still take effect while auto-exposure is locked.<wbr/></p>
5228 this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
5236 calculated values.<wbr/></p>
5257 <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
5258 and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
5259 <p>Note that even when AE is locked,<wbr/> the flash may be fired if
5260 the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
5261 ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
5262 <p>When <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> is changed,<wbr/> even if the AE lock
5263 is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
5264 <p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
5265 when AE is already locked,<wbr/> the camera device will not change the exposure time
5266 (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) and sensitivity (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
5267 parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
5268 is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
5269 <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> the scene may become overexposed.<wbr/></p>
5270 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
5272 latest capture result received from the camera device,<wbr/> since additional captures
5273 and AE updates may have occurred even before the result was sent out.<wbr/> If an
5275 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
5280 <li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
5281 <li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
5283 <p>See <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE lock related state transition details.<wbr/></p>
5295 android.<wbr/>control.<wbr/>ae<wbr/>Mode
5310 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
5311 <p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
5312 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
5313 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
5314 device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
5315 a flash unit for this camera device.<wbr/></p>
5317 behavior is device dependent when AE is in OFF mode.<wbr/>
5318 To have consistent behavior across different devices,<wbr/>
5320 or lock AWB and AF before setting AE to OFF.<wbr/>
5321 See <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>,<wbr/>
5322 <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a>,<wbr/> and <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
5323 for more details.<wbr/></p>
5325 override attempts to use this value to ON.<wbr/></p></span>
5329 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
5330 with no flash control.<wbr/></p>
5332 <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
5333 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
5334 wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
5336 android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
5340 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
5341 the camera's flash unit,<wbr/> firing it in low-light
5342 conditions.<wbr/></p>
5344 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
5346 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
5347 STILL_<wbr/>CAPTURE</p></span>
5351 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
5352 the camera's flash unit,<wbr/> always firing it for still
5353 captures.<wbr/></p>
5355 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
5357 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
5358 STILL_<wbr/>CAPTURE</p></span>
5362 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
5363 reduction.<wbr/></p>
5364 <p>If deemed necessary by the camera device,<wbr/> a red eye
5366 sequence.<wbr/></p></span>
5374 auto-exposure routine.<wbr/></p>
5381 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
5396 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
5397 AUTO.<wbr/></p>
5398 <p>When set to any of the ON modes,<wbr/> the camera device's
5399 auto-exposure routine is enabled,<wbr/> overriding the
5400 application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
5401 and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
5402 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
5403 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
5404 is selected,<wbr/> the camera device's flash unit controls are
5405 also overridden.<wbr/></p>
5407 has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
5408 <p>If flash TORCH mode is desired,<wbr/> this field must be set to
5409 ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
5410 <p>When set to any of the ON modes,<wbr/> the values chosen by the
5413 CaptureResult.<wbr/></p>
5425 android.<wbr/>control.<wbr/>ae<wbr/>Regions
5444 <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
5448 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
5452 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
5453 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
5468 <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
5469 Otherwise will always be present.<wbr/></p>
5471 of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
5472 <p>The coordinate system is based on the active pixel array,<wbr/>
5473 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
5474 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
5475 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
5476 bottom-right pixel in the active pixel array.<wbr/></p>
5477 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
5478 for every pixel in the area.<wbr/> This means that a large metering area
5480 the metering result.<wbr/> Metering areas can partially overlap and the
5481 camera device will add the weights in the overlap region.<wbr/></p>
5482 <p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
5483 region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
5484 weight is ignored.<wbr/></p>
5485 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
5486 camera device.<wbr/></p>
5487 <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
5488 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
5490 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
5491 not reported in the result metadata.<wbr/></p>
5501 int[5 * area_<wbr/>count].<wbr/>
5503 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
5504 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
5505 exclusive on xmax and ymax.<wbr/></p>
5516 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
5538 exposure.<wbr/></p>
5546 <p>Any of the entries in <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
5561 <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
5562 manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
5563 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
5575 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
5590 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
5595 by the camera device.<wbr/></p>
5597 the current AE mode and state.<wbr/></p></span>
5605 metering sequence when it processes this request.<wbr/></p>
5626 <p>This entry is normally set to IDLE,<wbr/> or is not
5627 included at all in the request settings.<wbr/> When included and
5628 set to START,<wbr/> the camera device will trigger the auto-exposure (AE)
5629 precapture metering sequence.<wbr/></p>
5632 be made,<wbr/> and for firing pre-capture flash pulses to estimate
5633 scene brightness and required final capture flash power,<wbr/> when
5634 the flash is enabled.<wbr/></p>
5635 <p>Normally,<wbr/> this entry should be set to START for only a
5636 single request,<wbr/> and the application should wait until the
5637 sequence completes before starting a new one.<wbr/></p>
5638 <p>When a precapture metering sequence is finished,<wbr/> the camera device
5640 subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
5641 For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
5642 submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
5643 submit a request with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == true</code>,<wbr/> followed by a request
5644 with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == false</code>,<wbr/> if the application decides not to submit a
5645 still capture request after the precapture sequence completes.<wbr/></p>
5648 <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
5649 details.<wbr/></p>
5650 <p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
5652 precapture sequence before the high-resolution capture,<wbr/> including
5653 potentially firing a pre-capture flash.<wbr/></p>
5665 android.<wbr/>control.<wbr/>ae<wbr/>State
5680 <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/></p>
5681 <p>When a camera device is opened,<wbr/> it starts in
5682 this state.<wbr/> This is a transient state,<wbr/> the camera device may skip reporting
5683 this state in capture result.<wbr/></p></span>
5688 for the current scene.<wbr/></p>
5689 <p>This is a transient state,<wbr/> the camera device may skip
5690 reporting this state in capture result.<wbr/></p></span>
5695 current scene.<wbr/></p></span>
5699 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
5703 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
5705 capture.<wbr/></p></span>
5710 and is currently executing it.<wbr/></p>
5712 <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> to START.<wbr/></p>
5713 <p>Once PRECAPTURE completes,<wbr/> AE will transition to CONVERGED
5714 or FLASH_<wbr/>REQUIRED as appropriate.<wbr/> This is a transient
5715 state,<wbr/> the camera device may skip reporting this state in
5716 capture result.<wbr/></p></span>
5723 <p>Current state of the auto-exposure (AE) algorithm.<wbr/></p>
5741 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
5742 resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
5743 or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
5744 the algorithm states to INACTIVE.<wbr/></p>
5745 <p>The camera device can do several state transitions between two results,<wbr/> if it is
5746 allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
5747 seen in a result.<wbr/></p>
5749 AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
5750 be good to use.<wbr/></p>
5751 <p>Below are state transition tables for different AE modes.<wbr/></p>
5770 <p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
5789 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
5797 <td align="center">Good values,<wbr/> not changing</td>
5802 <td align="center">FLASH_<wbr/>REQUIRED</td>
5803 <td align="center">Converged but too dark w/<wbr/>o flash</td>
5807 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
5819 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
5824 <td align="center">FLASH_<wbr/>REQUIRED</td>
5830 <td align="center">FLASH_<wbr/>REQUIRED</td>
5831 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
5837 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
5843 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
5849 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
5850 <td align="center">FLASH_<wbr/>REQUIRED</td>
5851 <td align="center">Exposure good,<wbr/> but too dark</td>
5855 <td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
5861 <td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
5867 <td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
5873 <p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
5874 without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
5875 can be skipped in that manner is called a transient state.<wbr/></p>
5876 <p>For example,<wbr/> for above AE modes (AE_<wbr/>MODE_<wbr/>ON_<wbr/>*),<wbr/> in addition to the state transitions
5877 listed in above table,<wbr/> it is also legal for the camera device to skip one or more
5878 transient states between two results.<wbr/> See below table for examples:</p>
5893 <td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
5897 <td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
5898 <td align="center">FLASH_<wbr/>REQUIRED</td>
5899 <td align="center">Converged but too dark w/<wbr/>o flash after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
5903 <td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
5905 <td align="center">Converged after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
5910 <td align="center">FLASH_<wbr/>REQUIRED</td>
5911 <td align="center">Converged but too dark w/<wbr/>o flash after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
5914 <td align="center">FLASH_<wbr/>REQUIRED</td>
5917 <td align="center">Converged after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
5932 android.<wbr/>control.<wbr/>af<wbr/>Mode
5948 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
5949 application.<wbr/></p></span>
5953 <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
5954 <p>In this mode,<wbr/> the lens does not move unless
5955 the autofocus trigger action is called.<wbr/> When that trigger
5956 is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
5957 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
5958 <p>Always supported if lens is not fixed focus.<wbr/></p>
5959 <p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
5960 is fixed-focus.<wbr/></p>
5961 <p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
5962 and sets the AF state to INACTIVE.<wbr/></p></span>
5966 <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
5967 <p>In this mode,<wbr/> the lens does not move unless the
5968 autofocus trigger action is called.<wbr/> When that trigger is
5969 activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
5970 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
5972 the camera.<wbr/></p>
5973 <p>When that trigger is activated,<wbr/> AF will transition to
5974 ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
5975 NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
5976 position to default,<wbr/> and sets the AF state to
5977 INACTIVE.<wbr/></p></span>
5981 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
5983 constantly-in-focus image stream.<wbr/></p>
5986 movement and no overshoots.<wbr/> When the AF trigger is not
5987 involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
5988 and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
5989 states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
5991 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
5992 lens position until a cancel AF trigger is received.<wbr/></p>
5993 <p>Once cancel is received,<wbr/> the algorithm should transition
5994 back to INACTIVE and resume passive scan.<wbr/> Note that this
5995 behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
5996 ongoing PASSIVE_<wbr/>SCAN must immediately be
5997 canceled.<wbr/></p></span>
6001 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
6003 constantly-in-focus image stream.<wbr/></p>
6006 possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
6007 algorithm should start in INACTIVE state,<wbr/> and then
6008 transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
6009 appropriate as it attempts to maintain focus.<wbr/> When the AF
6010 trigger is activated,<wbr/> the algorithm should finish its
6011 PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
6012 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
6013 lens position until a cancel AF trigger is received.<wbr/></p>
6014 <p>When the AF cancel trigger is activated,<wbr/> the algorithm
6016 has just been started.<wbr/></p></span>
6020 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
6023 operations need to be done before taking a picture.<wbr/></p>
6024 <p>AF triggers are ignored,<wbr/> and the AF state will always be
6025 INACTIVE.<wbr/></p></span>
6032 <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
6033 mode it is set to.<wbr/></p>
6040 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
6055 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
6056 (i.<wbr/>e.<wbr/> <code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>).<wbr/> Also note that
6057 when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr
6058 dependent.<wbr/> It is recommended to lock AF by using <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> before
6059 setting <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> to OFF,<wbr/> or set AF mode to OFF when AE is OFF.<wbr/></p>
6060 <p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
6061 the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
6062 in result metadata.<wbr/></p>
6071 <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
6072 request (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> <code>==</code> START).<wbr/> After an AF trigger,<wbr/> the afState will end
6073 up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
6074 <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> which indicates that the lens is
6075 locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
6076 after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
6077 the same focal plane remains in focus.<wbr/></p>
6078 <p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
6079 scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
6080 (see <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> the HAL should maintain the
6081 same lock behavior as above.<wbr/></p>
6082 <p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
6083 focus distance control depends on the <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a>.<wbr/>
6084 However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
6085 manual control.<wbr/></p>
6086 <p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
6087 camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
6088 remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
6089 by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
6090 that will arise on camera modules with open-loop VCMs.<wbr/></p>
6101 android.<wbr/>control.<wbr/>af<wbr/>Regions
6120 <p>List of metering areas to use for auto-focus.<wbr/></p>
6124 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
6128 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
6129 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
6144 <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
6145 Otherwise will always be present.<wbr/></p>
6147 of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
6148 <p>The coordinate system is based on the active pixel array,<wbr/>
6149 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
6150 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
6151 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
6152 bottom-right pixel in the active pixel array.<wbr/></p>
6153 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
6154 for every pixel in the area.<wbr/> This means that a large metering area
6156 the metering result.<wbr/> Metering areas can partially overlap and the
6157 camera device will add the weights in the overlap region.<wbr/></p>
6158 <p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
6159 is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
6160 ignored.<wbr/></p>
6161 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
6162 camera device.<wbr/></p>
6163 <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
6164 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
6166 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
6167 not reported in the result metadata.<wbr/></p>
6177 int[5 * area_<wbr/>count].<wbr/>
6179 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
6180 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
6181 exclusive on xmax and ymax.<wbr/></p>
6192 android.<wbr/>control.<wbr/>af<wbr/>Trigger
6207 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
6211 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
6216 state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
6223 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
6244 <p>This entry is normally set to IDLE,<wbr/> or is not
6245 included at all in the request settings.<wbr/></p>
6246 <p>When included and set to START,<wbr/> the camera device will trigger the
6247 autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
6248 <p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
6249 and return to its initial AF state.<wbr/></p>
6250 <p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
6251 single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
6253 and over again.<wbr/></p>
6254 <p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what the trigger means for each AF mode.<wbr/></p>
6266 android.<wbr/>control.<wbr/>af<wbr/>State
6281 <span class="entry_type_enum_notes"><p>AF is off or has not yet tried to scan/<wbr/>been asked
6282 to scan.<wbr/></p>
6283 <p>When a camera device is opened,<wbr/> it starts in this
6284 state.<wbr/> This is a transient state,<wbr/> the camera device may
6286 result.<wbr/></p></span>
6291 camera device in a continuous autofocus mode.<wbr/></p>
6292 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
6293 state,<wbr/> the camera device may skip reporting this state in
6294 capture result.<wbr/></p></span>
6298 <span class="entry_type_enum_notes"><p>AF currently believes it is in focus,<wbr/> but may
6299 restart scanning at any time.<wbr/></p>
6300 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
6301 state,<wbr/> the camera device may skip reporting this state in
6302 capture result.<wbr/></p></span>
6307 triggered by AF trigger.<wbr/></p>
6308 <p>Only used by AUTO or MACRO AF modes.<wbr/> This is a transient
6309 state,<wbr/> the camera device may skip reporting this state in
6310 capture result.<wbr/></p></span>
6315 focus.<wbr/></p>
6317 sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus has been obtained.<wbr/></p>
6318 <p>The lens will remain stationary until the AF mode (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) is changed or
6319 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>
6324 focus.<wbr/></p>
6326 sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus cannot be obtained.<wbr/></p>
6327 <p>The lens will remain stationary until the AF mode (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) is changed or
6328 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>
6332 <span class="entry_type_enum_notes"><p>AF finished a passive scan without finding focus,<wbr/>
6333 and may restart scanning at any time.<wbr/></p>
6334 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient state,<wbr/> the camera
6335 device may skip reporting this state in capture result.<wbr/></p>
6336 <p>LEGACY camera devices do not support this state.<wbr/> When a passive
6337 scan has finished,<wbr/> it will always go to PASSIVE_<wbr/>FOCUSED.<wbr/></p></span>
6344 <p>Current state of auto-focus (AF) algorithm.<wbr/></p>
6362 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
6363 resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
6364 or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
6365 the algorithm states to INACTIVE.<wbr/></p>
6366 <p>The camera device can do several state transitions between two results,<wbr/> if it is
6367 allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
6368 seen in a result.<wbr/></p>
6370 AF state becomes FOCUSED,<wbr
6371 be sharp.<wbr/></p>
6372 <p>Below are state transition tables for different AF modes.<wbr/></p>
6373 <p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>OFF or AF_<wbr/>MODE_<wbr/>EDOF:</p>
6392 <p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>AUTO or AF_<wbr/>MODE_<wbr/>MACRO:</p>
6405 <td align="center">AF_<wbr/>TRIGGER</td>
6406 <td align="center">ACTIVE_<wbr/>SCAN</td>
6407 <td align="center">Start AF sweep,<wbr/> Lens now moving</td>
6410 <td align="center">ACTIVE_<wbr/>SCAN</td>
6412 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6413 <td align="center">Focused,<wbr/> Lens now locked</td>
6416 <td align="center">ACTIVE_<wbr/>SCAN</td>
6418 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6419 <td align="center">Not focused,<wbr/> Lens now locked</td>
6422 <td align="center">ACTIVE_<wbr/>SCAN</td>
6423 <td align="center">AF_<wbr/>CANCEL</td>
6425 <td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
6428 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6429 <td align="center">AF_<wbr/>CANCEL</td>
6431 <td align="center">Cancel/<wbr/>reset AF</td>
6434 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6435 <td align="center">AF_<wbr/>TRIGGER</td>
6436 <td align="center">ACTIVE_<wbr/>SCAN</td>
6437 <td align="center">Start new sweep,<wbr/> Lens now moving</td>
6440 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6441 <td align="center">AF_<wbr/>CANCEL</td>
6443 <td align="center">Cancel/<wbr/>reset AF</td>
6446 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6447 <td align="center">AF_<wbr/>TRIGGER</td>
6448 <td align="center">ACTIVE_<wbr/>SCAN</td>
6449 <td align="center">Start new sweep,<wbr/> Lens now moving</td>
6459 <p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
6460 without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
6461 can be skipped in that manner is called a transient state.<wbr/></p>
6462 <p>For example,<wbr/> for these AF modes (AF_<wbr/>MODE_<wbr/>AUTO and AF_<wbr/>MODE_<wbr/>MACRO),<wbr/> in addition to the
6463 state transitions listed in above table,<wbr/> it is also legal for the camera device to skip
6464 one or more transient states between two results.<wbr/> See below table for examples:</p>
6477 <td align="center">AF_<wbr/>TRIGGER</td>
6478 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6479 <td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
6483 <td align="center">AF_<wbr/>TRIGGER</td>
6484 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6485 <td align="center">Focus failed after a scan,<wbr/> lens is now locked.<wbr/></td>
6488 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6489 <td align="center">AF_<wbr/>TRIGGER</td>
6490 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6491 <td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
6494 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6495 <td align="center">AF_<wbr/>TRIGGER</td>
6496 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6497 <td align="center">Focus is good after a scan,<wbr/> lens is not locked.<wbr/></td>
6501 <p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>VIDEO:</p>
6515 <td align="center">PASSIVE_<wbr/>SCAN</td>
6516 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
6520 <td align="center">AF_<wbr/>TRIGGER</td>
6521 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6522 <td align="center">AF state query,<wbr/> Lens now locked</td>
6525 <td align="center">PASSIVE_<wbr/>SCAN</td>
6527 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
6528 <td align="center">End AF scan,<wbr/> Lens now locked</td>
6531 <td align="center">PASSIVE_<wbr/>SCAN</td>
6533 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
6534 <td align="center">End AF scan,<wbr/> Lens now locked</td>
6537 <td align="center">PASSIVE_<wbr/>SCAN</td>
6538 <td align="center">AF_<wbr/>TRIGGER</td>
6539 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6540 <td align="center">Immediate transition,<wbr/> if focus is good.<wbr/> Lens now locked</td>
6543 <td align="center">PASSIVE_<wbr/>SCAN</td>
6544 <td align="center">AF_<wbr/>TRIGGER</td>
6545 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6546 <td align="center">Immediate transition,<wbr/> if focus is bad.<wbr/> Lens now locked</td>
6549 <td align="center">PASSIVE_<wbr/>SCAN</td>
6550 <td align="center">AF_<wbr/>CANCEL</td>
6552 <td align="center">Reset lens position,<wbr/> Lens now locked</td>
6555 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
6557 <td align="center">PASSIVE_<wbr/>SCAN</td>
6558 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
6561 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
6563 <td align="center">PASSIVE_<wbr/>SCAN</td>
6564 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
6567 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
6568 <td align="center">AF_<wbr/>TRIGGER</td>
6569 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6570 <td align="center">Immediate transition,<wbr/> lens now locked</td>
6573 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
6574 <td align="center">AF_<wbr/>TRIGGER</td>
6575 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6576 <td align="center">Immediate transition,<wbr/> lens now locked</td>
6579 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6580 <td align="center">AF_<wbr/>TRIGGER</td>
6581 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6585 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6586 <td align="center">AF_<wbr/>CANCEL</td>
6591 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6592 <td align="center">AF_<wbr/>TRIGGER</td>
6593 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6597 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6598 <td align="center">AF_<wbr/>CANCEL</td>
6604 <p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>PICTURE:</p>
6618 <td align="center">PASSIVE_<wbr/>SCAN</td>
6619 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
6623 <td align="center">AF_<wbr/>TRIGGER</td>
6624 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6625 <td align="center">AF state query,<wbr/> Lens now locked</td>
6628 <td align="center">PASSIVE_<wbr/>SCAN</td>
6630 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
6631 <td align="center">End AF scan,<wbr/> Lens now locked</td>
6634 <td align="center">PASSIVE_<wbr/>SCAN</td>
6636 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
6637 <td align="center">End AF scan,<wbr/> Lens now locked</td>
6640 <td align="center">PASSIVE_<wbr/>SCAN</td>
6641 <td align="center">AF_<wbr/>TRIGGER</td>
6642 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6643 <td align="center">Eventual transition once the focus is good.<wbr/> Lens now locked</td>
6646 <td align="center">PASSIVE_<wbr/>SCAN</td>
6647 <td align="center">AF_<wbr/>TRIGGER</td>
6648 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6649 <td align="center">Eventual transition if cannot find focus.<wbr/> Lens now locked</td>
6652 <td align="center">PASSIVE_<wbr/>SCAN</td>
6653 <td align="center">AF_<wbr/>CANCEL</td>
6655 <td align="center">Reset lens position,<wbr/> Lens now locked</td>
6658 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
6660 <td align="center">PASSIVE_<wbr/>SCAN</td>
6661 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
6664 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
6666 <td align="center">PASSIVE_<wbr/>SCAN</td>
6667 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
6670 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
6671 <td align="center">AF_<wbr/>TRIGGER</td>
6672 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6673 <td align="center">Immediate trans.<wbr/> Lens now locked</td>
6676 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
6677 <td align="center">AF_<wbr/>TRIGGER</td>
6678 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6679 <td align="center">Immediate trans.<wbr/> Lens now locked</td>
6682 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6683 <td align="center">AF_<wbr/>TRIGGER</td>
6684 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6688 <td align="center">FOCUSED_<wbr/>LOCKED</td>
6689 <td align="center">AF_<wbr/>CANCEL</td>
6694 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6695 <td align="center">AF_<wbr/>TRIGGER</td>
6696 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6700 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
6701 <td align="center">AF_<wbr/>CANCEL</td>
6707 <p>When switch between AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>* (CAF modes) and AF_<wbr/>MODE_<wbr/>AUTO/<wbr/>AF_<wbr/>MODE_<wbr/>MACRO
6708 (AUTO modes),<wbr/> the initial INACTIVE or PASSIVE_<wbr/>SCAN states may be skipped by the
6709 camera device.<wbr/> When a trigger is included in a mode switch request,<wbr/> the trigger
6710 will be evaluated in the context of the new mode in the request.<wbr/>
6726 <td align="center">Mode switch without trigger,<wbr/> initial state must be INACTIVE</td>
6730 <td align="center">CAF--&gt;AUTO mode switch with AF_<wbr/>TRIGGER</td>
6732 <td align="center">Mode switch with trigger,<wbr/> INACTIVE is skipped</td>
6738 <td align="center">Mode switch without trigger,<wbr/> passive transient state is skipped</td>
6754 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
6771 CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
6790 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
6791 received yet by HAL.<wbr/> Always updated even if AF algorithm
6804 android.<wbr/>control.<wbr/>awb<wbr/>Lock
6821 mode.<wbr/></p></span>
6827 is active.<wbr/></p></span>
6835 latest calculated values.<wbr/></p>
6856 <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
6857 and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
6858 wbr/> the settings that
6860 latest capture result received from the camera device,<wbr/> since additional captures
6861 and AWB updates may have occurred even before the result was sent out.<wbr/> If an
6863 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
6868 <li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
6869 <li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
6872 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
6873 AWB is already fixed to a specific setting.<wbr/></p>
6874 <p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
6886 android.<wbr/>control.<wbr/>awb<wbr/>Mode
6901 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
6903 (<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
6904 (<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
6905 device for manual white balance control.<wbr/></p></span>
6909 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
6910 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
6911 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
6912 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
6914 will be available in the capture result for this request.<wbr/></p></span>
6920 illumination for white balance.<wbr/></p>
6922 camera device,<wbr/> they will approximately match the CIE
6923 standard illuminant A.<wbr/></p>
6924 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
6925 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
6926 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
6928 will be available in the capture result for this request.<wbr/></p></span>
6934 illumination for white balance.<wbr/></p>
6936 camera device,<wbr/> they will approximately match the CIE
6937 standard illuminant F2.<wbr/></p>
6938 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
6939 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
6940 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
6942 will be available in the capture result for this request.<wbr/></p></span>
6948 illumination for white balance.<wbr/></p>
6950 camera device,<wbr/> they will approximately match the CIE
6951 standard illuminant F4.<wbr/></p>
6952 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
6953 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
6954 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
6956 will be available in the capture result for this request.<wbr/></p></span>
6962 illumination for white balance.<wbr/></p>
6964 camera device,<wbr/> they will approximately match the CIE
6965 standard illuminant D65.<wbr/></p>
6966 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
6967 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
6968 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
6970 will be available in the capture result for this request.<wbr/></p></span>
6976 illumination for white balance.<wbr/></p>
6977 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
6978 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
6979 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
6981 will be available in the capture result for this request.<wbr/></p></span>
6987 illumination for white balance.<wbr/></p>
6988 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
6989 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
6990 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
6992 will be available in the capture result for this request.<wbr/></p></span>
6998 illumination for white balance.<wbr/></p>
6999 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
7000 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
7001 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
7003 will be available in the capture result for this request.<wbr/></p></span>
7011 transform fields,<wbr/> and what its illumination target
7012 is.<wbr/></p>
7019 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
7034 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
7035 <p>When set to the ON mode,<wbr/> the camera device's auto-white balance
7036 routine is enabled,<wbr/> overriding the application's selected
7037 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
7038 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/> Note that when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
7039 is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
7040 also set AWB mode to OFF or lock AWB by using <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> before
7041 setting AE mode to OFF.<wbr/></p>
7042 <p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
7043 routine is disabled.<wbr/> The application manually controls the white
7044 balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>
7045 and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
7046 <p>When set to any other modes,<wbr/> the camera device's auto-white
7047 balance routine is disabled.<wbr/> The camera device uses each
7049 adjustment.<wbr/> The application's values for
7050 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
7051 <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
7052 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
7064 android.<wbr/>control.<wbr/>awb<wbr/>Regions
7084 estimation.<wbr/></p>
7088 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
7092 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
7093 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
7108 <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
7109 Otherwise will always be present.<wbr/></p>
7111 of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
7112 <p>The coordinate system is based on the active pixel array,<wbr/>
7113 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
7114 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
7115 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
7116 bottom-right pixel in the active pixel array.<wbr/></p>
7117 <p>The weight must range from 0 to 1000,<wbr/> and represents a weight
7118 for every pixel in the area.<wbr/> This means that a large metering area
7120 the metering result.<wbr/> Metering areas can partially overlap and the
7121 camera device will add the weights in the overlap region.<wbr/></p>
7122 <p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
7123 only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
7124 0 weight is ignored.<wbr/></p>
7125 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
7126 camera device.<wbr/></p>
7127 <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
7128 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
7130 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
7131 not reported in the result metadata.<wbr/></p>
7141 int[5 * area_<wbr/>count].<wbr/>
7143 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
7144 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
7145 exclusive on xmax and ymax.<wbr/></p>
7156 android.<wbr/>control.<wbr/>capture<wbr/>Intent
7172 categories.<wbr/> The camera device will default to preview-like
7173 behavior.<wbr/></p></span>
7177 <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
7179 w/<wbr/>flash sequence.<wbr/></p></span>
7184 use case.<wbr/></p>
7185 <p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
7190 use case.<wbr/></p></span>
7195 image while recording video) use case.<wbr/></p>
7198 frame rate of video recording.<wbr/> </p></span>
7205 capture.<wbr/></p></span>
7210 the applications want to directly control the capture parameters.<wbr/></p>
7211 <p>For example,<wbr/> the application may wish to manually control
7212 <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>
7219 <p>Information to the camera device 3A (auto-exposure,<wbr/>
7220 auto-focus,<wbr/> auto-white balance) routines about the purpose
7221 of this capture,<wbr/> to help the camera device to decide optimal 3A
7222 strategy.<wbr/></p>
7244 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
7245 <p>ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
7246 contains ZSL.<wbr/> MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
7247 contains MANUAL_<wbr/>SENSOR.<wbr/> Other intent values are always supported.<wbr/></p>
7259 android.<wbr/>control.<wbr/>awb<wbr/>State
7274 <span class="entry_type_enum_notes"><p>AWB is not in auto mode,<wbr/> or has not yet started metering.<wbr/></p>
7275 <p>When a camera device is opened,<wbr/> it starts in this
7276 state.<wbr/> This is a transient state,<wbr/> the camera device may
7278 result.<wbr/></p></span>
7283 values for the current scene.<wbr/></p>
7284 <p>This is a transient state,<wbr/> the camera device
7285 may skip reporting this state in capture result.<wbr/></p></span>
7290 current scene.<wbr/></p></span>
7294 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
7301 <p>Current state of auto-white balance (AWB) algorithm.<wbr/></p>
7319 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
7320 resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
7321 or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
7322 the algorithm states to INACTIVE.<wbr/></p>
7323 <p>The camera device can do several state transitions between two results,<wbr/> if it is
7324 allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
7325 a result.<wbr/></p>
7327 AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
7328 be good to use.<wbr/></p>
7329 <p>Below are state transition tables for different AWB modes.<wbr/></p>
7330 <p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
7349 <p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
7368 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
7376 <td align="center">Good values,<wbr/> not changing</td>
7380 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
7392 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
7398 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
7404 <p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
7405 without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
7406 can be skipped in that manner is called a transient state.<wbr/></p>
7407 <p>For example,<wbr/> for this AWB mode (AWB_<wbr/>MODE_<wbr/>AUTO),<wbr/> in addition to the state transitions
7408 listed in above table,<wbr/> it is also legal for the camera device to skip one or more
7409 transient states between two results.<wbr/> See below table for examples:</p>
7424 <td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
7428 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
7430 <td align="center">Values good after unlock,<wbr/> transient states are skipped by camera device.<wbr/></td>
7445 android.<wbr/>control.<wbr/>effect<wbr/>Mode
7460 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
7466 a single color.<wbr/></p>
7467 <p>This will typically be grayscale.<wbr/></p></span>
7473 are inverted.<wbr/></p></span>
7480 tone.<wbr/></p></span>
7486 gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
7493 gradient of tones.<wbr/></p></span>
7499 as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
7505 as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
7510 <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr
7517 <p>A special color effect to apply.<wbr/></p>
7524 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
7539 <p>When this mode is set,<wbr/> a color effect will be applied
7540 to images produced by the camera device.<wbr/> The interpretation
7542 implementor of the camera device,<wbr/> and should not be
7544 devices.<wbr/></p>
7556 android.<wbr/>control.<wbr/>mode
7571 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
7573 routines is disabled,<wbr/> and no other settings in
7574 android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
7575 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
7577 blocks that do not allow for manual control,<wbr/> or are not
7578 exposed by the camera API.<wbr/></p>
7579 <p>However,<wbr/> the camera device's 3A routines may continue to
7581 when control is switched to AUTO mode,<wbr/> good control values
7582 can be immediately applied.<wbr/></p></span>
7586 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
7587 <p>Manual control of capture parameters is disabled.<wbr/> All
7588 controls in android.<wbr/>control.<wbr/>* besides sceneMode take
7589 effect.<wbr/></p></span>
7593 <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
7594 <p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
7595 control.<wbr/>afMode controls; the camera device will ignore
7596 those settings while USE_<wbr/>SCENE_<wbr/>MODE is active (except for
7597 FACE_<wbr/>PRIORITY scene mode).<wbr/> Other control entries are still
7598 active.<wbr/> This setting can only be used if scene mode is
7599 supported (i.<wbr/>e.<wbr/> <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
7600 contain some modes other than DISABLED).<wbr/></p></span>
7604 <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
7605 used by camera device background auto-exposure,<wbr/> auto-white balance and
7606 auto-focus algorithms (3A) to update their statistics.<wbr/></p>
7607 <p>Specifically,<wbr/> the 3A routines are locked to the last
7608 values set from a request with AUTO,<wbr/> OFF,<wbr/> or
7609 USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
7610 collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
7611 discarded by the camera device.<wbr/></p></span>
7618 <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
7619 routines.<wbr/></p>
7640 <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr/> all 3A control
7641 by the camera device is disabled.<wbr/> The application must set the fields for
7642 capture parameters itself.<wbr/></p>
7643 <p>When set to AUTO,<wbr/> the individual algorithm controls in
7644 android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
7645 <p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
7646 android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
7647 one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
7648 as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
7649 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
7650 <p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
7652 update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
7654 the subsequent auto 3A capture results.<wbr/></p>
7655 <p>LEGACY mode devices will only support AUTO and USE_<wbr/>SCENE_<wbr/>MODE modes.<wbr/>
7656 LIMITED mode devices will only support OFF and OFF_<wbr/>KEEP_<wbr/>STATE if they
7657 support the MANUAL_<wbr/>SENSOR and MANUAL_<wbr/>POST_<wbr/>PROCSESING capabilities.<wbr/>
7658 FULL mode devices will always support OFF and OFF_<wbr/>KEEP_<wbr/>STATE.<wbr/></p>
7670 android.<wbr/>control.<wbr/>scene<wbr/>Mode
7686 <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
7690 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
7691 detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
7692 auto-exposure routines.<wbr/></p>
7694 (i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
7696 face detection statistics to the framework).<wbr/></p>
7697 <p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
7698 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
7699 remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
7704 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
7705 <p>Similar to SPORTS.<wbr/></p></span>
7710 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
7715 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
7720 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
7726 settings.<wbr/></p></span>
7731 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
7732 remain off.<wbr/></p></span>
7737 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
7742 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
7747 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
7753 device motion (for example: due to hand shake).<wbr/></p></span>
7758 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
7763 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
7764 <p>Similar to ACTION.<wbr/></p></span>
7769 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
7770 people.<wbr/></p></span>
7776 is a flame.<wbr/></p></span>
7783 barcode value.<wbr/></p></span>
7788 <span class="entry_type_enum_notes"><p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
7790 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
7791 output frame rates,<wbr/> the application is only allowed to select video size
7792 and fps range combinations listed in this static metadata.<wbr/> The fps range
7793 can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
7794 <p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
7795 ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
7796 controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
7797 and post-processing parameters is possible.<wbr/> All other controls operate the
7798 same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
7799 android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
7801 <li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
7802 <li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
7803 <li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
7804 <li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
7805 <li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
7806 <li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
7807 <li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
7808 <li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr
7809 <li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
7810 <li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
7812 <p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
7814 <li><a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> (automatic flash for still capture will not work since aeMode is ON)</li>
7815 <li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
7816 <li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
7817 <li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
7819 <p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
7820 be lower than what camera can output,<wbr/> depending on the destination Surfaces for
7821 the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
7823 high frame rate for a given video size,<wbr/> or it will end up with lower recording
7824 frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
7825 rate will be bounded by the screen refresh rate.<wbr/></p>
7827 (processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
7828 in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
7831 format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
7832 min(2,<wbr/> <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>[Processed (but not-stalling)]).<wbr/></li>
7834 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
7835 <li>No processed non-stalling or raw streams are configured.<wbr/></li>
7837 <p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
7838 <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> will be ignored by the camera device,<wbr/>
7839 the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
7841 by the camera device.<wbr/></p>
7842 <p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
7843 reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
7844 the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
7849 <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
7850 <p>In this scene mode,<wbr/> the camera device captures images
7852 visible in the final image.<wbr/> For example,<wbr/> when taking a
7853 picture of a object in front of a bright window,<wbr/> both
7855 visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
7856 one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
7858 image,<wbr/> has no user control,<wbr/> and may have other artifacts
7859 depending on the HDR method used.<wbr/></p>
7860 <p>Therefore,<wbr/> HDR captures operate at a much slower rate
7861 than regular captures.<wbr/></p>
7862 <p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
7863 is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
7864 STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
7865 using a high dynamic range capture technique.<wbr/> On LEGACY
7866 devices,<wbr/> captures that target a JPEG-format output will
7867 be captured with HDR,<wbr/> and the capture intent is not
7868 relevant.<wbr/></p>
7870 of images internally and combining them into one,<wbr/> or it
7872 range capture hardware.<wbr/> In all cases,<wbr/> a single image is
7874 while in HDR mode.<wbr/></p>
7876 produce an HDR image,<wbr/> only YUV and JPEG outputs are
7877 supported for LIMITED/<wbr/>FULL device HDR captures,<wbr/> and only
7879 captures.<wbr/> Using a RAW output for HDR capture is not
7880 supported.<wbr/></p></span>
7887 <p>Control for which scene mode is currently active.<wbr/></p>
7894 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
7910 capture settings.<wbr/></p>
7912 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/>
7913 these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
7914 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> while in use.<wbr/></p>
7916 to the implementor of the camera device.<wbr/> Their behavior will not be
7917 consistent across all devices,<wbr/> and any given device may only implement
7918 a subset of these modes.<wbr/></p>
7928 the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
7929 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
7930 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
7931 <p>For HIGH_<wbr/>SPEED_<wbr/>VIDEO mode,<wbr/> if it is included in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/>
7933 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> For a given size,<wbr/> e.<wbr/>g.<wbr/>
7934 1280x720,<wbr/> if the HAL has two different sensor configurations for normal streaming
7935 mode and high speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture
7936 requests,<wbr/> the HAL may have to switch between different sensor modes.<wbr/></p>
7947 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
7962 <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
7966 <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
7974 active.<wbr/></p>
7996 the camera in order to stabilize motion between consecutive frames.<wbr/></p>
7997 <p>If enabled,<wbr/> video stabilization can modify the
7998 <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
8000 frames to initialize,<wbr/> the camera device will report the current mode
8001 in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
8003 still be "OFF",<wbr/> and it will become "ON" when the initialization is
8004 done.<wbr/></p>
8006 (<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
8007 produce undesirable interaction,<wbr/> so it is recommended not to enable
8008 both at the same time.<wbr/></p>
8052 android.<wbr/>demosaic.<wbr/>mode
8067 Bayer RAW output.<wbr/></p></span>
8072 relative to raw output.<wbr/></p></span>
8080 processing.<wbr/></p>
8137 android.<wbr/>edge.<wbr/>mode
8152 <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
8161 <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of reducing output frame rate.<wbr/></p></span>
8169 enhancement.<wbr/></p>
8176 <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
8191 <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
8192 no enhancement will be applied by the camera device.<wbr/></p>
8193 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
8194 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
8195 camera device will use the highest-quality enhancement algorithms,<wbr/>
8196 even if it slows down capture rate.<wbr/> FAST means the camera device will
8197 not slow down capture rate when applying edge enhancement.<wbr/></p>
8209 android.<wbr/>edge.<wbr/>strength
8278 android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes
8299 <p>List of edge enhancement modes for <a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a> that are supported by this camera
8300 device.<wbr/></p>
8307 <p>Any value listed in <a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></p>
8322 <p>Full-capability camera devices must always support OFF; all devices will list FAST.<wbr/></p>
8361 android.<wbr/>edge.<wbr/>mode
8376 <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
8385 <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of reducing output frame rate.<wbr/></p></span>
8393 enhancement.<wbr/></p>
8400 <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
8415 <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
8416 no enhancement will be applied by the camera device.<wbr/></p>
8417 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
8418 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
8419 camera device will use the highest-quality enhancement algorithms,<wbr/>
8420 even if it slows down capture rate.<wbr/> FAST means the camera device will
8421 not slow down capture rate when applying edge enhancement.<wbr/></p>
8465 android.<wbr/>flash.<wbr/>firing<wbr/>Power
8480 <p>Power for flash firing/<wbr/>torch</p>
8484 10 is max power; 0 is no flash.<wbr/> Linear
8504 for torch mode.<wbr/> Only one entry for torch mode will be
8517 android.<wbr/>flash.<wbr/>firing<wbr/>Time
8556 <p>Clamped to (0,<wbr/> exposure time - flash
8557 duration).<wbr/></p>
8569 android.<wbr/>flash.<wbr/>mode
8584 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
8588 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
8589 for this capture.<wbr/></p></span>
8593 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
8600 <p>The desired mode for for the camera device's flash control.<wbr/></p>
8622 (<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
8623 <p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
8624 Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
8625 ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
8626 <p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
8627 <p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
8628 device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
8630 (<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
8631 <p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
8632 for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
8633 <p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
8674 android.<wbr/>flash.<wbr/>info.<wbr/>available
8699 flash unit.<wbr/></p>
8720 <p>Will be <code>false</code> if no flash is available.<wbr/></p>
8721 <p>If there is no flash unit,<wbr/> none of the flash controls do
8722 anything.<wbr/></p>
8734 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
8773 <p>1 second too long/<wbr/>too short for recharge? Should
8789 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
8804 <p>The x,<wbr/>y whitepoint of the
8832 android.<wbr/>flash.<wbr/>max<wbr/>Energy
8902 android.<wbr/>flash.<wbr/>firing<wbr/>Power
8917 <p>Power for flash firing/<wbr/>torch</p>
8921 10 is max power; 0 is no flash.<wbr/> Linear
8941 for torch mode.<wbr/> Only one entry for torch mode will be
8954 android.<wbr/>flash.<wbr/>firing<wbr/>Time
8993 <p>Clamped to (0,<wbr/> exposure time - flash
8994 duration).<wbr/></p>
9006 android.<wbr/>flash.<wbr/>mode
9021 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
9025 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
9026 for this capture.<wbr/></p></span>
9030 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
9037 <p>The desired mode for for the camera device's flash control.<wbr/></p>
9059 (<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
9060 <p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
9061 Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
9062 ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
9063 <p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
9064 <p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
9065 device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
9067 (<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
9068 <p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
9069 for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
9070 <p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
9082 android.<wbr/>flash.<wbr/>state
9097 <span class="entry_type_enum_notes"><p>No flash on camera.<wbr/></p></span>
9101 <span class="entry_type_enum_notes"><p>Flash is charging and cannot be fired.<wbr/></p></span>
9105 <span class="entry_type_enum_notes"><p>Flash is ready to fire.<wbr/></p></span>
9109 <span class="entry_type_enum_notes"><p>Flash fired for this capture.<wbr/></p></span>
9113 <span class="entry_type_enum_notes"><p>Flash partially illuminated this frame.<wbr/></p>
9115 the flash fire,<wbr/> and the flash spilling into this capture
9116 due to hardware limitations.<wbr/></p></span>
9124 unit.<wbr/></p>
9143 (i.<wbr/>e.<wbr/> <code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == false</code>),<wbr/> this state will always be UNAVAILABLE.<wbr/>
9144 Other states indicate the current flash status.<wbr/></p>
9145 <p>In certain conditions,<wbr/> this will be available on LEGACY devices:</p>
9147 <li>Flash-less cameras always return UNAVAILABLE.<wbr/></li>
9148 <li>Using <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>==</code> ON_<wbr/>ALWAYS_<wbr/>FLASH
9149 will always return FIRED.<wbr/></li>
9150 <li>Using <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> <code>==</code> TORCH
9151 will always return FIRED.<wbr/></li>
9154 LEGACY devices (i.<wbr/>e.<wbr/> it will be <code>null</code>).<wbr/></p>
9198 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
9212 <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
9214 for this option.<wbr/></p>
9215 <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>
9219 <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
9220 rate relative to sensor raw output.<wbr/></p>
9221 wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
9225 <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
9226 of reducing frame rate relative to sensor raw output.<wbr/></p>
9227 <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>
9234 <p>Operational mode for hot pixel correction.<wbr/></p>
9241 <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
9257 <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
9258 that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
9259 are stuck at an arbitrary value or are oversensitive).<wbr/></p>
9298 android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes
9318 <p>List of hot pixel correction modes for <a href="#controls_android.hotPixel.mode">android.<wbr/>hot<wbr/>Pixel.<wbr/>mode</a> that are supported by this
9319 camera device.<wbr/></p>
9326 <p>Any value listed in <a href="#controls_android.hotPixel.mode">android.<wbr/>hot<wbr/>Pixel.<wbr/>mode</a></p>
9342 <p>FULL mode camera devices will always support FAST.<wbr/></p>
9351 <p>To avoid performance issues,<wbr/> there will be significantly fewer hot
9352 pixels than actual pixels on the camera sensor.<wbr/></p>
9390 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
9404 <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
9406 for this option.<wbr/></p>
9407 <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>
9411 <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
9412 rate relative to sensor raw output.<wbr/></p>
9413 <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>
9417 <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
9418 of reducing frame rate relative to sensor raw output.<wbr/></p>
9419 <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>
9426 <p>Operational mode for hot pixel correction.<wbr/></p>
9433 <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
9449 <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
9450 that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
9451 are stuck at an arbitrary value or are oversensitive).<wbr/></p>
9495 android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
9512 <p>A location object to use when generating image GPS metadata.<wbr/></p>
9531 into any JPEG images captured based on the request.<wbr/> These coordinates can then be
9532 viewed by anyone who receives the JPEG image.<wbr/></p>
9544 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
9559 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
9566 EXIF.<wbr/></p>
9573 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
9592 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
9609 include in EXIF.<wbr/></p>
9635 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
9652 EXIF.<wbr/></p>
9656 UTC in seconds since January 1,<wbr/> 1970
9678 android.<wbr/>jpeg.<wbr/>orientation
9694 <p>The orientation for a JPEG image.<wbr/></p>
9702 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
9717 <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
9718 to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
9719 upright.<wbr/></p>
9720 <p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
9721 rotate the image data to match this orientation.<wbr/></p>
9722 <p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
9723 by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
9724 <p>To translate from the device orientation given by the Android sensor APIs,<wbr/> the following
9726 <pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
9727 if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
9728 int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);
9730 //<wbr/> Round device orientation to a multiple of 90
9731 wbr/> 90 * 90;
9733 //<wbr/> Reverse device orientation for front-facing cameras
9734 boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
9737 //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
9738 //<wbr/> the image upright relative to the device orientation
9755 android.<wbr/>jpeg.<wbr/>quality
9772 image.<wbr/></p>
9794 <p>85-95 is typical usage range.<wbr/></p>
9806 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
9823 thumbnail.<wbr/></p>
9849 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
9869 <p>Resolution of embedded JPEG thumbnail.<wbr/></p>
9876 <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
9891 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
9892 but the captured JPEG will still be a valid image.<wbr/></p>
9893 <p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
9894 should have the same aspect ratio as the main JPEG output.<wbr/></p>
9896 ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
9897 For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
9898 16:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
9899 generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
9900 Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
9909 <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
9910 The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
9911 The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
9912 thumbnail image cropping.<wbr/></p>
9950 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
9970 <p>List of JPEG thumbnail sizes for <a href="#controls_android.jpeg.thumbnailSize">android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size</a> supported by this
9971 camera device.<wbr/></p>
9992 <p>This list will include at least one non-zero resolution,<wbr/> plus <code>(0,<wbr/>0)</code> for indicating no
9993 thumbnail should be generated.<wbr/></p>
9996 <li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
9997 If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
9999 aspect ratio of largest JPEG output size in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/>
10001 in a given size list.<wbr/></li>
10002 <li>Each output JPEG size in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> will have at least
10003 one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
10004 and vice versa.<wbr/></li>
10005 <li>All non-<code>(0,<wbr/> 0)</code> sizes will have non-zero widths and heights.<wbr/></li>
10018 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
10094 android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
10111 <p>A location object to use when generating image GPS metadata.<wbr/></p>
10130 into any JPEG images captured based on the request.<wbr/> These coordinates can then be
10131 viewed by anyone who receives the JPEG image.<wbr/></p>
10143 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
10158 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
10165 EXIF.<wbr/></p>
10172 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
10191 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
10208 include in EXIF.<wbr/></p>
10234 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
10251 EXIF.<wbr/></p>
10255 UTC in seconds since January 1,<wbr/> 1970
10277 android.<wbr/>jpeg.<wbr/>orientation
10293 <p>The orientation for a JPEG image.<wbr/></p>
10301 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
10316 <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
10317 to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
10318 upright.<wbr/></p>
10319 <p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
10320 rotate the image data to match this orientation.<wbr/></p>
10321 <p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
10322 by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
10323 <p>To translate from the device orientation given by the Android sensor APIs,<wbr/> the following
10325 <pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
10326 if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
10327 int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);
10329 //<wbr/> Round device orientation to a multiple of 90
10330 deviceOrientation = (deviceOrientation + 45) /<wbr/> 90 * 90;
10332 //<wbr/> Reverse device orientation for front-facing cameras
10333 boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
10336 //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
10337 //<wbr/> the image upright relative to the device orientation
10354 android.<wbr/>jpeg.<wbr/>quality
10371 image.<wbr/></p>
10393 <p>85-95 is typical usage range.<wbr/></p>
10405 android.<wbr/>jpeg.<wbr/>size
10420 <p>The size of the compressed JPEG image,<wbr/> in
10443 <p>If no JPEG output is produced for the request,<wbr/>
10444 this must be 0.<wbr/></p>
10445 <p>Otherwise,<wbr/> this describes the real size of the compressed
10446 JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
10447 if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
10448 has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
10449 the JPEG stream will be 1000000 bytes,<wbr/> of which the first
10450 500000 make up the real data.<wbr/></p>
10462 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
10479 thumbnail.<wbr/></p>
10505 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
10525 <p>Resolution of embedded JPEG thumbnail.<wbr/></p>
10532 <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
10547 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
10548 but the captured JPEG will still be a valid image.<wbr/></p>
10549 <p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
10550 should have the same aspect ratio as the main JPEG output.<wbr/></p>
10552 ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
10553 For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
10554 16:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
10555 generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
10556 Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
10565 <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
10566 The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
10567 The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
10568 thumbnail image cropping.<wbr/></p>
10611 android.<wbr/>lens.<wbr/>aperture
10627 <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
10628 effective aperture diameter.<wbr/></p>
10632 The f-number (f/<wbr/>N)
10636 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
10652 aperture lens.<wbr/></p>
10653 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
10654 this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
10655 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>
10656 to achieve manual exposure control.<wbr/></p>
10659 aperture size in capture result metadata while the aperture is changing.<wbr/>
10660 While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
10661 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
10662 the ON modes,<wbr/> this will be overridden by the camera device
10663 auto-exposure algorithm,<wbr/> the overridden values are then provided
10664 back to the user in the corresponding result.<wbr/></p>
10676 android.<wbr/>lens.<wbr/>filter<wbr/>Density
10692 <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
10700 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
10715 <p>This control will not be supported on most camera devices.<wbr/></p>
10717 sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
10718 step is the standard logarithmic representation,<wbr/> which are
10719 non-negative,<wbr/> and inversely proportional to the amount of light
10720 hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
10721 in no reduction of the incoming light,<wbr/> and setting this to 2 would
10723 (allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
10725 to the requested value.<wbr/> While the filter density is still changing,<wbr/>
10726 <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
10738 android.<wbr/>lens.<wbr/>focal<wbr/>Length
10754 <p>The desired lens focal length; used for optical zoom.<wbr/></p>
10762 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
10778 device's lens.<wbr/> Changing the focal length changes the field of
10779 view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
10780 <p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
10781 setting won't be applied instantaneously,<wbr/> and it may take several
10782 frames before the lens can change to the requested focal length.<wbr/>
10783 While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
10784 be set to MOVING.<wbr/></p>
10785 <p>Optical zoom will not be supported on most devices.<wbr/></p>
10797 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
10813 <p>Desired distance to plane of sharpest focus,<wbr/>
10814 measured from frontmost surface of the lens.<wbr/></p>
10818 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
10838 <p>This control can be used for setting manual focus,<wbr/> on devices that support
10839 the MANUAL_<wbr/>SENSOR capability and have a variable-focus lens (see
10840 <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>).<wbr/></p>
10841 <p>A value of <code>0.<wbr/>0f</code> means infinity focus.<wbr/> The value set will be clamped to
10842 <code>[0.<wbr/>0f,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code>.<wbr/></p>
10843 <p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
10844 instantaneously,<wbr/> and it may take several frames before the lens
10845 can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
10846 <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
10847 <p>LEGACY devices support at most setting this to <code>0.<wbr/>0f</code>
10848 for infinity focus.<wbr/></p>
10860 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
10875 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
10880 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
10888 when capturing images.<wbr/></p>
10895 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
10911 movements of the camera during capture.<wbr/> Unlike digital image
10912 stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
10914 sensor,<wbr/> and thus allows for longer exposure times before
10915 camera shake becomes apparent.<wbr/></p>
10917 frames to initialize,<wbr/> the camera device will report the current mode in
10918 capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
10920 be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
10922 (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
10923 interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
10925 <a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
10926 available controls.<wbr/></p>
10967 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
10987 <p>List of aperture size values for <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a> that are
10988 supported by this camera device.<wbr/></p>
11010 <p>If the camera device doesn't support a variable lens aperture,<wbr/>
11011 this list will contain only one value,<wbr/> which is the fixed aperture size.<wbr/></p>
11012 <p>If the camera device supports a variable aperture,<wbr/> the aperture values
11013 in this list will be sorted in ascending order.<wbr/></p>
11025 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
11046 <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> that are supported by this camera device.<wbr/></p>
11069 <p>If a neutral density filter is not supported by this camera device,<wbr/>
11070 this list will contain only 0.<wbr/> Otherwise,<wbr/> this list will include every
11071 filter density supported by the camera device,<wbr/> in ascending order.<wbr/></p>
11083 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
11104 <p>List of focal lengths for <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a> that are supported by this camera
11105 device.<wbr/></p>
11129 <p>If optical zoom is not supported,<wbr/> this list will only contain
11131 device.<wbr/> Otherwise,<wbr/> this list will include every focal length supported
11132 by the camera device,<wbr/> in ascending order.<wbr/></p>
11144 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
11166 <a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> that are supported by this camera device.<wbr/></p>
11173 <p>Any value listed in <a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a></p>
11188 <p>If OIS is not supported by a given camera device,<wbr/> this list will
11189 contain only OFF.<wbr/></p>
11201 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
11217 <p>Hyperfocal distance for this lens.<wbr/></p>
11221 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
11225 <p>If lens is fixed focus,<wbr/> &gt;= 0.<wbr/> If lens has focuser unit,<wbr/> the value is
11226 within <code>(0.<wbr/>0f,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code></p>
11238 <p>If the lens is not fixed focus,<wbr/> the camera device will report this
11239 field when <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a> is APPROXIMATE or CALIBRATED.<wbr/></p>
11251 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
11268 of the lens that can be brought into sharp focus.<wbr/></p>
11272 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
11291 <p>If the lens is fixed-focus,<wbr/> this will be
11292 0.<wbr/></p>
11303 the minimum focus distance otherwise.<wbr/></p>
11305 the MANUAL_<wbr/>SENSOR capability.<wbr/></p>
11316 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
11331 <div class="entry_type_notes">width and height (N,<wbr/> M) of lens shading map provided by the camera device.<wbr/></div>
11337 <p>Dimensions of lens shading map.<wbr/></p>
11359 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
11360 must be smaller than 64x64.<wbr/></p>
11372 android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration
11387 <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
11388 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/></p>
11390 result in a different real focus distance,<wbr/> depending on factors such
11391 as the orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/>
11392 and the device temperature.<wbr/> The focus distance value will still be
11393 in the range of <code>[0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code>,<wbr/> where 0
11394 represents the farthest focus.<wbr/></p></span>
11398 <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/></p>
11399 <p>However,<wbr/> setting the lens to the same focus distance
11401 focus distance,<wbr/> depending on factors such as the
11402 orientation of the device,<wbr/> the age of the focusing
11403 mechanism,<wbr/> and the device temperature.<wbr/></p></span>
11407 <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters,<wbr/> and
11408 is calibrated.<wbr/></p>
11411 occasions with good accuracy,<wbr/> and the focus distance
11413 of best focus.<wbr/></p></span>
11420 <p>The lens focus distance calibration quality.<wbr/></p>
11442 focus related metadata entries,<wbr/> i.<wbr/>e.<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
11443 <a href="#dynamic_android.lens.focusRange">android.<wbr/>lens.<wbr/>focus<wbr/>Range</a>,<wbr/> <a href="#static_android.lens.info.hyperfocalDistance">android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance</a>,<wbr/> and
11444 <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>.<wbr/></p>
11446 units of diopters (1/<wbr/>meter),<wbr/> so <code>0.<wbr/>0f</code> represents focusing at infinity,<wbr/>
11448 to the camera device.<wbr/> The focus distance control also uses diopters
11449 on these devices.<wbr/></p>
11451 to any real physical measurement,<wbr/> but <code>0.<wbr/>0f</code> still represents farthest
11452 focus,<wbr/> and <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> represents the
11453 nearest focus the device can achieve.<wbr/></p>
11462 <p>For devices advertise APPROXIMATE quality or higher,<wbr/> diopters 0 (infinity
11463 focus) must work.<wbr/> When autofocus is disabled (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> == OFF)
11465 (<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> == 0),<wbr/> the lens will move to focus at infinity
11466 and is stably focused at infinity even if the device tilts.<wbr/> It may take the
11468 the output diopter value should be changing toward 0.<wbr/></p>
11482 android.<wbr/>lens.<wbr/>facing
11497 <span class="entry_type_enum_notes"><p>The camera device faces the same direction as the device's screen.<wbr/></p></span>
11501 <span class="entry_type_enum_notes"><p>The camera device faces the opposite direction as the device's screen.<wbr/></p></span>
11509 device screen.<wbr/></p>
11531 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
11545 <div class="entry_type_notes">degrees.<wbr/> First defines the angle of separation between the perpendicular to the screen and the camera optical axis.<wbr/> The second then defines the clockwise rotation of the optical axis from native device up.<wbr/></div>
11559 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
11575 <p>(0,<wbr/>0) means that the camera optical axis
11577 <p>(45,<wbr/>0) means that the camera points 45 degrees up when
11579 <p>(45,<wbr/>90) means the camera points 45 degrees to the right when
11580 the device is held upright.<wbr/></p>
11594 android.<wbr/>lens.<wbr/>position
11667 android.<wbr/>lens.<wbr/>aperture
11683 <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
11684 effective aperture diameter.<wbr/></p>
11688 The f-number (f/<wbr/>N)
11692 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
11708 aperture lens.<wbr/></p>
11709 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
11710 this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
11711 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>
11712 to achieve manual exposure control.<wbr/></p>
11715 aperture size in capture result metadata while the aperture is changing.<wbr/>
11716 While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
11717 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
11718 the ON modes,<wbr/> this will be overridden by the camera device
11719 auto-exposure algorithm,<wbr/> the overridden values are then provided
11720 back to the user in the corresponding result.<wbr/></p>
11732 android.<wbr/>lens.<wbr/>filter<wbr/>Density
11748 <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
11756 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
11771 <p>This control will not be supported on most camera devices.<wbr/></p>
11773 sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
11774 step is the standard logarithmic representation,<wbr/> which are
11775 non-negative,<wbr/> and inversely proportional to the amount of light
11776 hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
11777 in no reduction of the incoming light,<wbr/> and setting this to 2 would
11779 (allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
11781 to the requested value.<wbr/> While the filter density is still changing,<wbr/>
11782 <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
11794 android.<wbr/>lens.<wbr/>focal<wbr/>Length
11810 <p>The desired lens focal length; used for optical zoom.<wbr/></p>
11818 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
11834 device's lens.<wbr/> Changing the focal length changes the field of
11835 view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
11836 <p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
11837 setting won't be applied instantaneously,<wbr/> and it may take several
11838 frames before the lens can change to the requested focal length.<wbr/>
11839 While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
11840 be set to MOVING.<wbr/></p>
11841 <p>Optical zoom will not be supported on most devices.<wbr/></p>
11853 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
11869 <p>Desired distance to plane of sharpest focus,<wbr/>
11870 measured from frontmost surface of the lens.<wbr/></p>
11874 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
11905 android.<wbr/>lens.<wbr/>focus<wbr/>Range
11927 sharp focus (depth of field).<wbr/></p>
11931 A pair of focus distances in diopters: (near,<wbr/>
11932 far); see android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
11951 <p>If variable focus not supported,<wbr/> can still report
11964 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
11979 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
11984 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
11992 when capturing images.<wbr/></p>
11999 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
12015 movements of the camera during capture.<wbr/> Unlike digital image
12016 stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
12018 sensor,<wbr/> and thus allows for longer exposure times before
12019 camera shake becomes apparent.<wbr/></p>
12021 frames to initialize,<wbr/> the camera device will report the current mode in
12022 capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
12024 be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
12026 (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
12027 interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
12029 <a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
12030 available controls.<wbr/></p>
12042 android.<wbr/>lens.<wbr/>state
12057 <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/>
12058 <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbrwbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
12063 (<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/>
12064 <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
12065 currently changing.<wbr/></p></span>
12072 <p>Current lens status.<wbr/></p>
12093 <p>For 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/>
12094 <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>,<wbr/> when changes are requested,<wbr/>
12095 they may take several frames to reach the requested values.<wbr/> This state indicates
12096 the current status of the lens parameters.<wbr/></p>
12097 <p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
12098 either because the parameters are all fixed,<wbr/> or because the lens has had enough
12099 time to reach the most recently-requested values.<wbr/>
12100 If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
12102 <li>Fixed focus (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> == 0</code>),<wbr/> which means
12103 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
12104 <li>Fixed focal length (<a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a> contains single value),<wbr/>
12105 which means the optical zoom is not supported.<wbr/></li>
12106 <li>No ND filter (<a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a> contains only 0).<wbr/></li>
12107 <li>Fixed aperture (<a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a> contains single value).<wbr/></li>
12109 <p>Then this state will always be STATIONARY.<wbr/></p>
12110 <p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
12111 is changing.<wbr/></p>
12155 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
12170 <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
12175 output.<wbr/></p></span>
12179 <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of reducing frame rate
12180 relative to sensor output.<wbr/></p></span>
12187 <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
12194 <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
12210 excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/>
12211 OFF means no noise reduction will be applied by the camera device.<wbr/></p>
12212 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
12213 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
12214 will use the highest-quality noise filtering algorithms,<wbr/>
12215 even if it slows down capture rate.<wbr/> FAST means the camera device will not
12216 slow down capture rate when applying noise filtering.<wbr/></p>
12228 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
12298 android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes
12319 <p>List of noise reduction modes for <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> that are supported
12320 by this camera device.<wbr/></p>
12327 <p>Any value listed in <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></p>
12342 <p>Full-capability camera devices will always support OFF and FAST.<wbr/></p>
12343 <p>Legacy-capability camera devices will only support FAST mode.<wbr/></p>
12382 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
12397 <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
12402 output.<wbr/></p></span>
12406 <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of reducing frame rate
12407 relative to sensor output.<wbr/></p></span>
12414 <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
12421 <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
12437 excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/>
12438 OFF means no noise reduction will be applied by the camera device.<wbr/></p>
12439 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
12440 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
12441 will use the highest-quality noise filtering algorithms,<wbr/>
12442 even if it slows down capture rate.<wbr/> FAST means the camera device will not
12443 slow down capture rate when applying noise filtering.<wbr/></p>
12488 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
12504 <p>If set to 1,<wbr/> the camera service does not
12506 region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
12507 and output (face rectangles).<wbr/></p>
12527 (-1000,<wbr
12528 android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
12530 sensor array-relative coordinates for all region data.<wbr/> Does
12531 not need to be listed in static metadata.<wbr/> Support will be
12532 removed in future versions of camera service.<wbr/></p>
12545 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
12561 <p>If set to 1,<wbr/> then the camera service always
12562 switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
12563 trigger.<wbr/></p>
12583 modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
12584 CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
12585 not need to be listed in static metadata.<wbr/> Support will be
12599 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
12615 <p>If set to 1,<wbr/> the camera service uses
12616 CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
12617 HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
12639 zero-shutter-lag,<wbr/> instead of relying on an explicit
12640 format setting.<wbr/> Does not need to be listed in static
12641 metadata.<wbr/> Support will be removed in future versions of
12642 camera service.<wbr/></p>
12655 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
12671 <p>If set to 1,<wbr/> the HAL will always split result
12672 metadata for a single capture into multiple buffers,<wbr/>
12673 returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
12693 metadata.<wbr/> Support for partial results will be reworked in
12694 future versions of camera service.<wbr/> This quirk will stop
12696 consideration of future support.<wbr/></p>
12705 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
12706 for information on how to implement partial results.<wbr/></p>
12745 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
12761 for this capture.<wbr/></p></span>
12766 capture.<wbr/> More result buffers for this capture will be sent
12767 by the camera device,<wbr/> the last of which will be marked
12768 FINAL.<wbr/></p></span>
12776 final one for the capture,<wbr/> or only a partial that contains a
12778 values.<wbr/></p>
12786 <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
12799 single capture may not overlap,<wbr/> except for this entry.<wbr/> The
12801 requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
12802 always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
12803 before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
12804 in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
12805 capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
12806 only be used by the camera device if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
12815 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
12816 for information on how to implement partial results.<wbr/></p>
12860 android.<wbr/>request.<wbr/>frame<wbr/>Count
12876 <p>A frame counter set by the framework.<wbr/> Must
12877 be maintained unchanged in output frame.<wbr/> This value monotonically
12878 increases with every new result (that is,<wbr/> each new result has a unique
12879 frameCount value).<wbr/></p>
12888 <p>Any int.<wbr/></p>
12904 android.<wbr/>request.<wbr/>id
12920 request.<wbr/> Must be maintained unchanged in output
12949 android.<wbr/>request.<wbr/>input<wbr/>Streams
12970 for the source of reprocessing data.<wbr/></p>
12979 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
12994 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
12995 REPROCESS.<wbr/> Ignored otherwise</p>
13007 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
13021 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
13022 for application-bound buffer data.<wbr/> If no
13023 application-bound streams exist,<wbr/> no frame should be
13024 placed in the output frame queue.<wbr/> If such streams
13025 exist,<wbr/> a frame should be placed on the output queue
13027 information.<wbr/> Timestamp information should still be
13032 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
13068 android.<wbr/>request.<wbr/>output<wbr/>Streams
13114 <p>If no output streams are listed,<wbr/> then the image
13115 data should simply be discarded.<wbr/> The image data must
13116 still be captured for metadata and statistics production,<wbr/>
13117 and the lens and flash must operate as requested.<wbr/></p>
13130 android.<wbr/>request.<wbr/>type
13145 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
13152 <a href="#controls_android.request.inputStreams">android.<wbr/>request.<wbr/>input<wbr/>Streams</a> parameter determines the
13153 source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
13162 REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
13215 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
13236 that can be configured and used simultaneously by a camera device.<wbr/></p>
13243 <p>For processed (and stalling) format streams,<wbr/> &gt;= 1.<wbr/></p>
13244 <p>For Raw format (either stalling or non-stalling) streams,<wbr/> &gt;= 0.<wbr/></p>
13245 <p>For processed (but not stalling) format streams,<wbr/> &gt;= 3
13246 for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
13247 &gt;= 2 for LIMITED mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/></p>
13263 streams for raw sensor,<wbr/> processed (but not stalling),<wbr/> and processed (and stalling)
13264 formats respectively.<wbr/> For example,<wbr/> assuming that JPEG is typically a processed and
13265 stalling stream,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
13266 number is 3,<wbr/> and max JPEG stream number is 2,<wbr/> then this tuple should be <code>(1,<wbr/> 3,<wbr/> 2)</code>.<wbr/></p>
13268 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
13269 CPU resources that will consume more power.<wbr/> The image format for an output stream can
13270 be any supported format provided by <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/>
13271 The formats defined in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> can be catergorized
13274 <li>Processed (but stalling): any non-RAW format with a stallDurations &gt; 0.<wbr/>
13275 Typically JPEG format (ImageFormat#JPEG).<wbr/></li>
13276 <li>Raw formats: ImageFormat#RAW_<wbr/>SENSOR,<wbr/> ImageFormat#RAW10 and ImageFormat#RAW_<wbr/>OPAQUE.<wbr/></li>
13277 <li>Processed (but not-stalling): any non-RAW format without a stall duration.<wbr/>
13278 Typically Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888,<wbr/> ImageFormat#NV21,<wbr/> ImageFormat#YV12.<wbr/></li>
13291 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw
13310 for any <code>RAW</code> formats.<wbr/></p>
13330 streams from the raw sensor.<wbr/></p>
13332 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
13333 CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
13334 be any <code>RAW</code> and supported format provided by <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/></p>
13335 <p>In particular,<wbr/> a <code>RAW</code> format is typically one of:</p>
13337 <li>ImageFormat#RAW_<wbr/>SENSOR</li>
13341 <p>LEGACY mode devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> LEGACY)
13342 never support raw streams.<wbr/></p>
13354 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc
13373 for any processed (but not-stalling) formats.<wbr/></p>
13381 for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
13382 &gt;= 2 for LIMITED mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/></p>
13395 streams for any processed (but not-stalling) formats.<wbr/></p>
13397 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
13398 CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
13399 be any non-<code>RAW</code> and supported format provided by <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/></p>
13400 <p>Processed (but not-stalling) is defined as any non-RAW format without a stall duration.<wbr/>
13403 <li>Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</li>
13406 <li>Implementation-defined formats,<wbr/> i.<wbr/>e.<wbr/> StreamConfiguration#isOutputSupportedFor(Class)</li>
13408 <p>For full guarantees,<wbr/> query StreamConfigurationMap#getOutputStallDuration with
13409 a processed format -- it will return 0 for a non-stalling stream.<wbr/></p>
13410 <p>LEGACY devices will support at least 2 processing/<wbr/>non-stalling streams.<wbr/></p>
13422 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc<wbr/>Stalling
13441 for any processed (and stalling) formats.<wbr/></p>
13461 streams for any processed (but not-stalling) formats.<wbr/></p>
13463 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
13464 CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
13465 be any non-<code>RAW</code> and supported format provided by <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/></p>
13466 <p>A processed and stalling format is defined as any non-RAW format with a stallDurations &gt; 0.<wbr/>
13467 Typically only the <code>JPEG</code> format (ImageFormat#JPEG) is a stalling format.<wbr/></p>
13468 <p>For full guarantees,<wbr/> query StreamConfigurationMap#getOutputStallDuration with
13469 a processed format -- it will return a non-0 value for a stalling stream.<wbr/></p>
13470 wbr/>stalling stream.<wbr/></p>
13483 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
13504 can be allocated at the same time.<wbr/></p>
13527 <p>Only used by HAL2.<wbr/>x.<wbr/></p>
13528 <p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
13540 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
13557 that can be configured and used simultaneously by a camera device.<wbr/></p>
13564 <p>0 or 1.<wbr/></p>
13576 <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
13579 <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/> When using an
13580 input stream,<wbr/> there must be at least one output stream
13581 configured to to receive the reprocessed images.<wbr/></p>
13582 <p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
13583 stream image format will be RAW_<wbr/>OPAQUE,<wbr/> the associated output stream image format
13584 should be JPEG.<wbr/></p>
13596 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
13614 to the framework.<wbr/></p>
13632 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
13633 one stage to readout) from the sensor.<wbr/> The ISP then usually adds
13634 its own stages to do custom HW processing.<wbr/> Further stages may be
13635 added by SW processing.<wbr/></p>
13636 <p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
13637 processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
13638 depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
13639 the max pipeline depth.<wbr/></p>
13641 X frame intervals.<wbr/></p>
13642 <p>This value will be 8 or less.<wbr/></p>
13651 <p>This value should be 4 or less.<wbr/></p>
13662 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
13678 a result will be composed of.<wbr/></p>
13697 <p>In order to combat the pipeline latency,<wbr/> partial results
13699 soon as they are available.<wbr/></p>
13700 <p>Optional; defaults to 1.<wbr/> A value of 1 means that partial
13701 results are not supported,<wbr/> and only the final TotalCaptureResult will
13702 be produced by the camera device.<wbr/></p>
13705 of the way through the pipeline.<wbr/> The camera device could
13707 the application,<wbr/> and the rest of the metadata via later
13708 partial results.<wbr/></p>
13720 android.<wbr/>request.<wbr/>available<wbr/>Capabilities
13740 device (regardless of <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>)
13741 supports.<wbr/></p>
13742 <p>This capability is listed by all devices,<wbr/> and
13745 older android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p></span>
13751 as auto-exposure,<wbr/> and auto-focus can be bypassed).<wbr/>
13753 acquisition related stages.<wbr/> This means the following controls are
13757 <li><a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a></li>
13758 <li><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a></li>
13762 <li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
13763 <li><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></li>
13767 <li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
13768 <li><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></li>
13772 <li>android.<wbr/>lens.<wbr/>*</li>
13776 <li>android.<wbr/>flash.<wbr/>*</li>
13780 <li><a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a></li>
13784 <p>If any of the above 3A algorithms are enabled,<wbr/> then the camera
13786 result.<wbr/></p>
13787 <p>A given camera device may also support additional manual sensor controls,<wbr/>
13788 but this capability only covers the above list of controls.<wbr/></p>
13789 <p>If this is supported,<wbr/> <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> will
13791 zero for each supported size-format combination.<wbr/></p></span>
13796 <span class="entry_type_enum_notes"><p>The camera device post-processing stages can be manually controlled.<wbr/>
13798 stages.<wbr/> This means the following controls are guaranteed to be supported:</p>
13801 <li><a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a></li>
13802 <li><a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></li>
13803 <li><a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></li>
13807 <li><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a></li>
13808 <li><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a></li>
13812 <li><a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a></li>
13813 <li><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a></li>
13814 <li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a></li>
13815 <li><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a></li>
13819 <li><a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></li>
13820 <li><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></li>
13824 <p>If auto white balance is enabled,<wbr/> then the camera device
13825 will accurately report the values applied by AWB in the result.<wbr/></p>
13827 controls,<wbr/> but this capability only covers the above list of controls.<wbr/></p></span>
13833 metadata for interpreting them.<wbr/></p>
13835 saving DNG files,<wbr/> and for direct application processing of
13836 raw sensor images.<wbr/></p>
13838 <li>RAW_<wbr/>SENSOR is supported as an output format.<wbr/></li>
13839 <li>The maximum available resolution for RAW_<wbr/>SENSOR streams
13841 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a> or
13842 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
13844 by the camera device.<wbr/></li>
13851 <span class="entry_type_enum_notes"><p>The camera device supports the Zero Shutter Lag use case.<wbr/></p>
13853 <li>At least one input stream can be used.<wbr/></li>
13854 <li>RAW_<wbr/>OPAQUE is supported as an output/<wbr/>input format</li>
13855 <li>Using RAW_<wbr/>OPAQUE does not cause a frame rate drop
13857 resolution).<wbr/></li>
13858 <li>RAW_<wbr/>OPAQUE will be reprocessable into both YUV_<wbr/>420_<wbr/>888
13859 and JPEG formats.<wbr/></li>
13860 <li>The maximum available resolution for RAW_<wbr/>OPAQUE streams
13861 (both input/<wbr/>output) will match the maximum available
13862 resolution of JPEG streams.<wbr/></li>
13869 the sensor controls while the built-in 3A algorithm is running.<wbr/> This allows
13870 reporting of sensor settings even when these settings cannot be manually changed.<wbr/></p>
13872 in the CaptureResult,<wbr/> including when 3A is enabled:</p>
13875 <li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
13879 <li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
13883 <li><a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a></li>
13884 <li><a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a></li>
13888 <p>This capability is a subset of the MANUAL_<wbr/>SENSOR control capability,<wbr/> and will
13889 always be included if the MANUAL_<wbr/>SENSOR capability is available.<wbr/></p></span>
13895 images at &gt;= 20 frames per second,<wbr/> in at least the
13896 uncompressed YUV format,<wbr/> when post-processing settings
13897 are set to FAST.<wbr/></p>
13898 <p>More specifically,<wbr/> this means that a size matching the
13900 supported size for the YUV_<wbr/>420_<wbr/>888 format in
13901 <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>,<wbr/> the minimum frame
13902 duration for that format and size is &lt;= 1/<wbr/>20 s,<wbr/> and
13903 the <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a> entry
13906 <p>= 1 /<wbr/> minimumFrameDuration for the maximum-size
13907 YUV_<wbr/>420_<wbr/>888 format.<wbr/></p>
13909 <p>In addition,<wbr/> the <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> field is
13910 guaranted to have a value between 0 and 4,<wbr/> inclusive.<wbr/></p></span>
13918 advertises as fully supporting.<wbr/></p>
13937 to be able to satisfy one or more use cases.<wbr/></p>
13939 required to support a common use will all be available.<wbr/></p>
13942 to do this query each of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a>,<wbr/>
13943 <a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a>,<wbr/>
13944 <a href="#static_android.request.availableCharacteristicsKeys">android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys</a>.<wbr/></p>
13946 <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> FULL devices:</p>
13948 <li>MANUAL_<wbr/>SENSOR</li>
13949 <li>MANUAL_<wbr/>POST_<wbr/>PROCESSING</li>
13952 devices,<wbr/> but the application should query this key to be sure.<wbr/></p>
13962 in the Compatibility Test Suite.<wbr/></p>
13964 BACKWARD_<wbr/>COMPATIBLE capability are not explicitly listed.<wbr/>
13966 android.<wbr/>hardware.<wbr/>camera2.<wbr/>cts package.<wbr/></p>
13967 <p>Listed controls that can be either request or result (e.<wbr/>g.<wbr/>
13968 <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) must be available both in the
13970 capability-compliant.<wbr/></p>
13971 <p>For example,<wbr/> if the HAL claims to support MANUAL control,<wbr/>
13974 the result.<wbr/></p>
13975 <p>If MANUAL_<wbr/>SENSOR is omitted,<wbr/> the HAL may choose to omit the
13976 <a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> static property entirely.<wbr/></p>
13987 android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys
14008 to use with CaptureRequest.<wbr/></p>
14028 by the camera device.<wbr/></p>
14030 at a more granular level than capabilities.<wbr/> This is especially
14032 in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
14041 <p>Vendor tags must not be listed here.<wbr/> Use the vendor tag metadata
14042 extensions C api instead (refer to camera3.<wbr/>h for more details).<wbr/></p>
14043 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
14044 vendor extensions API and not against this field.<wbr/></p>
14046 here or in the vendor tag list.<wbr/></p>
14048 via CameraCharacteristics#getAvailableCaptureRequestKeys.<wbr/></p>
14059 android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys
14080 to use with CaptureResult.<wbr/></p>
14099 listed here will always return a <code>null</code> value.<wbr/> Getting a key from
14101 value.<wbr/></p>
14104 <li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> (non-null iff <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON)</li>
14107 if they are available.<wbr/>)</p>
14109 at a more granular level than capabilities.<wbr/> This is especially
14111 in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
14120 <p>Tags listed here must always have an entry in the result metadata,<wbr/>
14121 even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
14122 matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
14123 <p>Vendor tags must not be listed here.<wbr/> Use the vendor tag metadata
14124 extensions C api instead (refer to camera3.<wbr/>h for more details).<wbr/></p>
14125 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
14126 vendor extensions API and not against this field.<wbr/></p>
14128 here or in the vendor tag list.<wbr/></p>
14130 via CameraCharacteristics#getAvailableCaptureResultKeys.<wbr/></p>
14141 android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys
14162 to use with CameraCharacteristics.<wbr/></p>
14181 <a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a> (except that it applies for
14182 CameraCharacteristics instead of CaptureResult).<wbr/> See above for more
14183 details.<wbr/></p>
14192 <p>Keys listed here must always have an entry in the static info metadata,<wbr/>
14193 even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
14194 matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
14195 <p>Vendor tags must not be listed here.<wbr/> Use the vendor tag metadata
14196 extensions C api instead (refer to camera3.<wbr/>h for more details).<wbr/></p>
14197 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
14198 vendor extensions API and not against this field.<wbr/></p>
14200 either here or in the vendor tag list.<wbr/></p>
14202 via CameraCharacteristics#getKeys.<wbr/></p>
14241 android.<wbr/>request.<wbr/>frame<wbr/>Count
14257 <p>A frame counter set by the framework.<wbr/> This value monotonically
14258 increases with every new result (that is,<wbr/> each new result has a unique
14259 frameCount value).<wbr/></p>
14292 android.<wbr/>request.<wbr/>id
14308 request.<wbr/> Must be maintained unchanged in output
14336 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
14350 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
14351 for application-bound buffer data.<wbr/> If no
14352 application-bound streams exist,<wbr/> no frame should be
14353 placed in the output frame queue.<wbr/> If such streams
14354 exist,<wbr/> a frame should be placed on the output queue
14356 information.<wbr/> Timestamp information should still be
14361 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
14397 android.<wbr/>request.<wbr/>output<wbr/>Streams
14443 <p>If no output streams are listed,<wbr/> then the image
14444 data should simply be discarded.<wbr/> The image data must
14445 still be captured for metadata and statistics production,<wbr/>
14446 and the lens and flash must operate as requested.<wbr/></p>
14458 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
14476 was available to the framework.<wbr/></p>
14483 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
14495 <p>Depending on what settings are used in the request,<wbr/> and
14496 what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
14497 and some pipeline stages skipped.<wbr/></p>
14498 <p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
14508 pipeline stages were actually used.<wbr/></p>
14551 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
14571 <p>The desired region of the sensor to read out for this capture.<wbr/></p>
14576 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
14594 <p>This control can be used to implement digital zoom.<wbr/></p>
14596 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with <code>(0,<wbr/> 0)</code> being the
14597 top-left corner of the sensor active array.<wbr/></p>
14598 <p>Output streams use this rectangle to produce their output,<wbr/>
14600 stream's aspect ratio,<wbr/> then scaling the sensor input to
14601 match the output's configured resolution.<wbr/></p>
14603 space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
14604 (e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
14605 croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
14606 <p>For non-raw streams,<wbr/> any additional per-stream cropping will
14607 be done to maximize the final pixel area of the stream.<wbr/></p>
14608 <p>For example,<wbr/> if the crop region is set to a 4:3 aspect
14609 ratio,<wbr/> then 4:3 streams will use the exact crop
14610 region.<wbr/> 16:9 streams will further crop vertically
14611 (letterbox).<wbr/></p>
14612 <p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
14613 outputs will crop horizontally (pillarbox),<wbr/> and 16:9
14614 streams will match exactly.<wbr/> These additional crops will
14615 be centered within the crop region.<wbr/></p>
14618 <code>floor( activeArraySize.<wbr/>width /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code> and
14619 <code>floor( activeArraySize.<wbr/>height /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code>,<wbr/> respectively.<wbr/></p>
14623 result.<wbr/></p>
14633 times,<wbr/> no matter what the relative aspect ratios of the
14634 crop region and the stream are.<wbr/> Negative values for
14636 larger than active pixel array.<wbr/> Width and height may be
14637 rounded to nearest larger supportable width,<wbr/> especially
14638 for raw output,<wbr/> where only a few fixed scales may be
14639 possible.<wbr/></p>
14640 <p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
14679 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
14700 <span class="entry_type_enum_notes"><p>RAW16 is a standard,<wbr/> cross-platform format for raw image
14701 buffers with 16-bit pixels.<wbr/></p>
14703 Bayer Color Filter Array (CFA) layout,<wbr/> which is given in
14704 <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>.<wbr/> Sensors with
14706 <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a> should not
14707 use this format.<wbr/></p>
14709 RAW_<wbr/>OPAQUE buffers,<wbr/> but with relaxed performance constraints.<wbr/></p>
14710 <p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for
14711 the full set of performance guarantees.<wbr/></p></span>
14717 <span class="entry_type_enum_notes"><p>RAW_<wbr/>OPAQUE is a format for raw image buffers coming from an
14718 image sensor.<wbr/></p>
14720 platform-specific,<wbr/> but must follow several constraints:</p>
14723 buffers of this type.<wbr/> These buffers contain raw image data coming
14724 directly from the image sensor.<wbr/></li>
14726 reprocessing,<wbr/> the resulting images will be identical to the images
14728 wbr/></li>
14732 any additional conversions or decrease in framerate.<wbr/></p>
14733 <p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for the full set of
14734 performance guarantees.<wbr/></p></span>
14751 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
14769 camera device for output streams.<wbr/></p>
14791 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
14792 <p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
14801 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
14802 system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
14803 <p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
14805 by the camera HAL device and the other endpoint of the stream.<wbr/> It is
14806 usually used by preview and recording streams,<wbr/> where the application doesn't
14807 need access the image data.<wbr/></p>
14808 <p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
14809 needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
14810 <p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
14811 <p>A RAW_<wbr/>OPAQUE buffer should contain only pixel data.<wbr/> It is strongly
14814 for that image buffer.<wbr/></p>
14826 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
14847 for each resolution in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/></p>
14856 <p>TODO: Remove property.<wbr/></p>
14872 that JPEG stream is active and captured in a burst,<wbr/> with all
14873 processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
14874 <p>When multiple streams are configured,<wbr/> the minimum
14889 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
14909 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
14917 <p>TODO: Remove property.<wbr/></p>
14932 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
14933 sensor maximum resolution (defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
14943 (defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
14944 and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
14955 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
14972 and crop region width,<wbr/> and active area height and
14973 crop region height,<wbr/> for <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
14997 the camera device,<wbr/> or equivalently,<wbr/> the minimum cropping
14998 window size.<wbr/></p>
15001 allowed size by the camera device.<wbr/></p>
15014 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
15035 <a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
15036 minimum supportable frame duration for that size.<wbr/></p>
15060 stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
15061 set to FAST.<wbr/></p>
15062 <p>When multiple streams are configured,<wbr/> the minimum frame duration will
15063 be &gt;= max(individual stream min durations).<wbr/></p>
15076 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
15097 processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
15098 platform opaque YUV/<wbr/>RGB streams to the GPU or video
15099 encoders.<wbr/></p>
15121 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
15122 <p>For a given use case,<wbr/> the actual maximum supported resolution
15123 may be lower than what is listed here,<wbr/> depending on the destination
15124 Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
15125 the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
15126 smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
15127 can provide.<wbr/></p>
15129 check if it limits the maximum size for image data.<wbr/></p>
15138 <p>For FULL capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>),<wbr/>
15139 the HAL must include all JPEG sizes listed in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>
15148 wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
15149 the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
15161 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
15182 <a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
15183 supportable frame duration for that size.<wbr/></p>
15207 active.<wbr/></p>
15208 <p>When multiple streams are configured,<wbr/> the minimum
15223 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
15244 sensor output streams,<wbr/> listed as width,<wbr/>
15268 android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map
15289 camera device for input streams,<wbr/> to their corresponding output formats.<wbr/></p>
15308 <a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> will have at least one
15309 available input format.<wbr/></p>
15310 <p>The camera device will support the following map of formats,<wbr/>
15322 <td align="left">RAW_<wbr/>OPAQUE</td>
15327 <td align="left">RAW_<wbr/>OPAQUE</td>
15328 <td align="left">YUV_<wbr/>420_<wbr/>888</td>
15332 <td align="left">RAW_<wbr/>OPAQUE</td>
15338 <td align="left">YUV_<wbr/>420_<wbr/>888</td>
15348 <p>For ZSL-capable camera devices,<wbr/> using the RAW_<wbr/>OPAQUE format
15349 as either input or output will never hurt maximum frame rate (i.<wbr/>e.<wbr/>
15350 Stream<wbr/>Configuration<wbr/>Map#get<wbr/>Output<wbr/>Stall<wbr/>Duration(int,<wbr/>Size)
15351 for a <code>format =</code> RAW_<wbr/>OPAQUE is always 0).<wbr/></p>
15353 listed as available in this map is not valid.<wbr/></p>
15363 <p>For the formats,<wbr/> see <code>system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h</code> for a definition
15364 of the image format enumerations.<wbr/></p>
15365 <p>This value is encoded as a variable-size array-of-arrays.<wbr/>
15366 The inner array always contains <code>[format,<wbr/> length,<wbr/> ...<wbr/>]</code> where
15367 <code>...<wbr/></code> has <code>length</code> elements.<wbr/> An inner array is followed by another
15368 inner array if the total metadata entry size hasn't yet been exceeded.<wbr/></p>
15369 <p>A code sample to read/<wbr/>write this encoding (with a device that
15370 supports reprocessing RAW_<wbr/>OPAQUE to RAW16,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> and JPEG,<wbr/>
15371 and reprocessing RAW16 to YUV_<wbr/>420_<wbr/>888 and JPEG):</p>
15372 <pre><code>//<wbr/> reading
15373 int32_<wbr/>t* contents = &amp;entry.<wbr/>i32[0];
15374 for (size_<wbr/>t i = 0; i &lt; entry.<wbr/>count; ) {
15375 int32_<wbr/>t format = contents[i++];
15376 int32_<wbr/>t length = contents[i++];
15377 int32_<wbr/>t output_<wbr/>formats[length];
15378 memcpy(&amp;output_<wbr/>formats[0],<wbr/> &amp;contents[i],<wbr/>
15379 length * sizeof(int32_<wbr/>t));
15383 //<wbr/> writing (static example,<wbr/> RAW+ZSL)
15384 int32_<wbr/>t[] contents = {
15385 RAW_<wbr/>OPAQUE,<wbr/> 3,<wbr/> RAW16,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
15386 RAW16,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
15388 update_<wbr/>camera_<wbr/>metadata_<wbr/>entry(metadata,<wbr/> index,<wbr/> &amp;contents[0],<wbr/>
15389 sizeof(contents)/<wbr/>sizeof(contents[0]),<wbr/> &amp;updated_<wbr/>entry);
15392 above details,<wbr/> then it must also support all the input-output
15393 combinations listed for that capability.<wbr/> It can optionally support
15394 additional formats if it so chooses.<wbr/></p>
15395 <p>Refer to <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> for the enum values
15396 which correspond to HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
15397 system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
15408 android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations
15438 (i.<wbr/>e.<wbr/> format,<wbr/> width,<wbr/> height,<wbr/> output/<wbr/>input stream).<wbr/></p>
15456 <p>The configurations are listed as <code>(format,<wbr/> width,<wbr/> height,<wbr/> input?)</code>
15457 tuples.<wbr/></p>
15458 <p>For a given use case,<wbr/> the actual maximum supported resolution
15459 may be lower than what is listed here,<wbr/> depending on the destination
15460 Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
15461 the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
15462 smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
15463 can provide.<wbr/></p>
15465 check if it limits the maximum size for image data.<wbr/></p>
15467 an input stream of a particular format.<wbr/> For more details,<wbr/> see
15468 <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
15471 (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
15484 <td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
15513 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
15519 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
15520 <td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
15525 <td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
15526 <td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
15532 <p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> for additional
15533 mandatory stream configurations on a per-capability basis.<wbr/></p>
15542 <p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
15544 level).<wbr/></p>
15546 <p>For JPEG format,<wbr/> the sizes may be restricted by below conditions:</p>
15549 (e.<wbr/>g.<wbr/> 4:3,<wbr/> 16:9,<wbr/> 3:2 etc.<wbr/>).<wbr/> If the sensor maximum resolution
15550 (defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>) has an aspect ratio other than these,<wbr/>
15551 it does not have to be included in the supported JPEG sizes.<wbr/></li>
15552 <li>Some hardware JPEG encoders may have pixel boundary alignment requirements,<wbr/> such as
15553 the dimensions being a multiple of 16.<wbr/></li>
15555 <p>Therefore,<wbr/> the maximum JPEG size may be smaller than sensor maximum resolution.<wbr/>
15556 However,<wbr/> the largest JPEG size must be as close as possible to the sensor maximum
15557 resolution given above constraints.<wbr/> It is required that after aspect ratio adjustments,<wbr/>
15558 additional size reduction due to other issues must be less than 3% in area.<wbr/> For example,<wbr/>
15559 if the sensor maximum resolution is 3280x2464,<wbr/> if the maximum JPEG size has aspect
15560 ratio 4:3,<wbr/> the JPEG encoder alignment requirement is 16,<wbr/> the maximum JPEG size will be
15561 3264x2448.<wbr/></p>
15562 <p>For FULL capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>),<wbr/>
15563 the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
15564 here as output streams.<wbr/></p>
15566 equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
15567 formats),<wbr/> as output streams:</p>
15575 wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
15577 supported by the device.<wbr/></p>
15578 <p>Regardless of hardware level,<wbr/> every output resolution available for
15579 YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
15580 <p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
15583 <li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
15595 android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations
15616 format/<wbr/>size combination.<wbr/></p>
15620 (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
15639 stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
15640 set to either OFF or FAST.<wbr/></p>
15641 <p>When multiple streams are used in a request,<wbr/> the minimum frame
15642 duration will be max(individual stream min durations).<wbr/></p>
15643 <p>The minimum frame duration of a stream (of a particular format,<wbr/> size)
15644 is the same regardless of whether the stream is input or output.<wbr/></p>
15645 <p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> and
15646 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for more details about
15647 calculating the max frame rate.<wbr/></p>
15661 android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations
15682 format/<wbr/>size combination.<wbr/></p>
15686 (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
15706 that has streams with non-zero stall.<wbr/></p>
15707 <p>For example,<wbr/> consider JPEG captures which have the following
15712 referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
15714 use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
15715 frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
15717 pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
15719 <p>In other words,<wbr/> using a repeating YUV request would result
15720 in a steady frame rate (let's say it's 30 FPS).<wbr/> If a single
15721 JPEG request is submitted periodically,<wbr/> the frame rate will stay
15723 time).<wbr/> If we try to submit a repeating YUV + JPEG request,<wbr/> then
15724 the frame rate will drop from 30 FPS.<wbr/></p>
15725 <p>In general,<wbr/> submitting a new request with a non-0 stall time
15727 outstanding buffers for that stream from previous requests.<wbr/></p>
15730 the normal minimum frame duration corresponding to <code>S</code>,<wbr/> added with
15731 the maximum stall duration for <code>S</code>.<wbr/></p>
15732 <p>If interleaving requests with and without a stall duration,<wbr/>
15734 for each can-stall stream with outstanding buffers.<wbr/></p>
15736 until the stall has completed.<wbr/></p>
15738 active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST
15739 or OFF.<wbr/> Setting any of the processing modes to HIGH_<wbr/>QUALITY
15742 ignored).<wbr/></p>
15746 <li>ImageFormat#RAW_<wbr/>SENSOR</li>
15750 <li>Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</li>
15753 a per-capability basis; refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
15754 for more details.<wbr/></p>
15755 <p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> for more information about
15756 calculating the max frame rate (absent stalls).<wbr/></p>
15758 StreamConfigurationMap#getOutputStallDuration(int,<wbr/> Size) )</p>
15767 <p>If possible,<wbr/> it is recommended that all non-JPEG formats
15768 (such as RAW16) should not have a stall duration.<wbr/> RAW10,<wbr/> RAW_<wbr/>OPAQUE and
15769 IMPLEMENTATION_<wbr/>DEFINED must not have stall durations.<wbr/></p>
15780 android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map
15799 and the stall durations for each format/<wbr/>size combination.<wbr/></p>
15818 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>) for the JPEG format.<wbr/></p>
15819 <p>For a given use case,<wbr/> the actual maximum supported resolution
15820 may be lower than what is listed here,<wbr/> depending on the destination
15821 Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
15822 the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
15823 smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
15824 can provide.<wbr/></p>
15826 check if it limits the maximum size for image data.<wbr/></p>
15829 (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
15842 <td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
15871 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
15877 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
15878 <td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
15883 <td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
15884 <td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
15890 <p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> for additional
15891 mandatory stream configurations on a per-capability basis.<wbr/></p>
15902 set the <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> instead.<wbr/></p>
15904 an input stream of a particular format.<wbr/> For more details,<wbr/> see
15905 <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
15906 <p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
15908 level).<wbr/></p>
15911 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
15912 <p>For FULL capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>),<wbr/>
15913 the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
15914 here as output streams.<wbr/></p>
15916 equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
15917 formats),<wbr/> as output streams:</p>
15925 (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
15927 supported by the device.<wbr/></p>
15928 <p>Regardless of hardware level,<wbr/> every output resolution available for
15929 YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
15930 <p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
15933 <li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
15945 android.<wbr/>scaler.<wbr/>cropping<wbr/>Type
15960 <span class="entry_type_enum_notes"><p>The camera device only supports centered crop regions.<wbr/></p></span>
15964 <span class="entry_type_enum_notes"><p>The camera device supports arbitrarily chosen crop regions.<wbr/></p></span>
15971 wbr/></p>
15989 <p>When passing a non-centered crop region (<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>) to a camera
15990 device that only supports CENTER_<wbr/>ONLY cropping,<wbr/> the camera device will move the
15991 crop region to the center of the sensor active array (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>)
15992 and keep the crop region width and height unchanged.<wbr/> The camera device will return the
15993 final used crop region in metadata result <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
15995 is inside of the active array.<wbr/> The camera device will apply the same crop region and
15996 return the final used crop region in capture result metadata <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
15997 <p>FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> FULL) will support
15998 FREEFORM cropping.<wbr/> LEGACY capability devices will only support CENTER_<wbr/>ONLY cropping.<wbr/></p>
16037 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
16057 <p>The desired region of the sensor to read out for this capture.<wbr/></p>
16062 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
16080 <p>This control can be used to implement digital zoom.<wbr/></p>
16082 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with <code>(0,<wbr/> 0)</code> being the
16083 top-left corner of the sensor active array.<wbr/></p>
16084 <p>Output streams use this rectangle to produce their output,<wbr/>
16086 stream's aspect ratio,<wbr/> then scaling the sensor input to
16087 match the output's configured resolution.<wbr/></p>
16089 space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
16090 (e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
16091 croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
16092 <p>For non-raw streams,<wbr/> any additional per-stream cropping will
16093 be done to maximize the final pixel area of the stream.<wbr/></p>
16094 <p>For example,<wbr/> if the crop region is set to a 4:3 aspect
16095 ratio,<wbr/> then 4:3 streams will use the exact crop
16096 region.<wbr/> 16:9 streams will further crop vertically
16097 (letterbox).<wbr/></p>
16098 <p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
16099 outputs will crop horizontally (pillarbox),<wbr/> and 16:9
16100 streams will match exactly.<wbr/> These additional crops will
16101 be centered within the crop region.<wbr/></p>
16104 <code>floor( activeArraySize.<wbr/>width /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code> and
16105 <code>floor( activeArraySize.<wbr/>height /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code>,<wbr/> respectively.<wbr/></p>
16109 result.<wbr/></p>
16119 times,<wbr/> no matter what the relative aspect ratios of the
16120 crop region and the stream are.<wbr/> Negative values for
16122 larger than active pixel array.<wbr/> Width and height may be
16123 rounded to nearest larger supportable width,<wbr/> especially
16124 for raw output,<wbr/> where only a few fixed scales may be
16125 possible.<wbr/></p>
16126 <p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
16169 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
16186 light.<wbr/></p>
16194 <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
16209 <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
16210 duration exposed to the nearest possible value (rather than expose longer).<wbr/>
16211 The final exposure time used will be available in the output capture result.<wbr/></p>
16212 <p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
16213 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
16225 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
16242 start of next frame exposure.<wbr/></p>
16250 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
16251 <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/> The duration
16252 is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
16271 <li>Availability of binning /<wbr/> skipping modes on the imager</li>
16276 sensors,<wbr/> the camera abstraction tries to represent the bandwidth
16277 restrictions with as simple a model as possible.<wbr/></p>
16282 sizes.<wbr/> The smallest resolution is defined as being at least as large
16285 whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
16286 resolutions are configured,<wbr/> the sensor can provide a higher frame
16287 rate.<wbr/></li>
16289 output streams,<wbr/> the sensor and ISP must be configured to support
16290 scaling a single capture to all the streams at the same time.<wbr/> This
16292 requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
16294 largest requested stream resolution.<wbr/></li>
16296 frame duration.<wbr/></li>
16298 before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
16299 can run concurrently to the rest of the camera pipeline,<wbr/> but
16300 cannot process more than 1 capture at a time.<wbr/></li>
16302 <p>The necessary information for the application,<wbr/> given the model above,<wbr/>
16303 is provided via the <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> field
16304 using StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size).<wbr/>
16305 These are used to determine the maximum frame rate /<wbr/> minimum frame
16306 duration that is possible for a given stream configuration.<wbr/></p>
16307 <p>Specifically,<wbr/> the application can use the following rules to
16311 <li>Let the set of currently configured input/<wbr/>output streams
16312 be called <code>S</code>.<wbr/></li>
16313 <li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by
16314 looking it up in <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> using
16315 StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size) (with
16316 its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called
16317 <code>F</code>.<wbr/></li>
16318 <li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed
16319 for <code>R</code> is the maximum out of all values in <code>F</code>.<wbr/> Let the streams
16320 used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
16322 <p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in
16323 StreamConfigurationMap#getOutputStallDuration(int,<wbr/>Size) using its
16324 respective size/<wbr/>format),<wbr/> then the frame duration in
16326 get if it uses <code>R</code> as a repeating request.<wbr/> Let this special kind
16327 of request be called <code>Rsimple</code>.<wbr/></p>
16333 delivered.<wbr/></p>
16334 <p>For more details about stalling,<wbr/> see
16335 StreamConfigurationMap#getOutputStallDuration(int,<wbr/>Size).<wbr/></p>
16336 <p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
16337 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
16346 <p>For more details about stalling,<wbr/> see
16347 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
16358 android.<wbr/>sensor.<wbr/>sensitivity
16375 before processing.<wbr/></p>
16383 <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
16398 <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
16399 as defined in ISO 12232:2006.<wbr/></p>
16400 <p>The sensitivity must be within <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a>,<wbr/> and
16401 if if it less than <a href="#static_android.sensor.maxAnalogSensitivity">android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity</a>,<wbr/> the camera device
16402 is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
16404 requested,<wbr/> it will reduce the gain to the nearest supported
16405 value.<wbr/> The final sensitivity used will be available in the
16406 output capture result.<wbr/></p>
16415 <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
16426 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
16445 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
16446 when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
16464 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
16467 output.<wbr/></p>
16468 <p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
16469 10 most significant bits from each color channel.<wbr/></p>
16489 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
16503 <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
16504 device returns captures from the image sensor.<wbr/></p>
16505 <p>This is the default if the key is not set.<wbr/></p></span>
16509 <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
16511 <a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
16513 <pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
16515 <p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
16516 <pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
16518 <p>All red pixels are 100% red.<wbr/> Only the odd green pixels
16519 are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
16523 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
16541 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
16542 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
16543 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
16545 (B = Blue,<wbr/> K = Black)
16547 <p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
16548 When this is not possible,<wbr/> the bar size should be rounded
16550 on the right side.<wbr/></p>
16552 pixel array height.<wbr/></p>
16554 0% intensity or 100% intensity.<wbr/></p></span>
16558 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
16559 each bar should start at its specified color at the top,<wbr/>
16560 and fade to gray at the bottom.<wbr/></p>
16562 right half.<wbr/> The left half should have a smooth gradient,<wbr/>
16563 and the right half should have a quantized gradient.<wbr/></p>
16564 <p>In particular,<wbr/> the right half's should consist of blocks of the
16565 same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
16567 be copied from the most significant bits of the smooth gradient.<wbr/></p>
16568 <p>The height of each bar should always be a multiple of 128.<wbr/>
16569 When this is not the case,<wbr/> the pattern should repeat at the bottom
16570 of the image.<wbr/></p></span>
16576 in hardware with a linear feedback shift register).<wbr/></p>
16577 <p>The generator should be reset at the beginning of each frame,<wbr/>
16579 be exactly the same as the last.<wbr/></p></span>
16584 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
16586 value.<wbr/></p>
16588 (that is the raw image must not vary from frame to frame).<wbr/></p></span>
16595 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
16596 doing a real exposure from the camera.<wbr/></p>
16603 <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
16615 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
16616 by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
16617 work as normal.<wbr/></p>
16618 <p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
16619 occur (and that the test pattern remain unmodified,<wbr/> since the flash
16620 would not actually affect it).<wbr/></p>
16621 <p>Defaults to OFF.<wbr/></p>
16630 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
16632 with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
16634 sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
16674 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
16696 active pixels.<wbr/></p>
16719 <p>This is the region of the sensor that actually receives light from the scene.<wbr/>
16720 Therefore,<wbr/> the size of this region determines the maximum field of view and the maximum
16721 number of pixels that an image from this sensor can contain.<wbr/></p>
16722 <p>The rectangle is defined in terms of the full pixel array; (0,<wbr/>0) is the top-left of the
16723 full pixel array,<wbr/> and the size of the full pixel array is given by
16724 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
16726 active array,<wbr/> with <code>(0,<wbr/> 0)</code> being the top-left of the active array rectangle.<wbr/></p>
16727 <p>The active array may be smaller than the full pixel array,<wbr/> since the full array may
16728 include black calibration pixels or other inactive regions.<wbr/></p>
16737 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
16738 &gt;= <code>(0,<wbr/>0)</code>.<wbr/>
16739 The <code>(width,<wbr/> height)</code> must be &lt;= <code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
16750 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
16771 <p>Range of sensitivities for <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> supported by this
16772 camera device.<wbr/></p>
16779 <p>Min &lt;= 100,<wbr/> Max &gt;= 800</p>
16795 <p>The values are the standard ISO sensitivity values,<wbr/>
16796 as defined in ISO 12232:2006.<wbr/></p>
16808 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
16836 values for each pixel,<wbr/> instead of just 1 16-bit value
16837 per pixel.<wbr/></p></span>
16846 the sensor,<wbr/> in reading order.<wbr/></p>
16871 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
16892 <p>The range of image exposure times for <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> supported
16893 by this camera device.<wbr/></p>
16901 <p>The minimum exposure time will be less than 100 us.<wbr/> For FULL
16902 capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
16903 the maximum exposure time will be greater than 100ms.<wbr/></p>
16919 <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
16920 The maximum of the range SHOULD be at least 1 second (1e9),<wbr/> MUST be at least
16921 100ms.<wbr/></p>
16932 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
16949 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> that is supported this camera device.<wbr/></p>
16958 (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/> at least 100ms.<wbr/></p>
16974 duration being clipped to the maximum.<wbr/> See that control for a full definition of frame
16975 durations.<wbr/></p>
16976 <p>Refer to StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/>Size) for the minimum
16977 frame duration values.<wbr/></p>
16986 <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
16988 1 second (1e9),<wbr/> MUST be at least 100ms (100e6).<wbr/></p>
16989 <p><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a> must be greater or
16990 equal to the <a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a> max
16991 value (since exposure time overrides frame duration).<wbr/></p>
16993 than that of the YUV_<wbr/>420_<wbr/>888/<wbr/>IMPLEMENTATION_<wbr/>DEFINED
16994 minimum frame durations (for that respective size).<wbr/></p>
16996 a single uncompressed capture,<wbr/> refer to
16997 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>
16998 for details about encoding this scenario.<wbr/></p>
17009 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
17031 array.<wbr/></p>
17055 array defined by <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
17075 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
17095 <p>Dimensions of the full pixel array,<wbr/> possibly
17096 including black calibration pixels.<wbr/></p>
17119 <p>The pixel count of the full pixel array,<wbr/>
17120 which covers <a href="#static_android.sensor.info.physicalSize">android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size</a> area.<wbr/></p>
17121 <p>If a camera device supports raw sensor formats,<wbr/> either this
17122 or <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> is the maximum output
17123 raw size listed in <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/>
17124 If a size corresponding to pixelArraySize is listed,<wbr/> the resulting
17125 raw sensor image will include black pixels.<wbr/></p>
17126 <p>Some parts of the full pixel array may not receive light from the scene,<wbr/>
17127 or are otherwise inactive.<wbr/> The <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> key
17128 defines the rectangle of active pixels that actually forms an image.<wbr/></p>
17140 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
17155 <p>Maximum raw value output by sensor.<wbr/></p>
17178 sample values from the sensor.<wbr/> This is typically caused by the
17179 sensor becoming highly non-linear or clipping.<wbr/> The minimum for
17181 <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> key.<wbr/></p>
17183 (8-14 bits is expected),<wbr/> or by the point where the sensor response
17184 becomes too non-linear to be useful.<wbr/> The default value for this is
17185 maximum representable value for a 16-bit raw sample (2^16 - 1).<wbr/></p>
17194 <p>The full bit depth of the sensor must be available in the raw data,<wbr/>
17196 than maximum raw value supported,<wbr/> i.<wbr/>e.<wbr/> 2^(sensor bits per pixel).<wbr/></p>
17207 android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source
17222 <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/>
17224 (e.<wbr/>g.<wbr/> accelerometer,<wbr/> gyro etc.<wbr/>),<wbr/> or other instances of the same or different
17225 camera devices in the same system.<wbr/> Timestamps between streams and results for
17226 a single camera instance are comparable,<wbr/> and the timestamps for all buffers
17227 and the result metadata generated by a single capture are identical.<wbr/></p></span>
17231 <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
17232 android.<wbr/>os.<wbr/>System<wbr/>Clock#elapsed<wbr/>Realtime<wbr/>Nanos(),<wbr/>
17233 and they can be compared to other timestamps using that base.<wbr/></p></span>
17240 <p>The time base source for sensor capture start timestamps.<wbr/></p>
17261 <p>The timestamps provided for captures are always in nanoseconds and monotonic,<wbr/> but
17262 may not based on a time source that can be compared to other system time sources.<wbr/></p>
17263 <p>This characteristic defines the source for the timestamps,<wbr/> and therefore whether they
17264 can be compared against other system time sources/<wbr/>timestamps.<wbr/></p>
17279 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
17378 calculating the <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
17379 <a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
17380 <a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> matrices.<wbr/></p>
17402 EXIF LightSource tag.<wbr/> These illuminants are standard light sources
17403 that are often used calibrating camera devices.<wbr/></p>
17404 <p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
17405 <a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
17406 <a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> will also be present.<wbr/></p>
17408 information for improved quality,<wbr/> including
17409 <a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> and its corresponding matrices.<wbr/></p>
17418 <p>The first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
17420 and DNG output.<wbr/></p>
17422 calibrated against a single light source,<wbr/> it is valid to omit
17423 <a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> along with the
17424 <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/> <a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/>
17425 and <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
17426 <p>If only <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> is included,<wbr/> it should be
17427 chosen so that it is representative of typical scene lighting.<wbr/> In
17428 general,<wbr/> D50 or DAYLIGHT will be chosen for this case.<wbr/></p>
17429 <p>If both <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> and
17430 <a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> are included,<wbr/> they should be
17431 chosen to represent the typical range of scene lighting conditions.<wbr/>
17432 In general,<wbr/> low color temperature illuminant such as Standard-A will
17435 reference illuminant.<wbr/></p>
17446 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
17462 calculating the <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
17463 <a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
17464 <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
17471 <p>Any value listed in <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a></p>
17486 <p>See <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> for more details.<wbr/></p>
17487 <p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
17488 <a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
17489 <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> will also be present.<wbr/></p>
17501 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
17522 reference sensor colorspace to the actual device sensor colorspace.<wbr/></p>
17544 sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
17545 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
17547 from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
17550 (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
17562 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
17584 (this is the colorspace of the raw buffer data).<wbr/></p>
17606 sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
17607 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
17609 from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
17612 (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
17614 illuminant is present.<wbr/></p>
17626 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
17647 reference sensor color space.<wbr/></p>
17669 space to the reference sensor colorspace,<wbr/> and is used when processing
17670 raw buffer data.<wbr/></p>
17671 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
17673 XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
17675 (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
17679 (i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
17691 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
17712 reference sensor color space.<wbr/></p>
17734 space to the reference sensor colorspace,<wbr/> and is used when processing
17735 raw buffer data.<wbr/></p>
17736 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
17738 XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
17740 (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
17744 (i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
17746 illuminant is present.<wbr/></p>
17758 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
17779 sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
17800 <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
17801 is used when processing raw buffer data.<wbr/></p>
17802 <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
17805 point.<wbr/></p>
17806 <p>Under the first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
17809 CIE XYZ colorspace.<wbr/></p>
17821 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
17842 sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
17863 <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
17864 is used when processing raw buffer data.<wbr/></p>
17865 <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
17868 point.<wbr/></p>
17869 <p>Under the second reference illuminant (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>)
17872 CIE XYZ colorspace.<wbr/></p>
17874 illuminant is present.<wbr/></p>
17886 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
17927 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
17948 (CFA) mosaic channels.<wbr/></p>
17955 <p>&gt;= 0 for each.<wbr/></p>
17971 channels in the camera sensor.<wbr/> The maximal value output by the
17972 sensor is represented by the value in <a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>.<wbr/></p>
17974 layout key (see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>),<wbr/> i.<wbr/>e.<wbr/> the
17976 color channel listed in the CFA.<wbr/></p>
17985 <p>The values are given in row-column scan order,<wbr/> with the first value
17986 corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
17997 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
18014 purely through analog gain.<wbr/></p>
18036 <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or
18037 equal to this,<wbr/> all applied gain must be analog.<wbr/> For
18038 values above this,<wbr/> the gain applied can be a mix of analog and
18039 digital.<wbr/></p>
18051 android.<wbr/>sensor.<wbr/>orientation
18068 upright on the device screen in its native orientation.<wbr/></p>
18077 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
18092 <p>Also defines the direction of rolling shutter readout,<wbr/> which is from top to bottom in
18093 the sensor's coordinate system.<wbr/></p>
18105 android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions
18119 <div class="entry_type_notes">Number of samples for hue,<wbr/> saturation,<wbr/> and value</div>
18126 <a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/></p>
18133 <p>Hue &gt;= 1,<wbr/>
18134 Saturation &gt;= 2,<wbr/>
18150 <p>The number of input samples for the hue,<wbr/> saturation,<wbr/> and value
18151 dimension of <a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/> The order of the
18152 dimensions given is hue,<wbr/> saturation,<wbr/> value; where hue is the 0th
18153 element.<wbr/></p>
18165 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
18185 <p>List of sensor test pattern modes for <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a>
18186 supported by this camera device.<wbr/></p>
18193 <p>Any value listed in <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a></p>
18205 <p>Defaults to OFF,<wbr/> and always includes OFF if defined.<wbr/></p>
18214 <p>All custom modes must be &gt;= CUSTOM1.<wbr/></p>
18252 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
18269 light.<wbr/></p>
18277 <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
18292 <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
18293 duration exposed to the nearest possible value (rather than expose longer).<wbr/>
18294 The final exposure time used will be available in the output capture result.<wbr/></p>
18295 <p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
18296 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
18308 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
18325 start of next frame exposure.<wbr/></p>
18333 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
18334 <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/> The duration
18335 is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
18354 <li>Availability of binning /<wbr/> skipping modes on the imager</li>
18359 sensors,<wbr/> the camera abstraction tries to represent the bandwidth
18360 restrictions with as simple a model as possible.<wbr/></p>
18365 sizes.<wbr/> The smallest resolution is defined as being at least as large
18368 whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
18369 resolutions are configured,<wbr/> the sensor can provide a higher frame
18370 rate.<wbr/></li>
18372 output streams,<wbr/> the sensor and ISP must be configured to support
18373 scaling a single capture to all the streams at the same time.<wbr/> This
18375 requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
18377 largest requested stream resolution.<wbr/></li>
18379 frame duration.<wbr/></li>
18381 before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
18382 can run concurrently to the rest of the camera pipeline,<wbr/> but
18383 cannot process more than 1 capture at a time.<wbr/></li>
18385 <p>The necessary information for the application,<wbr/> given the model above,<wbr/>
18386 is provided via the <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> field
18387 using StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size).<wbr/>
18388 These are used to determine the maximum frame rate /<wbr/> minimum frame
18389 duration that is possible for a given stream configuration.<wbr/></p>
18390 <p>Specifically,<wbr/> the application can use the following rules to
18394 <li>Let the set of currently configured input/<wbr/>output streams
18395 be called <code>S</code>.<wbr/></li>
18396 <li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by
18397 looking it up in <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> using
18398 StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size) (with
18399 its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called
18400 <code>F</code>.<wbr/></li>
18401 <li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed
18402 for <code>R</code> is the maximum out of all values in <code>F</code>.<wbr/> Let the streams
18403 used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
18405 <p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in
18406 StreamConfigurationMap#getOutputStallDuration(int,<wbr/>Size) using its
18407 respective size/<wbr/>format),<wbr/> then the frame duration in
18409 get if it uses <code>R</code> as a repeating request.<wbr/> Let this special kind
18410 of request be called <code>Rsimple</code>.<wbr/></p>
18416 delivered.<wbr/></p>
18417 <p>For more details about stalling,<wbr/> see
18418 StreamConfigurationMap#getOutputStallDuration(int,<wbr/>Size).<wbr/></p>
18419 <p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
18420 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
18429 <p>For more details about stalling,<wbr/> see
18430 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
18441 android.<wbr/>sensor.<wbr/>sensitivity
18458 before processing.<wbr/></p>
18466 <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
18481 <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
18482 as defined in ISO 12232:2006.<wbr/></p>
18483 <p>The sensitivity must be within <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a>,<wbr/> and
18484 if if it less than <a href="#static_android.sensor.maxAnalogSensitivity">android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity</a>,<wbr/> the camera device
18485 is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
18487 requested,<wbr/> it will reduce the gain to the nearest supported
18488 value.<wbr/> The final sensitivity used will be available in the
18489 output capture result.<wbr/></p>
18498 <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
18509 android.<wbr/>sensor.<wbr/>timestamp
18526 row of the image sensor active array,<wbr/> in nanoseconds.<wbr/></p>
18550 buffers produced for the same capture,<wbr/> and will be identical
18551 on all the outputs.<wbr/></p>
18552 <p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> UNKNOWN,<wbr/>
18553 the timestamps measure time since an unspecified starting point,<wbr/>
18554 and are monotonically increasing.<wbr/> They can be compared with the
18555 timestamps for other captures from the same camera device,<wbr/> but are
18556 not guaranteed to be comparable to any other time source.<wbr/></p>
18557 <p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/>
18559 android.<wbr/>os.<wbr/>System<wbr/>Clock#elapsed<wbr/>Realtime<wbr/>Nanos(),<wbr/> and they can be
18561 that base.<wbr/></p>
18571 CLOCK_<wbr/>BOOTTIME monotonic clock,<wbr/> which properly accounts for
18572 time spent asleep.<wbr/> This allows for synchronization with
18574 otherwise asleep.<wbr/></p>
18575 <p>If <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/>
18577 sensor subsystems that are using the same timebase.<wbr/></p>
18588 android.<wbr/>sensor.<wbr/>temperature
18603 <p>The temperature of the sensor,<wbr/> sampled at the time
18604 exposure began for this frame.<wbr/></p>
18605 <p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
18606 somewhere close to it.<wbr/></p>
18614 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
18633 android.<wbr/>sensor.<wbr/>neutral<wbr/>Color<wbr/>Point
18653 the time of capture.<wbr/></p>
18675 native sensor color space.<wbr/> The neutral color point indicates the
18676 currently estimated white point of the scene illumination.<wbr/> It can be
18678 processing raw sensor data.<wbr/></p>
18679 <p>The order of the values is R,<wbr/> G,<wbr/> B; where R is in the lowest index.<wbr/></p>
18691 android.<wbr/>sensor.<wbr/>noise<wbr/>Profile
18711 <p>Noise model coefficients for each CFA mosaic channel.<wbr/></p>
18734 noise (O).<wbr/> These are given as pairs of coefficients for each channel
18736 (see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>).<wbr/> This is
18737 represented as an array of Pair&lt;Double,<wbr/> Double&gt;,<wbr/> where
18739 second member is the O coefficient for the nth color channel in the CFA.<wbr/></p>
18741 the amount of noise present in the image for each CFA channel.<wbr/> The
18745 the range [0,<wbr/> 1],<wbr/> and S and O are the noise model coeffiecients for
18746 that channel.<wbr/></p>
18748 Adobe DNG specification for the NoiseProfile tag.<wbr/></p>
18757 <p>For a CFA layout of RGGB,<wbr/> the list of coefficients would be given as
18758 an array of doubles S0,<wbr/>O0,<wbr/>S1,<wbr/>O1,...,<wbr/> where S0 and O0 are the coefficients
18759 for the red channel,<wbr/> S1 and O1 are the coefficients for the first green
18760 channel,<wbr/> etc.<wbr/></p>
18771 android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map
18785 <div class="entry_type_notes">Mapping for hue,<wbr/> saturation,<wbr/> and value</div>
18791 <p>A mapping containing a hue shift,<wbr/> saturation scale,<wbr/> and value scale
18792 for each pixel.<wbr/></p>
18817 <p>hue_<wbr/>samples,<wbr/> saturation_<wbr/>samples,<wbr/> and value_<wbr/>samples are given in
18818 <a href="#static_android.sensor.profileHueSatMapDimensions">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions</a>.<wbr/></p>
18820 hue shift,<wbr/> saturation scale,<wbr/> and value scale,<wbr/> respectively; where the
18821 hue shift has the lowest index.<wbr/> The map entries are stored in the key
18822 in nested loop order,<wbr/> with the value divisions in the outer loop,<wbr/> the
18823 hue divisions in the middle loop,<wbr/> and the saturation divisions in the
18824 inner loop.<wbr/> All zero input saturation entries are required to have a
18825 value scale factor of 1.<wbr/>0.<wbr/></p>
18837 android.<wbr/>sensor.<wbr/>profile<wbr/>Tone<wbr/>Curve
18857 <p>A list of x,<wbr/>y samples defining a tone-mapping curve for gamma adjustment.<wbr/></p>
18864 <p>Each sample has an input range of <code>[0,<wbr/> 1]</code> and an output range of
18865 <code>[0,<wbr/> 1]</code>.<wbr/> The first sample is required to be <code>(0,<wbr/> 0)</code>,<wbr/> and the last
18866 sample is required to be <code>(1,<wbr/> 1)</code>.<wbr/></p>
18882 processing the image as a starting point for user adjustments.<wbr/>
18883 The curve is specified as a list of value pairs in linear gamma.<wbr/>
18884 The curve is interpolated using a cubic spline.<wbr/></p>
18896 android.<wbr/>sensor.<wbr/>green<wbr/>Split
18911 <p>The worst-case divergence between Bayer green channels.<wbr/></p>
18935 filter array.<wbr/></p>
18939 chosen.<wbr/> The term 'pixel' here is taken to mean a group of 4 Bayer
18940 mosaic channels (R,<wbr/> Gr,<wbr/> Gb,<wbr/> B).<wbr/> The location and size of the window
18941 chosen is implementation defined,<wbr/> and should be chosen to provide a
18943 for this camera sensor,<wbr/> and can be calculated quickly.<wbr/></li>
18945 rows (mean_<wbr/>Gr) within W is computed.<wbr/></li>
18947 rows (mean_<wbr/>Gb) within W is computed.<wbr/></li>
18949 <code>R = max((mean_<wbr/>Gr + 1)/<wbr/>(mean_<wbr/>Gb + 1),<wbr/> (mean_<wbr/>Gb + 1)/<wbr/>(mean_<wbr/>Gr + 1))</code></li>
18951 <p>The ratio R is the green split divergence reported for this property,<wbr/>
18953 pattern.<wbr/> This value is typically used to determine the treatment of
18954 the green mosaic channels when demosaicing.<wbr/></p>
18957 <li>R &lt; 1.<wbr/>03 is a negligible split (&lt;3% divergence).<wbr/></li>
18958 <li>1.<wbr/>20 &lt;= R &gt;= 1.<wbr/>03 will require some software
18959 correction to avoid demosaic errors (3-20% divergence).<wbr/></li>
18960 <li>R &gt; 1.<wbr/>20 will require strong software correction to produce
18961 a usuable image (&gt;20% divergence).<wbr/></li>
18973 calculation method given here over a large,<wbr/> representative,<wbr/> sample
18974 set of images.<wbr/> Other methods of calculation that produce equivalent
18975 results,<wbr/> and can be interpreted in the same manner,<wbr/> may be used.<wbr/></p>
18986 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
19005 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
19006 when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
19024 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
19027 output.<wbr/></p>
19028 <p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
19029 10 most significant bits from each color channel.<wbr/></p>
19049 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
19063 <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
19064 device returns captures from the image sensor.<wbr/></p>
19065 <p>This is the default if the key is not set.<wbr/></p></span>
19069 <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
19071 <a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
19073 <pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
19075 <p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
19076 <pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
19078 <p>All red pixels are 100% red.<wbr/> Only the odd green pixels
19079 are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
19083 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
19101 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
19102 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
19103 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
19105 (B = Blue,<wbr/> K = Black)
19107 <p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
19108 When this is not possible,<wbr/> the bar size should be rounded
19110 on the right side.<wbr/></p>
19112 pixel array height.<wbr/></p>
19114 0% intensity or 100% intensity.<wbr/></p></span>
19118 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
19119 each bar should start at its specified color at the top,<wbr/>
19120 and fade to gray at the bottom.<wbr/></p>
19122 right half.<wbr/> The left half should have a smooth gradient,<wbr/>
19123 and the right half should have a quantized gradient.<wbr/></p>
19124 <p>In particular,<wbr/> the right half's should consist of blocks of the
19125 same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
19127 be copied from the most significant bits of the smooth gradient.<wbr/></p>
19128 <p>The height of each bar should always be a multiple of 128.<wbr/>
19129 When this is not the case,<wbr/> the pattern should repeat at the bottom
19130 of the image.<wbr/></p></span>
19136 in hardware with a linear feedback shift register).<wbr/></p>
19137 <p>The generator should be reset at the beginning of each frame,<wbr/>
19139 be exactly the same as the last.<wbr/></p></span>
19144 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
19146 value.<wbr/></p>
19148 (that is the raw image must not vary from frame to frame).<wbr/></p></span>
19155 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
19156 doing a real exposure from the camera.<wbr/></p>
19163 <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
19175 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
19176 by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
19177 work as normal.<wbr/></p>
19178 <p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
19179 occur (and that the test pattern remain unmodified,<wbr/> since the flash
19180 would not actually affect it).<wbr/></p>
19181 <p>Defaults to OFF.<wbr/></p>
19190 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
19192 with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
19194 sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
19205 android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew
19222 and the start of last row exposure.<wbr/></p>
19231 StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size).<wbr/></p>
19247 row exposure start times.<wbr/> The first row and the last row are
19249 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
19250 <p>For typical camera sensors that use rolling shutters,<wbr/> this is also equivalent
19251 to the frame readout time.<wbr/></p>
19260 <p>The HAL must report <code>0</code> if the sensor is using global shutter,<wbr/> where all pixels begin
19261 exposure at the same time.<wbr/></p>
19304 android.<wbr/>shading.<wbr/>mode
19319 <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
19323 <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
19328 <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
19329 cost of reduced frame rate.<wbr/></p></span>
19337 to the image data.<wbr/></p>
19355 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
19356 camera device,<wbr/> and an identity lens shading map data will be provided
19357 if <code><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON</code>.<wbr/> For example,<wbr/> for lens
19358 shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
19359 the output <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a> for this case will be an identity
19361 <pre><code>[ 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19362 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19363 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19364 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19365 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19366 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
19368 <p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
19369 device.<wbr/> Applications can request lens shading map data by setting
19370 <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> to ON,<wbr/> and then the camera device will provide lens
19371 shading map data in <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a>; the returned shading map
19372 data will be the one applied by the camera device for this capture request.<wbr/></p>
19373 <p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
19374 the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
19375 AWB are in AUTO modes(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF and <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>!=</code>
19376 OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
19377 to be converged before using the returned shading map data.<wbr/></p>
19389 android.<wbr/>shading.<wbr/>strength
19459 android.<wbr/>shading.<wbr/>mode
19474 <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
19478 <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
19483 <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
19484 cost of reduced frame rate.<wbr/></p></span>
19492 to the image data.<wbr/></p>
19510 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
19511 camera device,<wbr/> and an identity lens shading map data will be provided
19512 if <code><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON</code>.<wbr/> For example,<wbr/> for lens
19513 shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
19514 the output <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a> for this case will be an identity
19516 <pre><code>[ 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19517 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19518 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19519 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19520 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
19521 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
19523 <p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
19524 device.<wbr/> Applications can request lens shading map data by setting
19525 <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> to ON,<wbr/> and then the camera device will provide lens
19526 shading map data in <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a>; the returned shading map
19527 data will be the one applied by the camera device for this capture request.<wbr/></p>
19528 <p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
19529 the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
19530 AWB are in AUTO modes(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF and <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>!=</code>
19531 OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
19532 to be converged before using the returned shading map data.<wbr/></p>
19576 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
19592 results.<wbr/></p></span>
19597 <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
19603 metadata.<wbr/></p>
19604 <p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
19612 unit.<wbr/></p>
19619 <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
19634 <p>Whether face detection is enabled,<wbr/> and whether it
19636 fields.<wbr/></p>
19645 <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
19646 <a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
19647 FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
19648 <a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
19659 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
19708 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
19757 wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
19771 <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
19775 <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
19782 <p>Operating mode for hot pixel map generation.<wbr/></p>
19789 <p><a href="#static_android.statistics.info.availableHotPixelMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes</a></p>
19805 <p>If set to <code>true</code>,<wbr/> a hot pixel map is returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/>
19806 If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
19818 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
19833 <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
19837 <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
19845 shading map in output result metadata.<wbr/></p>
19866 <p>When set to ON,<wbr/>
19867 <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
19868 the output result metadata.<wbr/></p>
19869 <p>ON is always supported on devices with the RAW capability.<wbr/></p>
19910 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
19925 <div class="entry_type_notes">List of enums from android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</div>
19931 <p>List of face detection modes for <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> that are
19932 supported by this camera device.<wbr/></p>
19939 <p>Any value listed in <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></p>
19951 <p>OFF is always supported.<wbr/></p>
19963 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
20005 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
20022 faces.<wbr/></p>
20031 <code>&gt;0</code> for LEGACY devices.<wbr/></p>
20050 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
20091 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
20107 region.<wbr/></p>
20132 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
20179 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes
20199 <p>List of hot pixel map output modes for <a href="#controls_android.statistics.hotPixelMapMode">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode</a> that are
20200 supported by this camera device.<wbr/></p>
20207 <p>Any value listed in <a href="#controls_android.statistics.hotPixelMapMode">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode</a></p>
20223 <p>If no hotpixel map output is available for this camera device,<wbr/> this will contain only
20224 <code>false</code>.<wbr/></p>
20225 <p>ON is always supported on devices with the RAW capability.<wbr/></p>
20267 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
20283 results.<wbr/></p></span>
20288 <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
20294 metadata.<wbr/></p>
20295 <p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
20303 unit.<wbr/></p>
20310 <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
20325 <p>Whether face detection is enabled,<wbr/> and whether it
20327 fields.<wbr/></p>
20336 <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
20337 <a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
20338 FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
20339 <a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
20350 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
20370 <p>List of unique IDs for detected faces.<wbr/></p>
20392 to the camera device.<wbr/> A face that leaves the field of view and later returns may be
20393 assigned a new ID.<wbr/></p>
20394 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
20406 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
20421 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
20428 faces.<wbr/></p>
20449 <p>The coordinate system is that of <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with
20450 <code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
20451 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
20463 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
20478 <div class="entry_type_notes">(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax).<wbr/> (0,<wbr/>0) is top-left of active pixel area</div>
20485 faces.<wbr/></p>
20506 <p>The coordinate system is that of <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with
20507 <code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
20508 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF</p>
20520 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
20563 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF.<wbr/></p>
20572 <p>The value should be meaningful (for example,<wbr/> setting 100 at
20573 all times is illegal).<wbr/></p>
20584 android.<wbr/>statistics.<wbr/>faces
20606 in this capture.<wbr/></p>
20624 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> <code>!=</code> OFF.<wbr/></p>
20636 android.<wbr/>statistics.<wbr/>histogram
20650 <div class="entry_type_notes">count of pixels for each color channel that fall into each histogram bucket,<wbr/> scaled to be between 0 and maxHistogramCount</div>
20679 (with w = <a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>) of [ k * w/<wbr/>N,<wbr/>
20680 (k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
20681 supported,<wbr/> all channels should have the same data</p>
20693 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
20742 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
20756 <div class="entry_type_notes">estimated sharpness for each region of the input image.<wbr/> Normalized to be between 0 and maxSharpnessMapValue.<wbr/> Higher values mean sharper (better focused)</div>
20762 <p>A 3-channel sharpness map,<wbr/> based on the raw
20784 wbr/>
20797 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
20846 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map
20863 that lists the coefficients used to correct for vignetting,<wbr/> for each
20864 Bayer color channel.<wbr/></p>
20884 of 1; all other sections should have gains above 1.<wbr/></p>
20885 <p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
20886 must take into account the colorCorrection settings.<wbr/></p>
20887 <p>The shading map is for the entire active pixel array,<wbr/> and is not
20888 affected by the crop region specified in the request.<wbr/> Each shading map
20890 pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
20891 map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
20892 (x,<wbr/>y) ? (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
20893 pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
20894 The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
20895 <p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
20896 channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
20897 The shading map is stored in a fully interleaved format.<wbr/></p>
20898 <p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
20899 and must be smaller than 64x64.<wbr/></p>
20900 <p>As an example,<wbr/> given a very small map defined as:</p>
20901 <pre><code>width,<wbr/>height = [ 4,<wbr/> 3 ]
20903 [ 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/>
20904 1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>3,<wbr/>
20905 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/>
20906 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>2,<wbr/>
20907 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/>
20908 1.<wbr/>2,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3 ]
20916 <p>As a visualization only,<wbr/> inverting the full-color map to recover an
20930 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
20952 that lists the coefficients used to correct for vignetting,<wbr/> for each
20953 Bayer color channel.<wbr/></p>
20973 of 1; all other sections should have gains above 1.<wbr/></p>
20974 <p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
20975 must take into account the colorCorrection settings.<wbr/></p>
20976 <p>The shading map is for the entire active pixel array,<wbr/> and is not
20977 affected by the crop region specified in the request.<wbr/> Each shading map
20979 pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
20980 map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
20981 (x,<wbr/>y) ? (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
20982 pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
20983 The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
20984 <p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
20985 channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
20986 The shading map is stored in a fully interleaved format,<wbr/> and its size
20987 is provided in the camera static metadata by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
20988 <p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
20989 and must be smaller than 64x64.<wbr/></p>
20990 <p>As an example,<wbr/> given a very small map defined as:</p>
20991 <pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
20992 <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
20993 [ 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/>
20994 1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>3,<wbr/>
20995 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/>
20996 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>2,<wbr/>
20997 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/>
20998 1.<wbr/>2,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3 ]
21006 <p>As a visualization only,<wbr/> inverting the full-color map to recover an
21017 <p>The lens shading map calculation may depend on exposure and white balance statistics.<wbr/>
21019 (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF and <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>!=</code> OFF),<wbr/> the HAL
21020 may have all the information it need to generate most accurate lens shading map.<wbr/> When
21022 (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>==</code> OFF or <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>==</code> OFF),<wbr/> the shading map
21023 may be adversely impacted by manual exposure or white balance parameters.<wbr/> To avoid
21024 generating unreliable shading map data,<wbr/> the HAL may choose to lock the shading map with
21025 the latest known good map generated when the AE and AWB are in AUTO modes.<wbr/></p>
21037 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
21059 by the camera device's statistics units for the current output frame.<wbr/></p>
21078 <p>This may be different than the gains used for this frame,<wbr/>
21081 applied to that frame.<wbr/></p>
21082 <p>The 4 channel gains are defined in Bayer domain,<wbr/>
21083 see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
21084 <p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
21085 regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
21098 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
21121 output frame.<wbr/></p>
21142 for the next frame.<wbr/> These are the values the camera device believes
21143 are the best fit for the current output frame.<wbr/> This may
21144 be different than the transform used for this frame,<wbr/> since
21147 that frame.<wbr/></p>
21148 <p>These estimates must be provided for all frames,<wbr/> even if
21149 capture settings and color transforms are set by the application.<wbr/></p>
21150 <p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
21151 regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
21163 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
21179 in the current scene.<wbr/></p></span>
21184 in the current scene.<wbr/></p></span>
21189 in the current scene.<wbr/></p></span>
21197 frequency.<wbr/></p>
21215 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
21216 that depends on the local utility power standards.<wbr/> This flicker must be
21217 accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
21219 illuminant frequency is.<wbr/></p>
21221 (<code><a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> == OFF</code> or <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> ==
21222 OFF</code>),<wbr/> the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't perform
21223 antibanding,<wbr/> and the application can ensure it selects
21225 into this metadata field.<wbr/> See
21226 <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> for more details.<wbr/></p>
21227 <p>Reports NONE if there doesn't appear to be flickering illumination.<wbr/></p>
21239 android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
21253 <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
21257 <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
21264 <p>Operating mode for hot pixel map generation.<wbr/></p>
21271 <p><a href="#static_android.statistics.info.availableHotPixelMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes</a></p>
21287 <p>If set to <code>true</code>,<wbr/> a hot pixel map is returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/>
21288 If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
21300 android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map
21314 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
21320 <p>List of <code>(x,<wbr/> y)</code> coordinates of hot/<wbr/>defective pixels on the sensor.<wbr/></p>
21327 <p>n &lt;= number of pixels on the sensor.<wbr/>
21328 The <code>(x,<wbr/> y)</code> coordinates must be bounded by
21329 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
21345 <p>A coordinate <code>(x,<wbr/> y)</code> must lie between <code>(0,<wbr/> 0)</code>,<wbr/> and
21346 <code>(width - 1,<wbr/> height - 1)</code> (inclusive),<wbr/> which are the top-left and
21347 bottom-right of the pixel array,<wbr/> respectively.<wbr/> The width and
21348 height dimensions are given in <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/>
21350 bounds given by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
21361 the camera sensor).<wbr/> This includes pixels that are stuck at certain
21362 values,<wbr/> or have a response that does not accuractly encode the
21363 incoming light from the scene.<wbr/></p>
21364 <p>To avoid performance issues,<wbr/> there should be significantly fewer hot
21365 pixels than actual pixels on the camera sensor.<wbr/></p>
21376 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
21391 <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
21395 <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
21403 shading map in output result metadata.<wbr/></p>
21424 <p>When set to ON,<wbr/>
21425 <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
21426 the output result metadata.<wbr/></p>
21427 <p>ON is always supported on devices with the RAW capability.<wbr/></p>
21471 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
21486 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
21492 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
21493 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
21494 CONTRAST_<wbr/>CURVE.<wbr/></p>
21512 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
21524 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
21539 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
21545 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
21546 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
21547 CONTRAST_<wbr/>CURVE.<wbr/></p>
21565 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
21577 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
21592 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
21598 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
21599 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
21600 CONTRAST_<wbr/>CURVE.<wbr/></p>
21607 <p>0-1 on both input and output coordinates,<wbr/> normalized
21608 as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
21621 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
21622 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
21623 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
21625 required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
21626 define a complete mapping.<wbr/> For input values between control points,<wbr/>
21628 points.<wbr/></p>
21629 <p>Each curve can have an independent number of points,<wbr/> and the number
21630 of points can be less than max (that is,<wbr/> the request doesn't have to
21632 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
21633 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
21635 digits,<wbr/> for conciseness.<wbr/></p>
21637 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
21641 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 0 ]
21644 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
21645 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
21646 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2920,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4002,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4812,<wbr/>
21647 0.<wbr/>2667,<wbr/> 0.<wbr/>5484,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6069,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6594,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7072,<wbr/>
21648 0.<wbr/>5333,<wbr/> 0.<wbr/>7515,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7928,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8317,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8685,<wbr/>
21649 0.<wbr/>8000,<wbr/> 0.<wbr/>9035,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9370,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9691,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
21652 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
21653 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
21654 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
21655 0.<wbr/>2667,<wbr/> 0.<wbr/>5532,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6125,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6652,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7130,<wbr/>
21656 0.<wbr/>5333,<wbr/> 0.<wbr/>7569,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7977,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8360,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8721,<wbr/>
21657 0.<wbr/>8000,<wbr/> 0.<wbr/>9063,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9389,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9701,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
21668 <p>For good quality of mapping,<wbr/> at least 128 control points are
21669 preferred.<wbr/></p>
21670 <p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
21671 control points used as are available.<wbr/></p>
21682 android.<wbr/>tonemap.<wbr/>curve
21699 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
21700 is CONTRAST_<wbr/>CURVE.<wbr/></p>
21718 <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
21719 channels respectively.<wbr/> The following example uses the red channel as an
21720 example.<wbr/> The same logic applies to green and blue channel.<wbr/>
21723 [ P0(in,<wbr/> out),<wbr/> P1(in,<wbr/> out),<wbr/> P2(in,<wbr/> out),<wbr/> P3(in,<wbr/> out),<wbr/> ...,<wbr/> PN(in,<wbr/> out) ]
21724 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
21726 guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
21727 define a complete mapping.<wbr/> For input values between control points,<wbr/>
21729 points.<wbr/></p>
21730 <p>Each curve can have an independent number of points,<wbr/> and the number
21731 of points can be less than max (that is,<wbr/> the request doesn't have to
21733 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
21734 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
21736 digits,<wbr/> for conciseness.<wbr/></p>
21738 <pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
21742 <pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
21745 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
21747 (0.<wbr/>0000,<wbr/> 0.<wbr/>0000),<wbr/> (0.<wbr/>0667,<wbr/> 0.<wbr/>2920),<wbr/> (0.<wbr/>1333,<wbr/> 0.<wbr/>4002),<wbr/> (0.<wbr/>2000,<wbr/> 0.<wbr/>4812),<wbr/>
21748 (0.<wbr/>2667,<wbr/> 0.<wbr/>5484),<wbr/> (0.<wbr/>3333,<wbr/> 0.<wbr/>6069),<wbr/> (0.<wbr/>4000,<wbr/> 0.<wbr/>6594),<wbr/> (0.<wbr/>4667,<wbr/> 0.<wbr/>7072),<wbr/>
21749 (0.<wbr/>5333,<wbr/> 0.<wbr/>7515),<wbr/> (0.<wbr/>6000,<wbr/> 0.<wbr/>7928),<wbr/> (0.<wbr/>6667,<wbr/> 0.<wbr/>8317),<wbr/> (0.<wbr/>7333,<wbr/> 0.<wbr/>8685),<wbr/>
21750 (0.<wbr/>8000,<wbr/> 0.<wbr/>9035),<wbr/> (0.<wbr/>8667,<wbr/> 0.<wbr/>9370),<wbr/> (0.<wbr/>9333,<wbr/> 0.<wbr/>9691),<wbr/> (1.<wbr/>0000,<wbr/> 1.<wbr/>0000) ]
21753 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
21755 (0.<wbr/>0000,<wbr/> 0.<wbr/>0000),<wbr/> (0.<wbr/>0667,<wbr/> 0.<wbr/>2864),<wbr/> (0.<wbr/>1333,<wbr/> 0.<wbr/>4007),<wbr/> (0.<wbr/>2000,<wbr/> 0.<wbr/>4845),<wbr/>
21756 (0.<wbr/>2667,<wbr/> 0.<wbr/>5532),<wbr/> (0.<wbr/>3333,<wbr/> 0.<wbr/>6125),<wbr/> (0.<wbr/>4000,<wbr/> 0.<wbr/>6652),<wbr/> (0.<wbr/>4667,<wbr/> 0.<wbr/>7130),<wbr/>
21757 (0.<wbr/>5333,<wbr/> 0.<wbr/>7569),<wbr/> (0.<wbr/>6000,<wbr/> 0.<wbr/>7977),<wbr/> (0.<wbr/>6667,<wbr/> 0.<wbr/>8360),<wbr/> (0.<wbr/>7333,<wbr/> 0.<wbr/>8721),<wbr/>
21758 (0.<wbr/>8000,<wbr/> 0.<wbr/>9063),<wbr/> (0.<wbr/>8667,<wbr/> 0.<wbr/>9389),<wbr/> (0.<wbr/>9333,<wbr/> 0.<wbr/>9701),<wbr/> (1.<wbr/>0000,<wbr/> 1.<wbr/>0000) ]
21769 <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
21770 curveBlue entries.<wbr/></p>
21781 android.<wbr/>tonemap.<wbr/>mode
21797 the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
21798 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
21800 <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
21802 sensor output.<wbr/></p></span>
21806 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
21807 reducing frame rate compared to raw sensor output.<wbr/></p></span>
21811 <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
21812 the cost of reduced frame rate compared to raw sensor output.<wbr/></p></span>
21819 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
21826 <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
21839 <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
21840 per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
21842 low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
21843 and output may change depending on the camera pipeline,<wbr/> the values
21844 are specified by normalized floating-point numbers.<wbr/></p>
21846 tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
21847 transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
21848 CONTRAST_<wbr/>CURVE.<wbr/></p>
21849 <p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
21850 emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
21851 These values are always available,<wbr/> and as close as possible to the
21852 actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
21853 <p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
21854 provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
21855 roughly the same.<wbr/></p>
21894 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
21911 tonemap curve that can be used for <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
21929 <p>If the actual number of points provided by the application (in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>*) is
21930 less than this maximum,<wbr/> the camera device will resample the curve to its internal
21931 representation,<wbr/> using linear interpolation.<wbr/></p>
21933 of points than the input curves,<wbr/> and will represent the actual
21934 hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
21943 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
21954 android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes
21975 <p>List of tonemapping modes for <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> that are supported by this camera
21976 device.<wbr/></p>
21983 <p>Any value listed in <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></p>
21995 <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always list
21996 CONTRAST_<wbr/>CURVE and FAST.<wbr/> This includes all FULL level devices.<wbr/></p>
22035 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
22050 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
22056 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
22057 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
22058 CONTRAST_<wbr/>CURVE.<wbr/></p>
22076 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
22088 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
22103 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
22109 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
22110 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
22111 CONTRAST_<wbr/>CURVE.<wbr/></p>
22129 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
22141 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
22156 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
22162 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
22163 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
22164 CONTRAST_<wbr/>CURVE.<wbr/></p>
22171 <p>0-1 on both input and output coordinates,<wbr/> normalized
22172 as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
22185 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
22186 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
22187 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
22189 required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
22190 define a complete mapping.<wbr/> For input values between control points,<wbr/>
22192 points.<wbr/></p>
22193 <p>Each curve can have an independent number of points,<wbr/> and the number
22194 of points can be less than max (that is,<wbr/> the request doesn't have to
22196 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
22197 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
22199 digits,<wbr/> for conciseness.<wbr/></p>
22201 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
22205 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 0 ]
22208 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
22209 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
22210 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2920,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4002,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4812,<wbr/>
22211 0.<wbr/>2667,<wbr/> 0.<wbr/>5484,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6069,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6594,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7072,<wbr/>
22212 0.<wbr/>5333,<wbr/> 0.<wbr/>7515,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7928,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8317,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8685,<wbr/>
22213 0.<wbr/>8000,<wbr/> 0.<wbr/>9035,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9370,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9691,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
22216 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
22217 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
22218 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
22219 0.<wbr/>2667,<wbr/> 0.<wbr/>5532,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6125,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6652,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7130,<wbr/>
22220 0.<wbr/>5333,<wbr/> 0.<wbr/>7569,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7977,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8360,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8721,<wbr/>
22221 0.<wbr/>8000,<wbr/> 0.<wbr/>9063,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9389,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9701,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
22232 <p>For good quality of mapping,<wbr/> at least 128 control points are
22233 preferred.<wbr/></p>
22234 <p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
22235 control points used as are available.<wbr/></p>
22246 android.<wbr/>tonemap.<wbr/>curve
22263 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
22264 is CONTRAST_<wbr/>CURVE.<wbr/></p>
22282 <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
22283 channels respectively.<wbr/> The following example uses the red channel as an
22284 example.<wbr/> The same logic applies to green and blue channel.<wbr/>
22287 [ P0(in,<wbr/> out),<wbr/> P1(in,<wbr/> out),<wbr/> P2(in,<wbr/> out),<wbr/> P3(in,<wbr/> out),<wbr/> ...,<wbr/> PN(in,<wbr/> out) ]
22288 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
22290 guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
22291 define a complete mapping.<wbr/> For input values between control points,<wbr/>
22293 points.<wbr/></p>
22294 <p>Each curve can have an independent number of points,<wbr/> and the number
22295 of points can be less than max (that is,<wbr/> the request doesn't have to
22297 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
22298 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
22300 digits,<wbr/> for conciseness.<wbr/></p>
22302 <pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
22306 <pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
22309 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
22311 (0.<wbr/>0000,<wbr/> 0.<wbr/>0000),<wbr/> (0.<wbr/>0667,<wbr/> 0.<wbr/>2920),<wbr/> (0.<wbr/>1333,<wbr/> 0.<wbr/>4002),<wbr/> (0.<wbr/>2000,<wbr/> 0.<wbr/>4812),<wbr/>
22312 (0.<wbr/>2667,<wbr/> 0.<wbr/>5484),<wbr/> (0.<wbr/>3333,<wbr/> 0.<wbr/>6069),<wbr/> (0.<wbr/>4000,<wbr/> 0.<wbr/>6594),<wbr/> (0.<wbr/>4667,<wbr/> 0.<wbr/>7072),<wbr/>
22313 (0.<wbr/>5333,<wbr/> 0.<wbr/>7515),<wbr/> (0.<wbr/>6000,<wbr/> 0.<wbr/>7928),<wbr/> (0.<wbr/>6667,<wbr/> 0.<wbr/>8317),<wbr/> (0.<wbr/>7333,<wbr/> 0.<wbr/>8685),<wbr/>
22314 (0.<wbr/>8000,<wbr/> 0.<wbr/>9035),<wbr/> (0.<wbr/>8667,<wbr/> 0.<wbr/>9370),<wbr/> (0.<wbr/>9333,<wbr/> 0.<wbr/>9691),<wbr/> (1.<wbr/>0000,<wbr/> 1.<wbr/>0000) ]
22317 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
22319 (0.<wbr/>0000,<wbr/> 0.<wbr/>0000),<wbr/> (0.<wbr/>0667,<wbr/> 0.<wbr/>2864),<wbr/> (0.<wbr/>1333,<wbr/> 0.<wbr/>4007),<wbr/> (0.<wbr/>2000,<wbr/> 0.<wbr/>4845),<wbr/>
22320 (0.<wbr/>2667,<wbr/> 0.<wbr/>5532),<wbr/> (0.<wbr/>3333,<wbr/> 0.<wbr/>6125),<wbr/> (0.<wbr/>4000,<wbr/> 0.<wbr/>6652),<wbr/> (0.<wbr/>4667,<wbr/> 0.<wbr/>7130),<wbr/>
22321 (0.<wbr/>5333,<wbr/> 0.<wbr/>7569),<wbr/> (0.<wbr/>6000,<wbr/> 0.<wbr/>7977),<wbr/> (0.<wbr/>6667,<wbr/> 0.<wbr/>8360),<wbr/> (0.<wbr/>7333,<wbr/> 0.<wbr/>8721),<wbr/>
22322 (0.<wbr/>8000,<wbr/> 0.<wbr/>9063),<wbr/> (0.<wbr/>8667,<wbr/> 0.<wbr/>9389),<wbr/> (0.<wbr/>9333,<wbr/> 0.<wbr/>9701),<wbr/> (1.<wbr/>0000,<wbr/> 1.<wbr/>0000) ]
22333 <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
22334 curveBlue entries.<wbr/></p>
22345 android.<wbr/>tonemap.<wbr/>mode
22361 the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
22362 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
22364 <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
22366 sensor output.<wbr/></p></span>
22370 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
22371 reducing frame rate compared to raw sensor output.<wbr/></p></span>
22375 <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
22376 the cost of reduced frame rate compared to raw sensor output.<wbr/></p></span>
22383 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
22390 <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
22403 <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
22404 per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
22406 low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
22407 and output may change depending on the camera pipeline,<wbr/> the values
22408 are specified by normalized floating-point numbers.<wbr/></p>
22410 tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
22411 transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
22412 CONTRAST_<wbr/>CURVE.<wbr/></p>
22413 <p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
22414 emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
22415 These values are always available,<wbr/> and as close as possible to the
22416 actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
22417 <p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
22418 provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
22419 roughly the same.<wbr/></p>
22463 android.<wbr/>led.<wbr/>transmit
22488 Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
22490 any untrusted applications.<wbr/></p>
22491 <p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
22492 transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
22493 data is stored locally on the device.<wbr/></p>
22495 doesn't violate the above rules.<wbr/></p>
22544 android.<wbr/>led.<wbr/>transmit
22569 Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
22571 any untrusted applications.<wbr/></p>
22572 <p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
22573 transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
22574 data is stored locally on the device.<wbr/></p>
22576 doesn't violate the above rules.<wbr/></p>
22625 android.<wbr/>led.<wbr/>available<wbr/>Leds
22643 <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>
22650 <p>A list of camera LEDs that are available on this system.<wbr/></p>
22704 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
22719 <span class="entry_type_enum_notes"><p>This camera device has only limited capabilities.<wbr/></p></span>
22723 <span class="entry_type_enum_notes"><p>This camera device is capable of supporting advanced imaging applications.<wbr/></p></span>
22727 <span class="entry_type_enum_notes"><p>This camera device is running in backward compatibility mode.<wbr/></p></span>
22734 <p>Generally classifies the overall set of the camera device functionality.<wbr/></p>
22752 <p>Camera devices will come in three flavors: LEGACY,<wbr/> LIMITED and FULL.<wbr/></p>
22755 <li>30fps operation at maximum resolution (== sensor resolution) is preferred,<wbr/> more than
22756 20fps is required,<wbr/> for at least uncompressed YUV
22757 output.<wbr/> (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains BURST_<wbr/>CAPTURE)</li>
22758 <li>Per frame control (<a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> <code>==</code> PER_<wbr/>FRAME_<wbr/>CONTROL)</li>
22759 <li>Manual sensor control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains MANUAL_<wbr/>SENSOR)</li>
22760 <li>Manual post-processing control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
22761 MANUAL_<wbr/>POST_<wbr/>PROCESSING)</li>
22762 <li>Arbitrary cropping region (<a href="#static_android.scaler.croppingType">android.<wbr/>scaler.<wbr/>cropping<wbr/>Type</a> <code>==</code> FREEFORM)</li>
22764 (<a href="#static_android.request.maxNumOutputProc">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc</a> <code>&gt;=</code> 3)</li>
22765 <li>The required stream configuration defined in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a></li>
22766 <li>The required exposure time range defined in <a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></li>
22767 <li>The required maxFrameDuration defined in <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a></li>
22769 <p>A LIMITED device may have some or none of the above characteristics.<wbr/>
22770 To find out more refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
22772 queried separately.<wbr/> These include:</p>
22774 <li>Calibrated timestamps (<a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME)</li>
22775 <li>Precision lens control (<a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a> <code>==</code> CALIBRATED)</li>
22776 <li>Face detection (<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>)</li>
22778 (<a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a>,<wbr/>
22779 <a href="#static_android.control.availableVideoStabilizationModes">android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes</a>)</li>
22781 <p>A LEGACY device does not support per-frame control,<wbr/> manual sensor control,<wbr/> manual
22782 post-processing,<wbr/> arbitrary cropping regions,<wbr/> and has relaxed performance constraints.<wbr/></p>
22784 in this order: FULL <code>&gt;</code> LIMITED <code>&gt;</code> LEGACY.<wbr/></p>
22794 operational modes; limited and full.<wbr/> Full support is
22795 expected from new higher-end devices.<wbr/> Limited mode has
22797 camera HAL device v1 implementation,<wbr/> and is expected from
22798 older or inexpensive devices.<wbr/> Full is a strict superset of
22799 limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
22800 <p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
22801 <p>Camera HAL3+ must not implement LEGACY mode.<wbr/> It is there
22802 for backwards compatibility in the <code>android.<wbr/>hardware.<wbr/>camera2</code>
22803 user-facing API only.<wbr/></p>
22846 android.<wbr/>black<wbr/>Level.<wbr/>lock
22871 to its current values,<wbr/> or is free to vary.<wbr/></p>
22892 <p>When set to <code>true</code> (ON),<wbr/> the values used for black-level
22894 <code>false</code> (OFF).<wbr/></p>
22897 compensation,<wbr/> the camera device must report whether setting
22899 metadata.<wbr/></p>
22900 <p>For example,<wbr/> if a sequence of requests is as follows:</p>
22902 <li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
22903 <li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
22904 <li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
22905 <li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
22906 <li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
22907 <li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
22910 device to reset the black level offsets,<wbr/> then the output
22913 <li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
22914 <li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
22915 <li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
22916 <li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
22917 <li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
22918 <li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
22920 <p>This indicates to the application that on frame 4,<wbr/> black
22921 levels were reset due to exposure value changes,<wbr/> and pixel
22922 values may not be consistent across captures.<wbr/></p>
22924 possible,<wbr/> only overriding the lock to OFF when changes to
22926 or reset.<wbr/></p>
22936 (for example,<wbr/> the analog gain has changed,<wbr/> which forces
22937 black level offsets to be recalculated),<wbr/> then the HAL must
22940 possible again.<wbr/></p>
22978 android.<wbr/>black<wbr/>Level.<wbr/>lock
23003 to its current values,<wbr/> or is free to vary.<wbr/></p>
23024 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
23025 ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless
23027 perform a black level reset.<wbr/></p>
23037 (for example,<wbr/> the analog gain has changed,<wbr/> which forces
23038 black level offsets to be recalculated),<wbr/> then the HAL must
23041 possible again.<wbr/></p>
23084 android.<wbr/>sync.<wbr/>frame<wbr/>Number
23100 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/></p>
23101 <p>Synchronization is in progress,<wbr/> and reading metadata from this
23103 last synchronization time.<wbr/></p>
23104 <p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
23107 request settings remain constant).<wbr/></p></span>
23112 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/></p>
23113 <p>The result may have already converged,<wbr/> or it may be in
23114 progress.<wbr/> Reading from this result may include some mix
23115 of settings from past requests.<wbr/></p>
23116 <p>After a settings change,<wbr/> the new settings will eventually all
23117 take effect for the output buffers and results.<wbr/> However,<wbr/> this
23118 value will not change when that happens.<wbr/> Altering settings
23120 requests.<wbr/></p>
23122 the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
23131 synchronized.<wbr/></p>
23139 <code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
23154 <p>When a request is submitted to the camera device,<wbr/> there is usually a
23155 delay of several frames before the controls get applied.<wbr/> A camera
23157 pipeline and carefully submit well-timed atomic control updates,<wbr/> or
23159 boundaries.<wbr/></p>
23160 <p>In the latter case,<wbr/> whenever a request's settings change relative to
23161 the previous submitted request,<wbr/> the full set of changes may take
23162 multiple frame durations to fully take effect.<wbr/> Some settings may
23163 take effect sooner (in less frame durations) than others.<wbr/></p>
23164 <p>While a set of control changes are being propagated,<wbr/> this value
23165 will be CONVERGING.<wbr/></p>
23167 finished propagating,<wbr/> and the resulting updated control settings
23168 have been read back by the camera device,<wbr/> this value will be set
23170 which the results have synchronized to).<wbr/></p>
23172 when all camera controls have been applied,<wbr/> and will always set this
23173 value to UNKNOWN.<wbr/></p>
23175 frame number of the request corresponding to this result.<wbr/></p>
23178 <li>Whenever a request differs from the last request,<wbr/> any future
23181 device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
23183 previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
23186 repeating requests).<wbr/></li>
23188 to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
23189 <li>When this value changes to non-negative,<wbr/> that means that all of the
23190 metadata controls from the request have been applied,<wbr/> all of the
23192 updated values (into the result),<wbr/> and all of the graphics buffers
23193 corresponding to this result are also synchronized to the request.<wbr/></li>
23198 of all the results corresponding to currently in-flight requests.<wbr/></p>
23199 <p>In other words,<wbr/> results for this current request and up to
23200 <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
23201 <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
23210 <p>Using UNKNOWN here is illegal unless <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a>
23211 is also UNKNOWN.<wbr/></p>
23213 <code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
23251 android.<wbr/>sync.<wbr/>max<wbr/>Latency
23267 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/></p>
23268 <p>Furthermore for all results,<wbr/>
23269 <code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CaptureResult#getFrameNumber()</code></p>
23272 each frame.<wbr/></p>
23273 <p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
23279 of the past requests applied to the camera settings.<wbr/></p>
23280 <p>By submitting a series of identical requests,<wbr/> the camera device
23281 will eventually have the camera settings applied,<wbr/> but it is
23282 unknown when that exact point will be.<wbr/></p>
23283 <p>All LEGACY capability devices will have this as their maxLatency.<wbr/></p></span>
23291 (different than the previous) has been submitted,<wbr/> and before the
23293 <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
23301 <p>A positive value,<wbr/> PER_<wbr/>FRAME_<wbr/>CONTROL,<wbr/> or UNKNOWN.<wbr/></p>
23316 <p>This defines the maximum distance (in number of metadata results),<wbr/>
23317 between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
23318 frame number for that result.<wbr/></p>
23321 submitted camera settings have been applied in outgoing frames.<wbr/></p>
23322 <p>For example if the distance was 2,<wbr/></p>
23329 where requestN has frameNumber N,<wbr/> and the first of the repeating
23330 initial request's has frameNumber F (and F &lt; 1).<wbr/>
23332 initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
23333 result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
23334 result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
23335 result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
23336 result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
23338 where resultN has frameNumber N.<wbr/>
23341 <code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
23342 <code>4 - 2 = 2</code>.<wbr/></p>
23351 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
23352 <a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a> or <code>CaptureResult#getFrameNumber()</code>.<wbr/></p>
23354 value.<wbr/> If UNKNOWN is used here then app developers do not have a way
23355 to know when sensor settings have been applied.<wbr/></p>