docs.html revision b8317e2bbbf1a23d4fcd0c4b0e29e37254badc49
1<!DOCTYPE html> 2<html> 3<!-- Copyright (C) 2012 The Android Open Source Project 4 5 Licensed under the Apache License, Version 2.0 (the "License"); 6 you may not use this file except in compliance with the License. 7 You may obtain a copy of the License at 8 9 http://www.apache.org/licenses/LICENSE-2.0 10 11 Unless required by applicable law or agreed to in writing, software 12 distributed under the License is distributed on an "AS IS" BASIS, 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 See the License for the specific language governing permissions and 15 limitations under the License. 16--> 17<head> 18 <!-- automatically generated from html.mako. do NOT edit directly --> 19 <meta charset="utf-8" /> 20 <title>Android Camera HAL3.0 Properties</title> 21 <style type="text/css"> 22 body { background-color: #f7f7f7; font-family: Roboto, sans-serif;} 23 h1 { color: #333333; } 24 h2 { color: #333333; } 25 a:link { color: #258aaf; text-decoration: none} 26 a:hover { color: #459aaf; text-decoration: underline } 27 a:visited { color: #154a5f; text-decoration: none} 28 .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777} 29 .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa } 30 .entry { background-color: #f0f0f0 } 31 .entry_cont { background-color: #f0f0f0 } 32 .entries_header { background-color: #dddddd; text-align: center} 33 34 /* toc style */ 35 .toc_section_header { font-size:1.3em; } 36 .toc_kind_header { font-size:1.2em; } 37 38 /* table column sizes */ 39 table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word } 40 td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em } 41 .th_name { width: 20% } 42 .th_units { width: 10% } 43 .th_tags { width: 5% } 44 .th_details { width: 25% } 45 .th_type { width: 20% } 46 .th_description { width: 20% } 47 .th_range { width: 10% } 48 td { font-size: 0.9em; } 49 50 /* hide the first thead, we need it there only to enforce column sizes */ 51 .thead_dummy { visibility: hidden; } 52 53 /* Entry flair */ 54 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; } 55 56 /* Entry type flair */ 57 .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;} 58 .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" } 59 .entry_type_visibility { font-weight: bolder; padding-left:1em} 60 .entry_type_enum_name { font-family: monospace; font-weight: bolder; } 61 .entry_type_enum_notes:before { content:" - " } 62 .entry_type_enum_notes>p:first-child { display:inline; } 63 .entry_type_enum_value:before { content:" = " } 64 .entry_type_enum_value { font-family: monospace; } 65 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; } 66 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;} 67 68 /* Entry tags flair */ 69 .entry_tags ul { list-style-type: none; } 70 71 /* Entry details (full docs) flair */ 72 .entry_details_header { font-weight: bold; background-color: #dddddd; 73 text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; } 74 75 /* Entry spacer flair */ 76 .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; } 77 78 /* TODO: generate abbr element for each tag link? */ 79 /* TODO for each x.y.z try to link it to the entry */ 80 81 </style> 82 83 <style> 84 85 { 86 /* broken... 87 supposedly there is a bug in chrome that it lays out tables before 88 it knows its being printed, so the page-break-* styles are ignored 89 */ 90 tr { page-break-after: always; page-break-inside: avoid; } 91 } 92 93 </style> 94</head> 95 96 97 98<body> 99 <h1>Android Camera HAL3.0 Properties</h1> 100 101 102 <h2>Table of Contents</h2> 103 <ul class="toc"> 104 <li><a href="#tag_index" class="toc_section_header">Tags</a></li> 105 <li> 106 <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span> 107 <ul class="toc_section"> 108 <li> 109 <span class="toc_kind_header">controls</span> 110 <ul class="toc_section"> 111 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li> 112 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li> 113 <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li> 114 </ul> 115 </li> 116 <li> 117 <span class="toc_kind_header">dynamic</span> 118 <ul class="toc_section"> 119 <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li> 120 <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li> 121 </ul> 122 </li> 123 </ul> <!-- toc_section --> 124 </li> 125 <li> 126 <span class="toc_section_header"><a href="#section_control">control</a></span> 127 <ul class="toc_section"> 128 <li> 129 <span class="toc_kind_header">controls</span> 130 <ul class="toc_section"> 131 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li> 132 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li> 133 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li> 134 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li> 135 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li> 136 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li> 137 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li> 138 <li><a href="#controls_android.control.afMode">android.control.afMode</a></li> 139 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li> 140 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li> 141 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li> 142 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li> 143 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li> 144 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li> 145 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li> 146 <li><a href="#controls_android.control.mode">android.control.mode</a></li> 147 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li> 148 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li> 149 </ul> 150 </li> 151 <li> 152 <span class="toc_kind_header">static</span> 153 <ul class="toc_section"> 154 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li> 155 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li> 156 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li> 157 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li> 158 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li> 159 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li> 160 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li> 161 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li> 162 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li> 163 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li> 164 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li> 165 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li> 166 </ul> 167 </li> 168 <li> 169 <span class="toc_kind_header">dynamic</span> 170 <ul class="toc_section"> 171 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li> 172 <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li> 173 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li> 174 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li> 175 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li> 176 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li> 177 <li><a href="#dynamic_android.control.afState">android.control.afState</a></li> 178 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li> 179 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li> 180 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li> 181 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li> 182 <li><a href="#dynamic_android.control.mode">android.control.mode</a></li> 183 </ul> 184 </li> 185 </ul> <!-- toc_section --> 186 </li> 187 <li> 188 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span> 189 <ul class="toc_section"> 190 <li> 191 <span class="toc_kind_header">controls</span> 192 <ul class="toc_section"> 193 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li> 194 </ul> 195 </li> 196 </ul> <!-- toc_section --> 197 </li> 198 <li> 199 <span class="toc_section_header"><a href="#section_edge">edge</a></span> 200 <ul class="toc_section"> 201 <li> 202 <span class="toc_kind_header">controls</span> 203 <ul class="toc_section"> 204 <li><a href="#controls_android.edge.mode">android.edge.mode</a></li> 205 <li><a href="#controls_android.edge.strength">android.edge.strength</a></li> 206 </ul> 207 </li> 208 <li> 209 <span class="toc_kind_header">dynamic</span> 210 <ul class="toc_section"> 211 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li> 212 </ul> 213 </li> 214 </ul> <!-- toc_section --> 215 </li> 216 <li> 217 <span class="toc_section_header"><a href="#section_flash">flash</a></span> 218 <ul class="toc_section"> 219 <li> 220 <span class="toc_kind_header">controls</span> 221 <ul class="toc_section"> 222 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li> 223 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li> 224 <li><a href="#controls_android.flash.mode">android.flash.mode</a></li> 225 </ul> 226 </li> 227 <li> 228 <span class="toc_kind_header">static</span> 229 <ul class="toc_section"> 230 231 <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li> 232 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li> 233 234 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li> 235 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li> 236 </ul> 237 </li> 238 <li> 239 <span class="toc_kind_header">dynamic</span> 240 <ul class="toc_section"> 241 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li> 242 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li> 243 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li> 244 <li><a href="#dynamic_android.flash.state">android.flash.state</a></li> 245 </ul> 246 </li> 247 </ul> <!-- toc_section --> 248 </li> 249 <li> 250 <span class="toc_section_header"><a href="#section_geometric">geometric</a></span> 251 <ul class="toc_section"> 252 <li> 253 <span class="toc_kind_header">controls</span> 254 <ul class="toc_section"> 255 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li> 256 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li> 257 </ul> 258 </li> 259 </ul> <!-- toc_section --> 260 </li> 261 <li> 262 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span> 263 <ul class="toc_section"> 264 <li> 265 <span class="toc_kind_header">controls</span> 266 <ul class="toc_section"> 267 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li> 268 </ul> 269 </li> 270 <li> 271 <span class="toc_kind_header">static</span> 272 <ul class="toc_section"> 273 274 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li> 275 276 </ul> 277 </li> 278 <li> 279 <span class="toc_kind_header">dynamic</span> 280 <ul class="toc_section"> 281 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li> 282 </ul> 283 </li> 284 </ul> <!-- toc_section --> 285 </li> 286 <li> 287 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span> 288 <ul class="toc_section"> 289 <li> 290 <span class="toc_kind_header">controls</span> 291 <ul class="toc_section"> 292 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li> 293 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li> 294 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li> 295 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li> 296 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li> 297 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li> 298 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li> 299 </ul> 300 </li> 301 <li> 302 <span class="toc_kind_header">static</span> 303 <ul class="toc_section"> 304 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li> 305 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li> 306 </ul> 307 </li> 308 <li> 309 <span class="toc_kind_header">dynamic</span> 310 <ul class="toc_section"> 311 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li> 312 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li> 313 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li> 314 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li> 315 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li> 316 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li> 317 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li> 318 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li> 319 </ul> 320 </li> 321 </ul> <!-- toc_section --> 322 </li> 323 <li> 324 <span class="toc_section_header"><a href="#section_lens">lens</a></span> 325 <ul class="toc_section"> 326 <li> 327 <span class="toc_kind_header">controls</span> 328 <ul class="toc_section"> 329 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li> 330 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li> 331 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li> 332 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li> 333 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li> 334 </ul> 335 </li> 336 <li> 337 <span class="toc_kind_header">static</span> 338 <ul class="toc_section"> 339 340 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li> 341 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li> 342 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li> 343 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li> 344 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li> 345 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li> 346 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li> 347 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li> 348 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li> 349 350 <li><a href="#static_android.lens.facing">android.lens.facing</a></li> 351 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li> 352 <li><a href="#static_android.lens.position">android.lens.position</a></li> 353 </ul> 354 </li> 355 <li> 356 <span class="toc_kind_header">dynamic</span> 357 <ul class="toc_section"> 358 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li> 359 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li> 360 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li> 361 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li> 362 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li> 363 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li> 364 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li> 365 </ul> 366 </li> 367 </ul> <!-- toc_section --> 368 </li> 369 <li> 370 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span> 371 <ul class="toc_section"> 372 <li> 373 <span class="toc_kind_header">controls</span> 374 <ul class="toc_section"> 375 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li> 376 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li> 377 </ul> 378 </li> 379 <li> 380 <span class="toc_kind_header">dynamic</span> 381 <ul class="toc_section"> 382 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li> 383 </ul> 384 </li> 385 </ul> <!-- toc_section --> 386 </li> 387 <li> 388 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span> 389 <ul class="toc_section"> 390 <li> 391 <span class="toc_kind_header">static</span> 392 <ul class="toc_section"> 393 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li> 394 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li> 395 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li> 396 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li> 397 </ul> 398 </li> 399 <li> 400 <span class="toc_kind_header">dynamic</span> 401 <ul class="toc_section"> 402 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li> 403 </ul> 404 </li> 405 </ul> <!-- toc_section --> 406 </li> 407 <li> 408 <span class="toc_section_header"><a href="#section_request">request</a></span> 409 <ul class="toc_section"> 410 <li> 411 <span class="toc_kind_header">controls</span> 412 <ul class="toc_section"> 413 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li> 414 <li><a href="#controls_android.request.id">android.request.id</a></li> 415 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li> 416 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li> 417 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li> 418 <li><a href="#controls_android.request.type">android.request.type</a></li> 419 </ul> 420 </li> 421 <li> 422 <span class="toc_kind_header">static</span> 423 <ul class="toc_section"> 424 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li> 425 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li> 426 </ul> 427 </li> 428 <li> 429 <span class="toc_kind_header">dynamic</span> 430 <ul class="toc_section"> 431 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li> 432 <li><a href="#dynamic_android.request.id">android.request.id</a></li> 433 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li> 434 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li> 435 </ul> 436 </li> 437 </ul> <!-- toc_section --> 438 </li> 439 <li> 440 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span> 441 <ul class="toc_section"> 442 <li> 443 <span class="toc_kind_header">controls</span> 444 <ul class="toc_section"> 445 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li> 446 </ul> 447 </li> 448 <li> 449 <span class="toc_kind_header">static</span> 450 <ul class="toc_section"> 451 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li> 452 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li> 453 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li> 454 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li> 455 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li> 456 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li> 457 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li> 458 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li> 459 </ul> 460 </li> 461 <li> 462 <span class="toc_kind_header">dynamic</span> 463 <ul class="toc_section"> 464 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li> 465 </ul> 466 </li> 467 </ul> <!-- toc_section --> 468 </li> 469 <li> 470 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span> 471 <ul class="toc_section"> 472 <li> 473 <span class="toc_kind_header">controls</span> 474 <ul class="toc_section"> 475 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li> 476 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li> 477 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li> 478 </ul> 479 </li> 480 <li> 481 <span class="toc_kind_header">static</span> 482 <ul class="toc_section"> 483 484 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li> 485 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li> 486 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li> 487 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li> 488 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li> 489 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li> 490 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li> 491 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li> 492 493 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li> 494 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li> 495 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li> 496 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li> 497 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li> 498 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li> 499 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li> 500 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li> 501 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li> 502 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li> 503 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li> 504 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li> 505 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li> 506 </ul> 507 </li> 508 <li> 509 <span class="toc_kind_header">dynamic</span> 510 <ul class="toc_section"> 511 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li> 512 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li> 513 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li> 514 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li> 515 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li> 516 </ul> 517 </li> 518 </ul> <!-- toc_section --> 519 </li> 520 <li> 521 <span class="toc_section_header"><a href="#section_shading">shading</a></span> 522 <ul class="toc_section"> 523 <li> 524 <span class="toc_kind_header">controls</span> 525 <ul class="toc_section"> 526 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li> 527 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li> 528 </ul> 529 </li> 530 <li> 531 <span class="toc_kind_header">dynamic</span> 532 <ul class="toc_section"> 533 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li> 534 </ul> 535 </li> 536 </ul> <!-- toc_section --> 537 </li> 538 <li> 539 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span> 540 <ul class="toc_section"> 541 <li> 542 <span class="toc_kind_header">controls</span> 543 <ul class="toc_section"> 544 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li> 545 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li> 546 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li> 547 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li> 548 </ul> 549 </li> 550 <li> 551 <span class="toc_kind_header">static</span> 552 <ul class="toc_section"> 553 554 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li> 555 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li> 556 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li> 557 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li> 558 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li> 559 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li> 560 561 </ul> 562 </li> 563 <li> 564 <span class="toc_kind_header">dynamic</span> 565 <ul class="toc_section"> 566 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li> 567 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li> 568 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li> 569 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li> 570 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li> 571 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li> 572 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li> 573 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li> 574 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li> 575 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li> 576 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li> 577 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li> 578 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li> 579 </ul> 580 </li> 581 </ul> <!-- toc_section --> 582 </li> 583 <li> 584 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span> 585 <ul class="toc_section"> 586 <li> 587 <span class="toc_kind_header">controls</span> 588 <ul class="toc_section"> 589 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li> 590 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li> 591 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li> 592 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li> 593 </ul> 594 </li> 595 <li> 596 <span class="toc_kind_header">static</span> 597 <ul class="toc_section"> 598 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li> 599 </ul> 600 </li> 601 <li> 602 <span class="toc_kind_header">dynamic</span> 603 <ul class="toc_section"> 604 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li> 605 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li> 606 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li> 607 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li> 608 </ul> 609 </li> 610 </ul> <!-- toc_section --> 611 </li> 612 <li> 613 <span class="toc_section_header"><a href="#section_led">led</a></span> 614 <ul class="toc_section"> 615 <li> 616 <span class="toc_kind_header">controls</span> 617 <ul class="toc_section"> 618 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li> 619 </ul> 620 </li> 621 <li> 622 <span class="toc_kind_header">dynamic</span> 623 <ul class="toc_section"> 624 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li> 625 </ul> 626 </li> 627 <li> 628 <span class="toc_kind_header">static</span> 629 <ul class="toc_section"> 630 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li> 631 </ul> 632 </li> 633 </ul> <!-- toc_section --> 634 </li> 635 <li> 636 <span class="toc_section_header"><a href="#section_info">info</a></span> 637 <ul class="toc_section"> 638 <li> 639 <span class="toc_kind_header">static</span> 640 <ul class="toc_section"> 641 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li> 642 </ul> 643 </li> 644 </ul> <!-- toc_section --> 645 </li> 646 <li> 647 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span> 648 <ul class="toc_section"> 649 <li> 650 <span class="toc_kind_header">controls</span> 651 <ul class="toc_section"> 652 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li> 653 </ul> 654 </li> 655 <li> 656 <span class="toc_kind_header">dynamic</span> 657 <ul class="toc_section"> 658 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li> 659 </ul> 660 </li> 661 </ul> <!-- toc_section --> 662 </li> 663 </ul> 664 665 666 <h1>Properties</h1> 667 <table class="properties"> 668 669 <thead class="thead_dummy"> 670 <tr> 671 <th class="th_name">Property Name</th> 672 <th class="th_type">Type</th> 673 <th class="th_description">Description</th> 674 <th class="th_units">Units</th> 675 <th class="th_range">Range</th> 676 <th class="th_tags">Tags</th> 677 </tr> 678 </thead> <!-- so that the first occurrence of thead is not 679 above the first occurrence of tr --> 680<!-- <namespace name="android"> --> 681 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr> 682 683 684 <tr><td colspan="6" class="kind">controls</td></tr> 685 686 <thead class="entries_header"> 687 <tr> 688 <th class="th_name">Property Name</th> 689 <th class="th_type">Type</th> 690 <th class="th_description">Description</th> 691 <th class="th_units">Units</th> 692 <th class="th_range">Range</th> 693 <th class="th_tags">Tags</th> 694 </tr> 695 </thead> 696 697 <tbody> 698 699 700 701 702 703 704 705 706 707 708 <tr class="entry" id="controls_android.colorCorrection.mode"> 709 <td class="entry_name" rowspan="3"> 710 android.<wbr/>color<wbr/>Correction.<wbr/>mode 711 </td> 712 <td class="entry_type"> 713 <span class="entry_type_name entry_type_name_enum">byte</span> 714 715 <span class="entry_type_visibility"> [public]</span> 716 717 <ul class="entry_type_enum"> 718 <li> 719 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span> 720 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix 721and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion</p></span> 722 </li> 723 <li> 724 <span class="entry_type_enum_name">FAST</span> 725 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw 726bayer output</p></span> 727 </li> 728 <li> 729 <span class="entry_type_enum_name">HIGH_QUALITY</span> 730 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 731quality</p></span> 732 </li> 733 </ul> 734 735 </td> <!-- entry_type --> 736 737 <td class="entry_description"> 738 </td> 739 740 <td class="entry_units"> 741 </td> 742 743 <td class="entry_range"> 744 </td> 745 746 <td class="entry_tags"> 747 </td> 748 749 </tr> 750 <tr class="entries_header"> 751 <th class="th_details" colspan="5">Details</th> 752 </tr> 753 <tr class="entry_cont"> 754 <td class="entry_details" colspan="5"> 755 <p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is not OFF,<wbr/> TRANSFORM_<wbr/>MATRIX 756should be ignored.<wbr/></p> 757 </td> 758 </tr> 759 760 761 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 762 <!-- end of entry --> 763 764 765 <tr class="entry" id="controls_android.colorCorrection.transform"> 766 <td class="entry_name" rowspan="3"> 767 android.<wbr/>color<wbr/>Correction.<wbr/>transform 768 </td> 769 <td class="entry_type"> 770 <span class="entry_type_name">rational</span> 771 <span class="entry_type_container">x</span> 772 773 <span class="entry_type_array"> 774 3 x 3 775 </span> 776 <span class="entry_type_visibility"> [public]</span> 777 <div class="entry_type_notes">3x3 rational matrix in row-major order</div> 778 779 780 </td> <!-- entry_type --> 781 782 <td class="entry_description"> 783 <p>A color transform matrix to use to transform 784from sensor RGB color space to output linear sRGB color space</p> 785 </td> 786 787 <td class="entry_units"> 788 </td> 789 790 <td class="entry_range"> 791 <p>Output values are expected to be in the range 792(0,<wbr/>1)</p> 793 </td> 794 795 <td class="entry_tags"> 796 </td> 797 798 </tr> 799 <tr class="entries_header"> 800 <th class="th_details" colspan="5">Details</th> 801 </tr> 802 <tr class="entry_cont"> 803 <td class="entry_details" colspan="5"> 804 <p>This matrix is either set by HAL when the request 805<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or 806directly by the application in the request when the 807<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p> 808<p>In the latter case,<wbr/> the HAL may round the matrix to account 809for precision issues; the final rounded matrix should be 810reported back in this matrix result metadata.<wbr/></p> 811 </td> 812 </tr> 813 814 815 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 816 <!-- end of entry --> 817 818 819 <tr class="entry" id="controls_android.colorCorrection.gains"> 820 <td class="entry_name" rowspan="3"> 821 android.<wbr/>color<wbr/>Correction.<wbr/>gains 822 </td> 823 <td class="entry_type"> 824 <span class="entry_type_name">float</span> 825 <span class="entry_type_container">x</span> 826 827 <span class="entry_type_array"> 828 4 829 </span> 830 <span class="entry_type_visibility"> [public]</span> 831 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div> 832 833 834 </td> <!-- entry_type --> 835 836 <td class="entry_description"> 837 <p>Gains applying to Bayer color channels for 838white-balance</p> 839 </td> 840 841 <td class="entry_units"> 842 </td> 843 844 <td class="entry_range"> 845 </td> 846 847 <td class="entry_tags"> 848 </td> 849 850 </tr> 851 <tr class="entries_header"> 852 <th class="th_details" colspan="5">Details</th> 853 </tr> 854 <tr class="entry_cont"> 855 <td class="entry_details" colspan="5"> 856 <p>The 4-channel white-balance gains are defined in 857the order of [R G_<wbr/>even G_<wbr/>odd B],<wbr/> where G_<wbr/>even is the gain 858for green pixels on even rows of the output,<wbr/> and G_<wbr/>odd 859is the gain for greenpixels on the odd rows.<wbr/> if a HAL 860does not support a separate gain for even/<wbr/>odd green channels,<wbr/> 861it should use the G_<wbr/>even value,<wbr/>and write G_<wbr/>odd equal to 862G_<wbr/>even in the output result metadata.<wbr/></p> 863<p>This array is either set by HAL when the request 864<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or 865directly by the application in the request when the 866<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p> 867<p>The ouput should be the gains actually applied by the HAL to 868the current frame.<wbr/></p> 869 </td> 870 </tr> 871 872 873 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 874 <!-- end of entry --> 875 876 877 878 <!-- end of kind --> 879 </tbody> 880 <tr><td colspan="6" class="kind">dynamic</td></tr> 881 882 <thead class="entries_header"> 883 <tr> 884 <th class="th_name">Property Name</th> 885 <th class="th_type">Type</th> 886 <th class="th_description">Description</th> 887 <th class="th_units">Units</th> 888 <th class="th_range">Range</th> 889 <th class="th_tags">Tags</th> 890 </tr> 891 </thead> 892 893 <tbody> 894 895 896 897 898 899 900 901 902 903 904 <tr class="entry" id="dynamic_android.colorCorrection.transform"> 905 <td class="entry_name" rowspan="3"> 906 android.<wbr/>color<wbr/>Correction.<wbr/>transform 907 </td> 908 <td class="entry_type"> 909 <span class="entry_type_name">rational</span> 910 <span class="entry_type_container">x</span> 911 912 <span class="entry_type_array"> 913 3 x 3 914 </span> 915 <span class="entry_type_visibility"> [public]</span> 916 <div class="entry_type_notes">3x3 rational matrix in row-major order</div> 917 918 919 </td> <!-- entry_type --> 920 921 <td class="entry_description"> 922 <p>A color transform matrix to use to transform 923from sensor RGB color space to output linear sRGB color space</p> 924 </td> 925 926 <td class="entry_units"> 927 </td> 928 929 <td class="entry_range"> 930 <p>Output values are expected to be in the range 931(0,<wbr/>1)</p> 932 </td> 933 934 <td class="entry_tags"> 935 </td> 936 937 </tr> 938 <tr class="entries_header"> 939 <th class="th_details" colspan="5">Details</th> 940 </tr> 941 <tr class="entry_cont"> 942 <td class="entry_details" colspan="5"> 943 <p>This matrix is either set by HAL when the request 944<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or 945directly by the application in the request when the 946<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p> 947<p>In the latter case,<wbr/> the HAL may round the matrix to account 948for precision issues; the final rounded matrix should be 949reported back in this matrix result metadata.<wbr/></p> 950 </td> 951 </tr> 952 953 954 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 955 <!-- end of entry --> 956 957 958 <tr class="entry" id="dynamic_android.colorCorrection.gains"> 959 <td class="entry_name" rowspan="3"> 960 android.<wbr/>color<wbr/>Correction.<wbr/>gains 961 </td> 962 <td class="entry_type"> 963 <span class="entry_type_name">float</span> 964 <span class="entry_type_container">x</span> 965 966 <span class="entry_type_array"> 967 4 968 </span> 969 <span class="entry_type_visibility"> [public]</span> 970 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div> 971 972 973 </td> <!-- entry_type --> 974 975 <td class="entry_description"> 976 <p>Gains applying to Bayer color channels for 977white-balance</p> 978 </td> 979 980 <td class="entry_units"> 981 </td> 982 983 <td class="entry_range"> 984 </td> 985 986 <td class="entry_tags"> 987 </td> 988 989 </tr> 990 <tr class="entries_header"> 991 <th class="th_details" colspan="5">Details</th> 992 </tr> 993 <tr class="entry_cont"> 994 <td class="entry_details" colspan="5"> 995 <p>The 4-channel white-balance gains are defined in 996the order of [R G_<wbr/>even G_<wbr/>odd B],<wbr/> where G_<wbr/>even is the gain 997for green pixels on even rows of the output,<wbr/> and G_<wbr/>odd 998is the gain for greenpixels on the odd rows.<wbr/> if a HAL 999does not support a separate gain for even/<wbr/>odd green channels,<wbr/> 1000it should use the G_<wbr/>even value,<wbr/>and write G_<wbr/>odd equal to 1001G_<wbr/>even in the output result metadata.<wbr/></p> 1002<p>This array is either set by HAL when the request 1003<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or 1004directly by the application in the request when the 1005<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p> 1006<p>The ouput should be the gains actually applied by the HAL to 1007the current frame.<wbr/></p> 1008 </td> 1009 </tr> 1010 1011 1012 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1013 <!-- end of entry --> 1014 1015 1016 1017 <!-- end of kind --> 1018 </tbody> 1019 1020 <!-- end of section --> 1021 <tr><td colspan="6" id="section_control" class="section">control</td></tr> 1022 1023 1024 <tr><td colspan="6" class="kind">controls</td></tr> 1025 1026 <thead class="entries_header"> 1027 <tr> 1028 <th class="th_name">Property Name</th> 1029 <th class="th_type">Type</th> 1030 <th class="th_description">Description</th> 1031 <th class="th_units">Units</th> 1032 <th class="th_range">Range</th> 1033 <th class="th_tags">Tags</th> 1034 </tr> 1035 </thead> 1036 1037 <tbody> 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 <tr class="entry" id="controls_android.control.aeAntibandingMode"> 1049 <td class="entry_name" rowspan="5"> 1050 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode 1051 </td> 1052 <td class="entry_type"> 1053 <span class="entry_type_name entry_type_name_enum">byte</span> 1054 1055 <span class="entry_type_visibility"> [public]</span> 1056 1057 <ul class="entry_type_enum"> 1058 <li> 1059 <span class="entry_type_enum_name">OFF</span> 1060 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to 1061avoid banding problems.<wbr/></p></span> 1062 </li> 1063 <li> 1064 <span class="entry_type_enum_name">50HZ</span> 1065 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to 1066avoid banding problems with 50Hz illumination sources.<wbr/></p></span> 1067 </li> 1068 <li> 1069 <span class="entry_type_enum_name">60HZ</span> 1070 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to 1071avoid banding problems with 60Hz illumination 1072sources.<wbr/></p></span> 1073 </li> 1074 <li> 1075 <span class="entry_type_enum_name">AUTO</span> 1076 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its 1077antibanding routine to the current illumination 1078conditions.<wbr/> This is the default.<wbr/></p></span> 1079 </li> 1080 </ul> 1081 1082 </td> <!-- entry_type --> 1083 1084 <td class="entry_description"> 1085 <p>The desired setting for the camera device's auto-exposure 1086algorithm's antibanding compensation.<wbr/></p> 1087 </td> 1088 1089 <td class="entry_units"> 1090 </td> 1091 1092 <td class="entry_range"> 1093 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p> 1094 </td> 1095 1096 <td class="entry_tags"> 1097 <ul class="entry_tags"> 1098 <li><a href="#tag_BC">BC</a></li> 1099 </ul> 1100 </td> 1101 1102 </tr> 1103 <tr class="entries_header"> 1104 <th class="th_details" colspan="5">Details</th> 1105 </tr> 1106 <tr class="entry_cont"> 1107 <td class="entry_details" colspan="5"> 1108 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent 1109lights,<wbr/> flicker at the rate of the power supply frequency 1110(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is 1111typically not noticeable to a person,<wbr/> it can be visible to 1112a camera device.<wbr/> If a camera sets its exposure time to the 1113wrong value,<wbr/> the flicker may become visible in the 1114viewfinder as flicker or in a final captured image,<wbr/> as a 1115set of variable-brightness bands across the image.<wbr/></p> 1116<p>Therefore,<wbr/> the auto-exposure routines of camera devices 1117include antibanding routines that ensure that the chosen 1118exposure value will not cause such banding.<wbr/> The choice of 1119exposure time depends on the rate of flicker,<wbr/> which the 1120camera device can detect automatically,<wbr/> or the expected 1121rate can be selected by the application using this 1122control.<wbr/></p> 1123<p>A given camera device may not support all of the possible 1124options for the antibanding mode.<wbr/> The 1125<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains 1126the available modes for a given camera device.<wbr/></p> 1127<p>The default mode is AUTO,<wbr/> which must be supported by all 1128camera devices.<wbr/></p> 1129<p>If manual exposure control is enabled (by setting 1130<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/> 1131then this setting has no effect,<wbr/> and the application must 1132ensure it selects exposure times that do not cause banding 1133issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist 1134the application in this.<wbr/></p> 1135 </td> 1136 </tr> 1137 1138 <tr class="entries_header"> 1139 <th class="th_details" colspan="5">HAL Implementation Details</th> 1140 </tr> 1141 <tr class="entry_cont"> 1142 <td class="entry_details" colspan="5"> 1143 <p>For all capture request templates,<wbr/> this field must be set 1144to AUTO.<wbr/> AUTO is the only mode that must supported; 1145OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p> 1146<p>If manual exposure control is enabled (by setting 1147<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/> 1148then the exposure values provided by the application must not be 1149adjusted for antibanding.<wbr/></p> 1150 </td> 1151 </tr> 1152 1153 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1154 <!-- end of entry --> 1155 1156 1157 <tr class="entry" id="controls_android.control.aeExposureCompensation"> 1158 <td class="entry_name" rowspan="3"> 1159 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation 1160 </td> 1161 <td class="entry_type"> 1162 <span class="entry_type_name">int32</span> 1163 1164 <span class="entry_type_visibility"> [public]</span> 1165 1166 1167 </td> <!-- entry_type --> 1168 1169 <td class="entry_description"> 1170 <p>Adjustment to AE target image 1171brightness</p> 1172 </td> 1173 1174 <td class="entry_units"> 1175 count of positive/<wbr/>negative EV steps 1176 </td> 1177 1178 <td class="entry_range"> 1179 </td> 1180 1181 <td class="entry_tags"> 1182 <ul class="entry_tags"> 1183 <li><a href="#tag_BC">BC</a></li> 1184 </ul> 1185 </td> 1186 1187 </tr> 1188 <tr class="entries_header"> 1189 <th class="th_details" colspan="5">Details</th> 1190 </tr> 1191 <tr class="entry_cont"> 1192 <td class="entry_details" colspan="5"> 1193 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an 1194exposure compensation of +2 EV; -3 will mean an exposure 1195compensation of -1</p> 1196 </td> 1197 </tr> 1198 1199 1200 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1201 <!-- end of entry --> 1202 1203 1204 <tr class="entry" id="controls_android.control.aeLock"> 1205 <td class="entry_name" rowspan="3"> 1206 android.<wbr/>control.<wbr/>ae<wbr/>Lock 1207 </td> 1208 <td class="entry_type"> 1209 <span class="entry_type_name entry_type_name_enum">byte</span> 1210 1211 <span class="entry_type_visibility"> [public as boolean]</span> 1212 1213 <ul class="entry_type_enum"> 1214 <li> 1215 <span class="entry_type_enum_name">OFF</span> 1216 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm 1217is free to update its parameters.<wbr/></p></span> 1218 </li> 1219 <li> 1220 <span class="entry_type_enum_name">ON</span> 1221 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm 1222must not update the exposure and sensitivity parameters 1223while the lock is active</p></span> 1224 </li> 1225 </ul> 1226 1227 </td> <!-- entry_type --> 1228 1229 <td class="entry_description"> 1230 <p>Whether AE is currently locked to its latest 1231calculated values</p> 1232 </td> 1233 1234 <td class="entry_units"> 1235 </td> 1236 1237 <td class="entry_range"> 1238 </td> 1239 1240 <td class="entry_tags"> 1241 <ul class="entry_tags"> 1242 <li><a href="#tag_BC">BC</a></li> 1243 </ul> 1244 </td> 1245 1246 </tr> 1247 <tr class="entries_header"> 1248 <th class="th_details" colspan="5">Details</th> 1249 </tr> 1250 <tr class="entry_cont"> 1251 <td class="entry_details" colspan="5"> 1252 <p>Note that even when AE is locked,<wbr/> the flash may be 1253fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> 1254ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p> 1255 </td> 1256 </tr> 1257 1258 1259 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1260 <!-- end of entry --> 1261 1262 1263 <tr class="entry" id="controls_android.control.aeMode"> 1264 <td class="entry_name" rowspan="3"> 1265 android.<wbr/>control.<wbr/>ae<wbr/>Mode 1266 </td> 1267 <td class="entry_type"> 1268 <span class="entry_type_name entry_type_name_enum">byte</span> 1269 1270 <span class="entry_type_visibility"> [public]</span> 1271 1272 <ul class="entry_type_enum"> 1273 <li> 1274 <span class="entry_type_enum_name">OFF</span> 1275 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled; 1276the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> 1277<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and 1278<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera 1279device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's 1280a flash unit for this camera device.<wbr/></p></span> 1281 </li> 1282 <li> 1283 <span class="entry_type_enum_name">ON</span> 1284 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/> 1285with no flash control.<wbr/> The application's values for 1286<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> 1287<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and 1288<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The 1289application has control over the various 1290android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span> 1291 </li> 1292 <li> 1293 <span class="entry_type_enum_name">ON_AUTO_FLASH</span> 1294 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls 1295the camera's flash unit,<wbr/> firing it in low-light 1296conditions.<wbr/> The flash may be fired during a 1297precapture sequence (triggered by 1298<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired 1299for captures for which the 1300<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to 1301STILL_<wbr/>CAPTURE</p></span> 1302 </li> 1303 <li> 1304 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span> 1305 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls 1306the camera's flash unit,<wbr/> always firing it for still 1307captures.<wbr/> The flash may be fired during a precapture 1308sequence (triggered by 1309<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always 1310be fired for captures for which the 1311<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to 1312STILL_<wbr/>CAPTURE</p></span> 1313 </li> 1314 <li> 1315 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span> 1316 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye 1317reduction.<wbr/> If deemed necessary by the camera device,<wbr/> 1318a red eye reduction flash will fire during the 1319precapture sequence.<wbr/></p></span> 1320 </li> 1321 </ul> 1322 1323 </td> <!-- entry_type --> 1324 1325 <td class="entry_description"> 1326 <p>The desired mode for the camera device's 1327auto-exposure routine.<wbr/></p> 1328 </td> 1329 1330 <td class="entry_units"> 1331 </td> 1332 1333 <td class="entry_range"> 1334 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p> 1335 </td> 1336 1337 <td class="entry_tags"> 1338 <ul class="entry_tags"> 1339 <li><a href="#tag_BC">BC</a></li> 1340 </ul> 1341 </td> 1342 1343 </tr> 1344 <tr class="entries_header"> 1345 <th class="th_details" colspan="5">Details</th> 1346 </tr> 1347 <tr class="entry_cont"> 1348 <td class="entry_details" colspan="5"> 1349 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is 1350AUTO.<wbr/></p> 1351<p>When set to any of the ON modes,<wbr/> the camera device's 1352auto-exposure routine is enabled,<wbr/> overriding the 1353application's selected exposure time,<wbr/> sensor sensitivity,<wbr/> 1354and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> 1355<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and 1356<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes 1357is selected,<wbr/> the camera device's flash unit controls are 1358also overridden.<wbr/></p> 1359<p>The FLASH modes are only available if the camera device 1360has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p> 1361<p>If flash TORCH mode is desired,<wbr/> this field must be set to 1362ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p> 1363<p>When set to any of the ON modes,<wbr/> the values chosen by the 1364camera device auto-exposure routine for the overridden 1365fields for a given capture will be available in its 1366CaptureResult.<wbr/></p> 1367 </td> 1368 </tr> 1369 1370 1371 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1372 <!-- end of entry --> 1373 1374 1375 <tr class="entry" id="controls_android.control.aeRegions"> 1376 <td class="entry_name" rowspan="3"> 1377 android.<wbr/>control.<wbr/>ae<wbr/>Regions 1378 </td> 1379 <td class="entry_type"> 1380 <span class="entry_type_name">int32</span> 1381 <span class="entry_type_container">x</span> 1382 1383 <span class="entry_type_array"> 1384 5 x area_count 1385 </span> 1386 <span class="entry_type_visibility"> [public]</span> 1387 1388 1389 </td> <!-- entry_type --> 1390 1391 <td class="entry_description"> 1392 <p>List of areas to use for 1393metering</p> 1394 </td> 1395 1396 <td class="entry_units"> 1397 </td> 1398 1399 <td class="entry_range"> 1400 </td> 1401 1402 <td class="entry_tags"> 1403 <ul class="entry_tags"> 1404 <li><a href="#tag_BC">BC</a></li> 1405 </ul> 1406 </td> 1407 1408 </tr> 1409 <tr class="entries_header"> 1410 <th class="th_details" colspan="5">Details</th> 1411 </tr> 1412 <tr class="entry_cont"> 1413 <td class="entry_details" colspan="5"> 1414 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/> 1415xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the 1416specified coordinates.<wbr/></p> 1417<p>The coordinate system is based on the active pixel array,<wbr/> 1418with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and 1419(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/> 1420<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the 1421bottom-right pixel in the active pixel array.<wbr/> The weight 1422should be nonnegative.<wbr/></p> 1423<p>If all regions have 0 weight,<wbr/> then no specific metering area 1424needs to be used by the HAL.<wbr/> If the metering region is 1425outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL 1426should ignore the sections outside the region and output the 1427used sections in the frame metadata</p> 1428 </td> 1429 </tr> 1430 1431 1432 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1433 <!-- end of entry --> 1434 1435 1436 <tr class="entry" id="controls_android.control.aeTargetFpsRange"> 1437 <td class="entry_name" rowspan="3"> 1438 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range 1439 </td> 1440 <td class="entry_type"> 1441 <span class="entry_type_name">int32</span> 1442 <span class="entry_type_container">x</span> 1443 1444 <span class="entry_type_array"> 1445 2 1446 </span> 1447 <span class="entry_type_visibility"> [public]</span> 1448 1449 1450 </td> <!-- entry_type --> 1451 1452 <td class="entry_description"> 1453 <p>Range over which fps can be adjusted to 1454maintain exposure</p> 1455 </td> 1456 1457 <td class="entry_units"> 1458 </td> 1459 1460 <td class="entry_range"> 1461 <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p> 1462 </td> 1463 1464 <td class="entry_tags"> 1465 <ul class="entry_tags"> 1466 <li><a href="#tag_BC">BC</a></li> 1467 </ul> 1468 </td> 1469 1470 </tr> 1471 <tr class="entries_header"> 1472 <th class="th_details" colspan="5">Details</th> 1473 </tr> 1474 <tr class="entry_cont"> 1475 <td class="entry_details" colspan="5"> 1476 <p>Only constrains AE algorithm,<wbr/> not manual control 1477of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p> 1478 </td> 1479 </tr> 1480 1481 1482 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1483 <!-- end of entry --> 1484 1485 1486 <tr class="entry" id="controls_android.control.aePrecaptureTrigger"> 1487 <td class="entry_name" rowspan="3"> 1488 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger 1489 </td> 1490 <td class="entry_type"> 1491 <span class="entry_type_name entry_type_name_enum">byte</span> 1492 1493 <span class="entry_type_visibility"> [public]</span> 1494 1495 <ul class="entry_type_enum"> 1496 <li> 1497 <span class="entry_type_enum_name">IDLE</span> 1498 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span> 1499 </li> 1500 <li> 1501 <span class="entry_type_enum_name">START</span> 1502 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started 1503by the camera device.<wbr/> The exact effect of the precapture 1504trigger depends on the current AE mode and state.<wbr/></p></span> 1505 </li> 1506 </ul> 1507 1508 </td> <!-- entry_type --> 1509 1510 <td class="entry_description"> 1511 <p>Whether the camera device will trigger a precapture 1512metering sequence when it processes this request.<wbr/></p> 1513 </td> 1514 1515 <td class="entry_units"> 1516 </td> 1517 1518 <td class="entry_range"> 1519 </td> 1520 1521 <td class="entry_tags"> 1522 <ul class="entry_tags"> 1523 <li><a href="#tag_BC">BC</a></li> 1524 </ul> 1525 </td> 1526 1527 </tr> 1528 <tr class="entries_header"> 1529 <th class="th_details" colspan="5">Details</th> 1530 </tr> 1531 <tr class="entry_cont"> 1532 <td class="entry_details" colspan="5"> 1533 <p>This entry is normally set to IDLE,<wbr/> or is not 1534included at all in the request settings.<wbr/> When included and 1535set to START,<wbr/> the camera device will trigger the autoexposure 1536precapture metering sequence.<wbr/></p> 1537<p>The effect of AE precapture trigger depends on the current 1538AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture 1539state transition details.<wbr/></p> 1540 </td> 1541 </tr> 1542 1543 1544 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1545 <!-- end of entry --> 1546 1547 1548 <tr class="entry" id="controls_android.control.afMode"> 1549 <td class="entry_name" rowspan="3"> 1550 android.<wbr/>control.<wbr/>af<wbr/>Mode 1551 </td> 1552 <td class="entry_type"> 1553 <span class="entry_type_name entry_type_name_enum">byte</span> 1554 1555 <span class="entry_type_visibility"> [public]</span> 1556 1557 <ul class="entry_type_enum"> 1558 <li> 1559 <span class="entry_type_enum_name">OFF</span> 1560 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens; 1561<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the 1562application</p></span> 1563 </li> 1564 <li> 1565 <span class="entry_type_enum_name">AUTO</span> 1566 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p> 1567<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 1568is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless 1569the autofocus trigger action is called.<wbr/> When that trigger 1570is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to 1571the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p> 1572<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/> 1573and sets the AF state to INACTIVE.<wbr/></p></span> 1574 </li> 1575 <li> 1576 <span class="entry_type_enum_name">MACRO</span> 1577 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the 1578autofocus trigger action is called.<wbr/></p> 1579<p>When that trigger is activated,<wbr/> AF must transition to 1580ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or 1581NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens 1582position to default,<wbr/> and sets the AF state to 1583INACTIVE.<wbr/></p></span> 1584 </li> 1585 <li> 1586 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span> 1587 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens 1588position continually to attempt to provide a 1589constantly-in-focus image stream.<wbr/></p> 1590<p>The focusing behavior should be suitable for good quality 1591video recording; typically this means slower focus 1592movement and no overshoots.<wbr/> When the AF trigger is not 1593involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/> 1594and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED 1595states as appropriate.<wbr/> When the AF trigger is activated,<wbr/> 1596the algorithm should immediately transition into 1597AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the 1598lens position until a cancel AF trigger is received.<wbr/></p> 1599<p>Once cancel is received,<wbr/> the algorithm should transition 1600back to INACTIVE and resume passive scan.<wbr/> Note that this 1601behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an 1602ongoing PASSIVE_<wbr/>SCAN must immediately be 1603canceled.<wbr/></p></span> 1604 </li> 1605 <li> 1606 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span> 1607 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens 1608position continually to attempt to provide a 1609constantly-in-focus image stream.<wbr/></p> 1610<p>The focusing behavior should be suitable for still image 1611capture; typically this means focusing as fast as 1612possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF 1613algorithm should start in INACTIVE state,<wbr/> and then 1614transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as 1615appropriate as it attempts to maintain focus.<wbr/> When the AF 1616trigger is activated,<wbr/> the algorithm should finish its 1617PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into 1618AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the 1619lens position until a cancel AF trigger is received.<wbr/></p> 1620<p>When the AF cancel trigger is activated,<wbr/> the algorithm 1621should transition back to INACTIVE and then act as if it 1622has just been started.<wbr/></p></span> 1623 </li> 1624 <li> 1625 <span class="entry_type_enum_name">EDOF</span> 1626 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF 1627trigger is ignored,<wbr/> AF state should always be 1628INACTIVE.<wbr/></p></span> 1629 </li> 1630 </ul> 1631 1632 </td> <!-- entry_type --> 1633 1634 <td class="entry_description"> 1635 <p>Whether AF is currently enabled,<wbr/> and what 1636mode it is set to</p> 1637 </td> 1638 1639 <td class="entry_units"> 1640 </td> 1641 1642 <td class="entry_range"> 1643 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p> 1644 </td> 1645 1646 <td class="entry_tags"> 1647 <ul class="entry_tags"> 1648 <li><a href="#tag_BC">BC</a></li> 1649 </ul> 1650 </td> 1651 1652 </tr> 1653 <tr class="entries_header"> 1654 <th class="th_details" colspan="5">Details</th> 1655 </tr> 1656 <tr class="entry_cont"> 1657 <td class="entry_details" colspan="5"> 1658 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p> 1659<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/> 1660the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State 1661in result metadata.<wbr/></p> 1662 </td> 1663 </tr> 1664 1665 1666 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1667 <!-- end of entry --> 1668 1669 1670 <tr class="entry" id="controls_android.control.afRegions"> 1671 <td class="entry_name" rowspan="3"> 1672 android.<wbr/>control.<wbr/>af<wbr/>Regions 1673 </td> 1674 <td class="entry_type"> 1675 <span class="entry_type_name">int32</span> 1676 <span class="entry_type_container">x</span> 1677 1678 <span class="entry_type_array"> 1679 5 x area_count 1680 </span> 1681 <span class="entry_type_visibility"> [public]</span> 1682 1683 1684 </td> <!-- entry_type --> 1685 1686 <td class="entry_description"> 1687 <p>List of areas to use for focus 1688estimation</p> 1689 </td> 1690 1691 <td class="entry_units"> 1692 </td> 1693 1694 <td class="entry_range"> 1695 </td> 1696 1697 <td class="entry_tags"> 1698 <ul class="entry_tags"> 1699 <li><a href="#tag_BC">BC</a></li> 1700 </ul> 1701 </td> 1702 1703 </tr> 1704 <tr class="entries_header"> 1705 <th class="th_details" colspan="5">Details</th> 1706 </tr> 1707 <tr class="entry_cont"> 1708 <td class="entry_details" colspan="5"> 1709 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/> 1710xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the 1711specified coordinates.<wbr/></p> 1712<p>The coordinate system is based on the active pixel array,<wbr/> 1713with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and 1714(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/> 1715<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the 1716bottom-right pixel in the active pixel array.<wbr/> The weight 1717should be nonnegative.<wbr/></p> 1718<p>If all regions have 0 weight,<wbr/> then no specific focus area 1719needs to be used by the HAL.<wbr/> If the focusing region is 1720outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL 1721should ignore the sections outside the region and output the 1722used sections in the frame metadata</p> 1723 </td> 1724 </tr> 1725 1726 1727 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1728 <!-- end of entry --> 1729 1730 1731 <tr class="entry" id="controls_android.control.afTrigger"> 1732 <td class="entry_name" rowspan="3"> 1733 android.<wbr/>control.<wbr/>af<wbr/>Trigger 1734 </td> 1735 <td class="entry_type"> 1736 <span class="entry_type_name entry_type_name_enum">byte</span> 1737 1738 <span class="entry_type_visibility"> [public]</span> 1739 1740 <ul class="entry_type_enum"> 1741 <li> 1742 <span class="entry_type_enum_name">IDLE</span> 1743 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span> 1744 </li> 1745 <li> 1746 <span class="entry_type_enum_name">START</span> 1747 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span> 1748 </li> 1749 <li> 1750 <span class="entry_type_enum_name">CANCEL</span> 1751 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial 1752state,<wbr/> and cancel any currently active trigger.<wbr/></p></span> 1753 </li> 1754 </ul> 1755 1756 </td> <!-- entry_type --> 1757 1758 <td class="entry_description"> 1759 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p> 1760 </td> 1761 1762 <td class="entry_units"> 1763 </td> 1764 1765 <td class="entry_range"> 1766 </td> 1767 1768 <td class="entry_tags"> 1769 <ul class="entry_tags"> 1770 <li><a href="#tag_BC">BC</a></li> 1771 </ul> 1772 </td> 1773 1774 </tr> 1775 <tr class="entries_header"> 1776 <th class="th_details" colspan="5">Details</th> 1777 </tr> 1778 <tr class="entry_cont"> 1779 <td class="entry_details" colspan="5"> 1780 <p>This entry is normally set to IDLE,<wbr/> or is not 1781included at all in the request settings.<wbr/></p> 1782<p>When included and set to START,<wbr/> the camera device will trigger the 1783autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p> 1784<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/> 1785and return to its initial AF state.<wbr/></p> 1786<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what that means for each AF mode.<wbr/></p> 1787 </td> 1788 </tr> 1789 1790 1791 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1792 <!-- end of entry --> 1793 1794 1795 <tr class="entry" id="controls_android.control.awbLock"> 1796 <td class="entry_name" rowspan="3"> 1797 android.<wbr/>control.<wbr/>awb<wbr/>Lock 1798 </td> 1799 <td class="entry_type"> 1800 <span class="entry_type_name entry_type_name_enum">byte</span> 1801 1802 <span class="entry_type_visibility"> [public as boolean]</span> 1803 1804 <ul class="entry_type_enum"> 1805 <li> 1806 <span class="entry_type_enum_name">OFF</span> 1807 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB 1808algorithm is free to update its parameters if in AUTO 1809mode.<wbr/></p></span> 1810 </li> 1811 <li> 1812 <span class="entry_type_enum_name">ON</span> 1813 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB 1814algorithm must not update the exposure and sensitivity 1815parameters while the lock is active</p></span> 1816 </li> 1817 </ul> 1818 1819 </td> <!-- entry_type --> 1820 1821 <td class="entry_description"> 1822 <p>Whether AWB is currently locked to its 1823latest calculated values</p> 1824 </td> 1825 1826 <td class="entry_units"> 1827 </td> 1828 1829 <td class="entry_range"> 1830 </td> 1831 1832 <td class="entry_tags"> 1833 <ul class="entry_tags"> 1834 <li><a href="#tag_BC">BC</a></li> 1835 </ul> 1836 </td> 1837 1838 </tr> 1839 <tr class="entries_header"> 1840 <th class="th_details" colspan="5">Details</th> 1841 </tr> 1842 <tr class="entry_cont"> 1843 <td class="entry_details" colspan="5"> 1844 <p>Note that AWB lock is only meaningful for AUTO 1845mode; in other modes,<wbr/> AWB is already fixed to a specific 1846setting</p> 1847 </td> 1848 </tr> 1849 1850 1851 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1852 <!-- end of entry --> 1853 1854 1855 <tr class="entry" id="controls_android.control.awbMode"> 1856 <td class="entry_name" rowspan="3"> 1857 android.<wbr/>control.<wbr/>awb<wbr/>Mode 1858 </td> 1859 <td class="entry_type"> 1860 <span class="entry_type_name entry_type_name_enum">byte</span> 1861 1862 <span class="entry_type_visibility"> [public]</span> 1863 1864 <ul class="entry_type_enum"> 1865 <li> 1866 <span class="entry_type_enum_name">OFF</span> 1867 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 1868the application-selected color transform matrix 1869(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains 1870(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera 1871device for manual white balance control.<wbr/></p></span> 1872 </li> 1873 <li> 1874 <span class="entry_type_enum_name">AUTO</span> 1875 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active; 1876the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform 1877and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span> 1878 </li> 1879 <li> 1880 <span class="entry_type_enum_name">INCANDESCENT</span> 1881 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 1882the camera device uses incandescent light as the assumed scene 1883illumination for white balance.<wbr/> While the exact white balance 1884transforms are up to the camera device,<wbr/> they will approximately 1885match the CIE standard illuminant A.<wbr/></p></span> 1886 </li> 1887 <li> 1888 <span class="entry_type_enum_name">FLUORESCENT</span> 1889 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 1890the camera device uses fluorescent light as the assumed scene 1891illumination for white balance.<wbr/> While the exact white balance 1892transforms are up to the camera device,<wbr/> they will approximately 1893match the CIE standard illuminant F2.<wbr/></p></span> 1894 </li> 1895 <li> 1896 <span class="entry_type_enum_name">WARM_FLUORESCENT</span> 1897 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 1898the camera device uses warm fluorescent light as the assumed scene 1899illumination for white balance.<wbr/> While the exact white balance 1900transforms are up to the camera device,<wbr/> they will approximately 1901match the CIE standard illuminant F4.<wbr/></p></span> 1902 </li> 1903 <li> 1904 <span class="entry_type_enum_name">DAYLIGHT</span> 1905 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 1906the camera device uses daylight light as the assumed scene 1907illumination for white balance.<wbr/> While the exact white balance 1908transforms are up to the camera device,<wbr/> they will approximately 1909match the CIE standard illuminant D65.<wbr/></p></span> 1910 </li> 1911 <li> 1912 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span> 1913 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 1914the camera device uses cloudy daylight light as the assumed scene 1915illumination for white balance.<wbr/></p></span> 1916 </li> 1917 <li> 1918 <span class="entry_type_enum_name">TWILIGHT</span> 1919 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 1920the camera device uses twilight light as the assumed scene 1921illumination for white balance.<wbr/></p></span> 1922 </li> 1923 <li> 1924 <span class="entry_type_enum_name">SHADE</span> 1925 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 1926the camera device uses shade light as the assumed scene 1927illumination for white balance.<wbr/></p></span> 1928 </li> 1929 </ul> 1930 1931 </td> <!-- entry_type --> 1932 1933 <td class="entry_description"> 1934 <p>Whether AWB is currently setting the color 1935transform fields,<wbr/> and what its illumination target 1936is</p> 1937 </td> 1938 1939 <td class="entry_units"> 1940 </td> 1941 1942 <td class="entry_range"> 1943 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p> 1944 </td> 1945 1946 <td class="entry_tags"> 1947 <ul class="entry_tags"> 1948 <li><a href="#tag_BC">BC</a></li> 1949 <li><a href="#tag_AWB">AWB</a></li> 1950 </ul> 1951 </td> 1952 1953 </tr> 1954 <tr class="entries_header"> 1955 <th class="th_details" colspan="5">Details</th> 1956 </tr> 1957 <tr class="entry_cont"> 1958 <td class="entry_details" colspan="5"> 1959 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p> 1960<p>When set to the ON mode,<wbr/> the camera device's auto white balance 1961routine is enabled,<wbr/> overriding the application's selected 1962<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 1963<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p> 1964<p>When set to the OFF mode,<wbr/> the camera device's auto white balance 1965routine is disabled.<wbr/> The applicantion manually controls the white 1966balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains 1967and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p> 1968<p>When set to any other modes,<wbr/> the camera device's auto white balance 1969routine is disabled.<wbr/> The camera device uses each particular illumination 1970target for white balance adjustment.<wbr/></p> 1971 </td> 1972 </tr> 1973 1974 1975 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 1976 <!-- end of entry --> 1977 1978 1979 <tr class="entry" id="controls_android.control.awbRegions"> 1980 <td class="entry_name" rowspan="3"> 1981 android.<wbr/>control.<wbr/>awb<wbr/>Regions 1982 </td> 1983 <td class="entry_type"> 1984 <span class="entry_type_name">int32</span> 1985 <span class="entry_type_container">x</span> 1986 1987 <span class="entry_type_array"> 1988 5 x area_count 1989 </span> 1990 <span class="entry_type_visibility"> [public]</span> 1991 1992 1993 </td> <!-- entry_type --> 1994 1995 <td class="entry_description"> 1996 <p>List of areas to use for illuminant 1997estimation</p> 1998 </td> 1999 2000 <td class="entry_units"> 2001 </td> 2002 2003 <td class="entry_range"> 2004 </td> 2005 2006 <td class="entry_tags"> 2007 <ul class="entry_tags"> 2008 <li><a href="#tag_BC">BC</a></li> 2009 </ul> 2010 </td> 2011 2012 </tr> 2013 <tr class="entries_header"> 2014 <th class="th_details" colspan="5">Details</th> 2015 </tr> 2016 <tr class="entry_cont"> 2017 <td class="entry_details" colspan="5"> 2018 <p>Only used in AUTO mode.<wbr/></p> 2019<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/> 2020xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the 2021specified coordinates.<wbr/></p> 2022<p>The coordinate system is based on the active pixel array,<wbr/> 2023with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and 2024(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/> 2025<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the 2026bottom-right pixel in the active pixel array.<wbr/> The weight 2027should be nonnegative.<wbr/></p> 2028<p>If all regions have 0 weight,<wbr/> then no specific metering area 2029needs to be used by the HAL.<wbr/> If the metering region is 2030outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL 2031should ignore the sections outside the region and output the 2032used sections in the frame metadata</p> 2033 </td> 2034 </tr> 2035 2036 2037 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2038 <!-- end of entry --> 2039 2040 2041 <tr class="entry" id="controls_android.control.captureIntent"> 2042 <td class="entry_name" rowspan="3"> 2043 android.<wbr/>control.<wbr/>capture<wbr/>Intent 2044 </td> 2045 <td class="entry_type"> 2046 <span class="entry_type_name entry_type_name_enum">byte</span> 2047 2048 <span class="entry_type_visibility"> [public]</span> 2049 2050 <ul class="entry_type_enum"> 2051 <li> 2052 <span class="entry_type_enum_name">CUSTOM</span> 2053 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other 2054categories.<wbr/> Default to preview-like 2055behavior.<wbr/></p></span> 2056 </li> 2057 <li> 2058 <span class="entry_type_enum_name">PREVIEW</span> 2059 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The 2060precapture trigger may be used to start off a metering 2061w/<wbr/>flash sequence</p></span> 2062 </li> 2063 <li> 2064 <span class="entry_type_enum_name">STILL_CAPTURE</span> 2065 <span class="entry_type_enum_notes"><p>This request is for a still capture-type 2066usecase.<wbr/></p></span> 2067 </li> 2068 <li> 2069 <span class="entry_type_enum_name">VIDEO_RECORD</span> 2070 <span class="entry_type_enum_notes"><p>This request is for a video recording 2071usecase.<wbr/></p></span> 2072 </li> 2073 <li> 2074 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span> 2075 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still 2076image while recording video) usecase</p></span> 2077 </li> 2078 <li> 2079 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span> 2080 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the 2081application will stream full-resolution images and 2082reprocess one or several later for a final 2083capture</p></span> 2084 </li> 2085 </ul> 2086 2087 </td> <!-- entry_type --> 2088 2089 <td class="entry_description"> 2090 <p>Information to the camera device 3A (auto-exposure,<wbr/> 2091auto-focus,<wbr/> auto-white balance) routines about the purpose 2092of this capture,<wbr/> to help the camera device to decide optimal 3A 2093strategy.<wbr/></p> 2094 </td> 2095 2096 <td class="entry_units"> 2097 </td> 2098 2099 <td class="entry_range"> 2100 <p>All must be supported</p> 2101 </td> 2102 2103 <td class="entry_tags"> 2104 <ul class="entry_tags"> 2105 <li><a href="#tag_BC">BC</a></li> 2106 </ul> 2107 </td> 2108 2109 </tr> 2110 <tr class="entries_header"> 2111 <th class="th_details" colspan="5">Details</th> 2112 </tr> 2113 <tr class="entry_cont"> 2114 <td class="entry_details" colspan="5"> 2115 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> 2116and any 3A routine is active.<wbr/></p> 2117 </td> 2118 </tr> 2119 2120 2121 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2122 <!-- end of entry --> 2123 2124 2125 <tr class="entry" id="controls_android.control.effectMode"> 2126 <td class="entry_name" rowspan="1"> 2127 android.<wbr/>control.<wbr/>effect<wbr/>Mode 2128 </td> 2129 <td class="entry_type"> 2130 <span class="entry_type_name entry_type_name_enum">byte</span> 2131 2132 <span class="entry_type_visibility"> [public]</span> 2133 2134 <ul class="entry_type_enum"> 2135 <li> 2136 <span class="entry_type_enum_name">OFF</span> 2137 </li> 2138 <li> 2139 <span class="entry_type_enum_name">MONO</span> 2140 <span class="entry_type_enum_optional">optional</span> 2141 </li> 2142 <li> 2143 <span class="entry_type_enum_name">NEGATIVE</span> 2144 <span class="entry_type_enum_optional">optional</span> 2145 </li> 2146 <li> 2147 <span class="entry_type_enum_name">SOLARIZE</span> 2148 <span class="entry_type_enum_optional">optional</span> 2149 </li> 2150 <li> 2151 <span class="entry_type_enum_name">SEPIA</span> 2152 <span class="entry_type_enum_optional">optional</span> 2153 </li> 2154 <li> 2155 <span class="entry_type_enum_name">POSTERIZE</span> 2156 <span class="entry_type_enum_optional">optional</span> 2157 </li> 2158 <li> 2159 <span class="entry_type_enum_name">WHITEBOARD</span> 2160 <span class="entry_type_enum_optional">optional</span> 2161 </li> 2162 <li> 2163 <span class="entry_type_enum_name">BLACKBOARD</span> 2164 <span class="entry_type_enum_optional">optional</span> 2165 </li> 2166 <li> 2167 <span class="entry_type_enum_name">AQUA</span> 2168 <span class="entry_type_enum_optional">optional</span> 2169 </li> 2170 </ul> 2171 2172 </td> <!-- entry_type --> 2173 2174 <td class="entry_description"> 2175 <p>Whether any special color effect is in use.<wbr/> 2176Only used if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</p> 2177 </td> 2178 2179 <td class="entry_units"> 2180 </td> 2181 2182 <td class="entry_range"> 2183 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p> 2184 </td> 2185 2186 <td class="entry_tags"> 2187 <ul class="entry_tags"> 2188 <li><a href="#tag_BC">BC</a></li> 2189 </ul> 2190 </td> 2191 2192 </tr> 2193 2194 2195 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2196 <!-- end of entry --> 2197 2198 2199 <tr class="entry" id="controls_android.control.mode"> 2200 <td class="entry_name" rowspan="3"> 2201 android.<wbr/>control.<wbr/>mode 2202 </td> 2203 <td class="entry_type"> 2204 <span class="entry_type_name entry_type_name_enum">byte</span> 2205 2206 <span class="entry_type_visibility"> [public]</span> 2207 2208 <ul class="entry_type_enum"> 2209 <li> 2210 <span class="entry_type_enum_name">OFF</span> 2211 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A 2212routines are disabled,<wbr/> no other settings in 2213android.<wbr/>control.<wbr/>* have any effect</p></span> 2214 </li> 2215 <li> 2216 <span class="entry_type_enum_name">AUTO</span> 2217 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/> 2218Manual control of capture parameters is disabled.<wbr/> All 2219controls in android.<wbr/>control.<wbr/>* besides sceneMode take 2220effect</p></span> 2221 </li> 2222 <li> 2223 <span class="entry_type_enum_name">USE_SCENE_MODE</span> 2224 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables 2225control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode 2226controls; the HAL must ignore those settings while 2227USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY 2228scene mode).<wbr/> Other control entries are still active.<wbr/> 2229This setting can only be used if availableSceneModes != 2230UNSUPPORTED</p></span> 2231 </li> 2232 </ul> 2233 2234 </td> <!-- entry_type --> 2235 2236 <td class="entry_description"> 2237 <p>Overall mode of 3A control 2238routines</p> 2239 </td> 2240 2241 <td class="entry_units"> 2242 </td> 2243 2244 <td class="entry_range"> 2245 <p>all must be supported</p> 2246 </td> 2247 2248 <td class="entry_tags"> 2249 <ul class="entry_tags"> 2250 <li><a href="#tag_BC">BC</a></li> 2251 </ul> 2252 </td> 2253 2254 </tr> 2255 <tr class="entries_header"> 2256 <th class="th_details" colspan="5">Details</th> 2257 </tr> 2258 <tr class="entry_cont"> 2259 <td class="entry_details" colspan="5"> 2260 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control 2261by the camera device is disabled.<wbr/> The application must set the fields for 2262capture parameters itself.<wbr/></p> 2263<p>When set to AUTO,<wbr/> the individual algorithm controls in 2264android.<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> 2265<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in 2266android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements 2267one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY) 2268as it wishes.<wbr/> The camera device scene mode 3A settings are provided by 2269<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p> 2270 </td> 2271 </tr> 2272 2273 2274 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2275 <!-- end of entry --> 2276 2277 2278 <tr class="entry" id="controls_android.control.sceneMode"> 2279 <td class="entry_name" rowspan="1"> 2280 android.<wbr/>control.<wbr/>scene<wbr/>Mode 2281 </td> 2282 <td class="entry_type"> 2283 <span class="entry_type_name entry_type_name_enum">byte</span> 2284 2285 <span class="entry_type_visibility"> [public]</span> 2286 2287 <ul class="entry_type_enum"> 2288 <li> 2289 <span class="entry_type_enum_name">UNSUPPORTED</span> 2290 <span class="entry_type_enum_value">0</span> 2291 </li> 2292 <li> 2293 <span class="entry_type_enum_name">FACE_PRIORITY</span> 2294 <span class="entry_type_enum_notes"><p>if face detection support exists Use face 2295detection data to drive 3A routines.<wbr/> If face detection 2296statistics are disabled,<wbr/> should still operate correctly 2297(but not return face detection statistics to the 2298framework).<wbr/></p> 2299<p>Unlike the other scene modes,<wbr/> aeMode,<wbr/> awbMode,<wbr/> and afMode 2300remain active when FACE_<wbr/>PRIORITY is set.<wbr/> This is due to 2301compatibility concerns with the old camera 2302API</p></span> 2303 </li> 2304 <li> 2305 <span class="entry_type_enum_name">ACTION</span> 2306 <span class="entry_type_enum_optional">optional</span> 2307 </li> 2308 <li> 2309 <span class="entry_type_enum_name">PORTRAIT</span> 2310 <span class="entry_type_enum_optional">optional</span> 2311 </li> 2312 <li> 2313 <span class="entry_type_enum_name">LANDSCAPE</span> 2314 <span class="entry_type_enum_optional">optional</span> 2315 </li> 2316 <li> 2317 <span class="entry_type_enum_name">NIGHT</span> 2318 <span class="entry_type_enum_optional">optional</span> 2319 </li> 2320 <li> 2321 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span> 2322 <span class="entry_type_enum_optional">optional</span> 2323 </li> 2324 <li> 2325 <span class="entry_type_enum_name">THEATRE</span> 2326 <span class="entry_type_enum_optional">optional</span> 2327 </li> 2328 <li> 2329 <span class="entry_type_enum_name">BEACH</span> 2330 <span class="entry_type_enum_optional">optional</span> 2331 </li> 2332 <li> 2333 <span class="entry_type_enum_name">SNOW</span> 2334 <span class="entry_type_enum_optional">optional</span> 2335 </li> 2336 <li> 2337 <span class="entry_type_enum_name">SUNSET</span> 2338 <span class="entry_type_enum_optional">optional</span> 2339 </li> 2340 <li> 2341 <span class="entry_type_enum_name">STEADYPHOTO</span> 2342 <span class="entry_type_enum_optional">optional</span> 2343 </li> 2344 <li> 2345 <span class="entry_type_enum_name">FIREWORKS</span> 2346 <span class="entry_type_enum_optional">optional</span> 2347 </li> 2348 <li> 2349 <span class="entry_type_enum_name">SPORTS</span> 2350 <span class="entry_type_enum_optional">optional</span> 2351 </li> 2352 <li> 2353 <span class="entry_type_enum_name">PARTY</span> 2354 <span class="entry_type_enum_optional">optional</span> 2355 </li> 2356 <li> 2357 <span class="entry_type_enum_name">CANDLELIGHT</span> 2358 <span class="entry_type_enum_optional">optional</span> 2359 </li> 2360 <li> 2361 <span class="entry_type_enum_name">BARCODE</span> 2362 <span class="entry_type_enum_optional">optional</span> 2363 </li> 2364 </ul> 2365 2366 </td> <!-- entry_type --> 2367 2368 <td class="entry_description"> 2369 <p>Which scene mode is active when 2370<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = SCENE_<wbr/>MODE</p> 2371 </td> 2372 2373 <td class="entry_units"> 2374 </td> 2375 2376 <td class="entry_range"> 2377 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p> 2378 </td> 2379 2380 <td class="entry_tags"> 2381 <ul class="entry_tags"> 2382 <li><a href="#tag_BC">BC</a></li> 2383 </ul> 2384 </td> 2385 2386 </tr> 2387 2388 2389 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2390 <!-- end of entry --> 2391 2392 2393 <tr class="entry" id="controls_android.control.videoStabilizationMode"> 2394 <td class="entry_name" rowspan="3"> 2395 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode 2396 </td> 2397 <td class="entry_type"> 2398 <span class="entry_type_name entry_type_name_enum">byte</span> 2399 2400 <span class="entry_type_visibility"> [public as boolean]</span> 2401 2402 <ul class="entry_type_enum"> 2403 <li> 2404 <span class="entry_type_enum_name">OFF</span> 2405 </li> 2406 <li> 2407 <span class="entry_type_enum_name">ON</span> 2408 </li> 2409 </ul> 2410 2411 </td> <!-- entry_type --> 2412 2413 <td class="entry_description"> 2414 <p>Whether video stabilization is 2415active</p> 2416 </td> 2417 2418 <td class="entry_units"> 2419 </td> 2420 2421 <td class="entry_range"> 2422 </td> 2423 2424 <td class="entry_tags"> 2425 <ul class="entry_tags"> 2426 <li><a href="#tag_BC">BC</a></li> 2427 </ul> 2428 </td> 2429 2430 </tr> 2431 <tr class="entries_header"> 2432 <th class="th_details" colspan="5">Details</th> 2433 </tr> 2434 <tr class="entry_cont"> 2435 <td class="entry_details" colspan="5"> 2436 <p>If enabled,<wbr/> video stabilization can modify the 2437<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream 2438stabilized</p> 2439 </td> 2440 </tr> 2441 2442 2443 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2444 <!-- end of entry --> 2445 2446 2447 2448 <!-- end of kind --> 2449 </tbody> 2450 <tr><td colspan="6" class="kind">static</td></tr> 2451 2452 <thead class="entries_header"> 2453 <tr> 2454 <th class="th_name">Property Name</th> 2455 <th class="th_type">Type</th> 2456 <th class="th_description">Description</th> 2457 <th class="th_units">Units</th> 2458 <th class="th_range">Range</th> 2459 <th class="th_tags">Tags</th> 2460 </tr> 2461 </thead> 2462 2463 <tbody> 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes"> 2475 <td class="entry_name" rowspan="3"> 2476 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes 2477 </td> 2478 <td class="entry_type"> 2479 <span class="entry_type_name">byte</span> 2480 <span class="entry_type_container">x</span> 2481 2482 <span class="entry_type_array"> 2483 n 2484 </span> 2485 <span class="entry_type_visibility"> [public]</span> 2486 <div class="entry_type_notes">list of enums</div> 2487 2488 2489 </td> <!-- entry_type --> 2490 2491 <td class="entry_description"> 2492 <p>The set of auto-exposure antibanding modes that are 2493supported by this camera device.<wbr/></p> 2494 </td> 2495 2496 <td class="entry_units"> 2497 </td> 2498 2499 <td class="entry_range"> 2500 </td> 2501 2502 <td class="entry_tags"> 2503 </td> 2504 2505 </tr> 2506 <tr class="entries_header"> 2507 <th class="th_details" colspan="5">Details</th> 2508 </tr> 2509 <tr class="entry_cont"> 2510 <td class="entry_details" colspan="5"> 2511 <p>Not all of the auto-exposure anti-banding modes may be 2512supported by a given camera device.<wbr/> This field lists the 2513valid anti-banding modes that the application may request 2514for this camera device; they must include AUTO.<wbr/></p> 2515 </td> 2516 </tr> 2517 2518 2519 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2520 <!-- end of entry --> 2521 2522 2523 <tr class="entry" id="static_android.control.aeAvailableModes"> 2524 <td class="entry_name" rowspan="3"> 2525 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes 2526 </td> 2527 <td class="entry_type"> 2528 <span class="entry_type_name">byte</span> 2529 <span class="entry_type_container">x</span> 2530 2531 <span class="entry_type_array"> 2532 n 2533 </span> 2534 <span class="entry_type_visibility"> [public]</span> 2535 <div class="entry_type_notes">list of enums</div> 2536 2537 2538 </td> <!-- entry_type --> 2539 2540 <td class="entry_description"> 2541 <p>The set of auto-exposure modes that are supported by this 2542camera device.<wbr/></p> 2543 </td> 2544 2545 <td class="entry_units"> 2546 </td> 2547 2548 <td class="entry_range"> 2549 </td> 2550 2551 <td class="entry_tags"> 2552 <ul class="entry_tags"> 2553 <li><a href="#tag_BC">BC</a></li> 2554 </ul> 2555 </td> 2556 2557 </tr> 2558 <tr class="entries_header"> 2559 <th class="th_details" colspan="5">Details</th> 2560 </tr> 2561 <tr class="entry_cont"> 2562 <td class="entry_details" colspan="5"> 2563 <p>Not all the auto-exposure modes may be supported by a 2564given camera device,<wbr/> especially if no flash unit is 2565available.<wbr/> This entry lists the valid modes for 2566<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p> 2567<p>All camera devices support ON,<wbr/> and all camera devices with 2568flash units support ON_<wbr/>AUTO_<wbr/>FLASH and 2569ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p> 2570<p>Full-capability camera devices always support OFF mode,<wbr/> 2571which enables application control of camera exposure time,<wbr/> 2572sensitivity,<wbr/> and frame duration.<wbr/></p> 2573 </td> 2574 </tr> 2575 2576 2577 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2578 <!-- end of entry --> 2579 2580 2581 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges"> 2582 <td class="entry_name" rowspan="1"> 2583 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges 2584 </td> 2585 <td class="entry_type"> 2586 <span class="entry_type_name">int32</span> 2587 <span class="entry_type_container">x</span> 2588 2589 <span class="entry_type_array"> 2590 2 x n 2591 </span> 2592 <span class="entry_type_visibility"> [public]</span> 2593 <div class="entry_type_notes">list of pairs of frame rates</div> 2594 2595 2596 </td> <!-- entry_type --> 2597 2598 <td class="entry_description"> 2599 <p>List of frame rate ranges supported by the 2600AE algorithm/<wbr/>hardware</p> 2601 </td> 2602 2603 <td class="entry_units"> 2604 </td> 2605 2606 <td class="entry_range"> 2607 </td> 2608 2609 <td class="entry_tags"> 2610 </td> 2611 2612 </tr> 2613 2614 2615 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2616 <!-- end of entry --> 2617 2618 2619 <tr class="entry" id="static_android.control.aeCompensationRange"> 2620 <td class="entry_name" rowspan="1"> 2621 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range 2622 </td> 2623 <td class="entry_type"> 2624 <span class="entry_type_name">int32</span> 2625 <span class="entry_type_container">x</span> 2626 2627 <span class="entry_type_array"> 2628 2 2629 </span> 2630 <span class="entry_type_visibility"> [public]</span> 2631 2632 2633 </td> <!-- entry_type --> 2634 2635 <td class="entry_description"> 2636 <p>Maximum and minimum exposure compensation 2637setting,<wbr/> in counts of 2638android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p> 2639 </td> 2640 2641 <td class="entry_units"> 2642 </td> 2643 2644 <td class="entry_range"> 2645 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step 2646size)</p> 2647 </td> 2648 2649 <td class="entry_tags"> 2650 <ul class="entry_tags"> 2651 <li><a href="#tag_BC">BC</a></li> 2652 </ul> 2653 </td> 2654 2655 </tr> 2656 2657 2658 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2659 <!-- end of entry --> 2660 2661 2662 <tr class="entry" id="static_android.control.aeCompensationStep"> 2663 <td class="entry_name" rowspan="1"> 2664 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step 2665 </td> 2666 <td class="entry_type"> 2667 <span class="entry_type_name">rational</span> 2668 2669 <span class="entry_type_visibility"> [public]</span> 2670 2671 2672 </td> <!-- entry_type --> 2673 2674 <td class="entry_description"> 2675 <p>Smallest step by which exposure compensation 2676can be changed</p> 2677 </td> 2678 2679 <td class="entry_units"> 2680 </td> 2681 2682 <td class="entry_range"> 2683 <p><= 1/<wbr/>2</p> 2684 </td> 2685 2686 <td class="entry_tags"> 2687 <ul class="entry_tags"> 2688 <li><a href="#tag_BC">BC</a></li> 2689 </ul> 2690 </td> 2691 2692 </tr> 2693 2694 2695 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2696 <!-- end of entry --> 2697 2698 2699 <tr class="entry" id="static_android.control.afAvailableModes"> 2700 <td class="entry_name" rowspan="3"> 2701 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes 2702 </td> 2703 <td class="entry_type"> 2704 <span class="entry_type_name">byte</span> 2705 <span class="entry_type_container">x</span> 2706 2707 <span class="entry_type_array"> 2708 n 2709 </span> 2710 <span class="entry_type_visibility"> [public]</span> 2711 <div class="entry_type_notes">List of enums</div> 2712 2713 2714 </td> <!-- entry_type --> 2715 2716 <td class="entry_description"> 2717 <p>List of AF modes that can be 2718selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p> 2719 </td> 2720 2721 <td class="entry_units"> 2722 </td> 2723 2724 <td class="entry_range"> 2725 </td> 2726 2727 <td class="entry_tags"> 2728 <ul class="entry_tags"> 2729 <li><a href="#tag_BC">BC</a></li> 2730 </ul> 2731 </td> 2732 2733 </tr> 2734 <tr class="entries_header"> 2735 <th class="th_details" colspan="5">Details</th> 2736 </tr> 2737 <tr class="entry_cont"> 2738 <td class="entry_details" colspan="5"> 2739 <p>Not all the auto-focus modes may be supported by a 2740given camera device.<wbr/> This entry lists the valid modes for 2741<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p> 2742<p>All camera devices will support OFF mode,<wbr/> and all camera devices with 2743adjustable focuser units (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> > 0</code>) 2744will support AUTO mode.<wbr/></p> 2745 </td> 2746 </tr> 2747 2748 2749 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2750 <!-- end of entry --> 2751 2752 2753 <tr class="entry" id="static_android.control.availableEffects"> 2754 <td class="entry_name" rowspan="1"> 2755 android.<wbr/>control.<wbr/>available<wbr/>Effects 2756 </td> 2757 <td class="entry_type"> 2758 <span class="entry_type_name">byte</span> 2759 <span class="entry_type_container">x</span> 2760 2761 <span class="entry_type_array"> 2762 n 2763 </span> 2764 <span class="entry_type_visibility"> [public]</span> 2765 <div class="entry_type_notes">list of enums</div> 2766 2767 2768 </td> <!-- entry_type --> 2769 2770 <td class="entry_description"> 2771 <p>what subset of the full color effect enum 2772list is supported</p> 2773 </td> 2774 2775 <td class="entry_units"> 2776 </td> 2777 2778 <td class="entry_range"> 2779 <p>OFF must be listed</p> 2780 </td> 2781 2782 <td class="entry_tags"> 2783 <ul class="entry_tags"> 2784 <li><a href="#tag_BC">BC</a></li> 2785 </ul> 2786 </td> 2787 2788 </tr> 2789 2790 2791 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2792 <!-- end of entry --> 2793 2794 2795 <tr class="entry" id="static_android.control.availableSceneModes"> 2796 <td class="entry_name" rowspan="1"> 2797 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes 2798 </td> 2799 <td class="entry_type"> 2800 <span class="entry_type_name">byte</span> 2801 <span class="entry_type_container">x</span> 2802 2803 <span class="entry_type_array"> 2804 n 2805 </span> 2806 <span class="entry_type_visibility"> [public]</span> 2807 <div class="entry_type_notes">list of enums from android.<wbr/>control.<wbr/>scene<wbr/>Mode,<wbr/> plus UNSUPPORTED to indicate no scene modes are supported</div> 2808 2809 2810 </td> <!-- entry_type --> 2811 2812 <td class="entry_description"> 2813 <p>what subset of the scene mode enum list is 2814supported.<wbr/></p> 2815 </td> 2816 2817 <td class="entry_units"> 2818 </td> 2819 2820 <td class="entry_range"> 2821 <p>SCENE_<wbr/>MODE_<wbr/>FACE_<wbr/>PRIORITY must be supported if face 2822detection is supported</p> 2823 </td> 2824 2825 <td class="entry_tags"> 2826 <ul class="entry_tags"> 2827 <li><a href="#tag_BC">BC</a></li> 2828 </ul> 2829 </td> 2830 2831 </tr> 2832 2833 2834 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2835 <!-- end of entry --> 2836 2837 2838 <tr class="entry" id="static_android.control.availableVideoStabilizationModes"> 2839 <td class="entry_name" rowspan="1"> 2840 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes 2841 </td> 2842 <td class="entry_type"> 2843 <span class="entry_type_name">byte</span> 2844 <span class="entry_type_container">x</span> 2845 2846 <span class="entry_type_array"> 2847 n 2848 </span> 2849 <span class="entry_type_visibility"> [public]</span> 2850 <div class="entry_type_notes">List of enums.<wbr/></div> 2851 2852 2853 </td> <!-- entry_type --> 2854 2855 <td class="entry_description"> 2856 <p>List of video stabilization modes that can 2857be supported</p> 2858 </td> 2859 2860 <td class="entry_units"> 2861 </td> 2862 2863 <td class="entry_range"> 2864 <p>OFF must be included</p> 2865 </td> 2866 2867 <td class="entry_tags"> 2868 <ul class="entry_tags"> 2869 <li><a href="#tag_BC">BC</a></li> 2870 </ul> 2871 </td> 2872 2873 </tr> 2874 2875 2876 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2877 <!-- end of entry --> 2878 2879 2880 <tr class="entry" id="static_android.control.awbAvailableModes"> 2881 <td class="entry_name" rowspan="3"> 2882 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes 2883 </td> 2884 <td class="entry_type"> 2885 <span class="entry_type_name">byte</span> 2886 <span class="entry_type_container">x</span> 2887 2888 <span class="entry_type_array"> 2889 n 2890 </span> 2891 <span class="entry_type_visibility"> [public]</span> 2892 <div class="entry_type_notes">List of enums</div> 2893 2894 2895 </td> <!-- entry_type --> 2896 2897 <td class="entry_description"> 2898 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) 2899that are supported by this camera device.<wbr/></p> 2900 </td> 2901 2902 <td class="entry_units"> 2903 </td> 2904 2905 <td class="entry_range"> 2906 </td> 2907 2908 <td class="entry_tags"> 2909 <ul class="entry_tags"> 2910 <li><a href="#tag_BC">BC</a></li> 2911 </ul> 2912 </td> 2913 2914 </tr> 2915 <tr class="entries_header"> 2916 <th class="th_details" colspan="5">Details</th> 2917 </tr> 2918 <tr class="entry_cont"> 2919 <td class="entry_details" colspan="5"> 2920 <p>Not all the auto-white-balance modes may be supported by a 2921given camera device.<wbr/> This entry lists the valid modes for 2922<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p> 2923<p>All camera devices will support ON mode.<wbr/></p> 2924<p>Full-capability camera devices will always support OFF mode,<wbr/> 2925which enables application control of white balance,<wbr/> by using 2926<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/></p> 2927 </td> 2928 </tr> 2929 2930 2931 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2932 <!-- end of entry --> 2933 2934 2935 <tr class="entry" id="static_android.control.maxRegions"> 2936 <td class="entry_name" rowspan="1"> 2937 android.<wbr/>control.<wbr/>max<wbr/>Regions 2938 </td> 2939 <td class="entry_type"> 2940 <span class="entry_type_name">int32</span> 2941 2942 <span class="entry_type_visibility"> [public]</span> 2943 2944 2945 </td> <!-- entry_type --> 2946 2947 <td class="entry_description"> 2948 <p>For AE,<wbr/> AWB,<wbr/> and AF,<wbr/> how many individual 2949regions can be listed for metering?</p> 2950 </td> 2951 2952 <td class="entry_units"> 2953 </td> 2954 2955 <td class="entry_range"> 2956 <p>>= 1</p> 2957 </td> 2958 2959 <td class="entry_tags"> 2960 <ul class="entry_tags"> 2961 <li><a href="#tag_BC">BC</a></li> 2962 </ul> 2963 </td> 2964 2965 </tr> 2966 2967 2968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 2969 <!-- end of entry --> 2970 2971 2972 <tr class="entry" id="static_android.control.sceneModeOverrides"> 2973 <td class="entry_name" rowspan="3"> 2974 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides 2975 </td> 2976 <td class="entry_type"> 2977 <span class="entry_type_name">byte</span> 2978 <span class="entry_type_container">x</span> 2979 2980 <span class="entry_type_array"> 2981 3 x length(availableSceneModes) 2982 </span> 2983 <span class="entry_type_visibility"> [system]</span> 2984 2985 2986 </td> <!-- entry_type --> 2987 2988 <td class="entry_description"> 2989 <p>List of AE,<wbr/> AWB,<wbr/> and AF modes to use for 2990each available scene mode</p> 2991 </td> 2992 2993 <td class="entry_units"> 2994 </td> 2995 2996 <td class="entry_range"> 2997 <p>For each listed scene mode,<wbr/> lists the aeMode,<wbr/> 2998awbMode,<wbr/> and afMode that the HAL wants to use for that 2999scene mode.<wbr/></p> 3000<p>For each entry,<wbr/> the order is {aeMode,<wbr/> awbMode,<wbr/> afMode} in 3001order of increasing index</p> 3002 </td> 3003 3004 <td class="entry_tags"> 3005 <ul class="entry_tags"> 3006 <li><a href="#tag_BC">BC</a></li> 3007 </ul> 3008 </td> 3009 3010 </tr> 3011 <tr class="entries_header"> 3012 <th class="th_details" colspan="5">Details</th> 3013 </tr> 3014 <tr class="entry_cont"> 3015 <td class="entry_details" colspan="5"> 3016 <p>When a scene mode is enabled,<wbr/> the HAL is expected 3017to override aeMode,<wbr/> awbMode,<wbr/> and afMode with its 3018preferred settings for that scene mode.<wbr/></p> 3019<p>To simplify communication with old camera API applications,<wbr/> 3020the service wants this override list in the static metadata.<wbr/> 3021The order of this list matches that of availableSceneModes,<wbr/> 3022with 3 entires for each scene mode.<wbr/> The overrides listed 3023for SCENE_<wbr/>MODE_<wbr/>FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that 3024mode,<wbr/> the application-set aeMode,<wbr/> awbMode,<wbr/> and afMode are 3025used instead,<wbr/> like they are when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is 3026AUTO.<wbr/></p> 3027<p>It is recommended that for FACE_<wbr/>PRIORITY,<wbr/> the overrides 3028should be set to 0.<wbr/> As an example,<wbr/> if availableSceneModes is 3029{ FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT },<wbr/> then the service expects 3030this field to have 9 entries; for example { 0 ,<wbr/> 0,<wbr/> 0,<wbr/> 3031ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> 3032INCANDESCENT,<wbr/> AUTO }</p> 3033 </td> 3034 </tr> 3035 3036 3037 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 3038 <!-- end of entry --> 3039 3040 3041 3042 <!-- end of kind --> 3043 </tbody> 3044 <tr><td colspan="6" class="kind">dynamic</td></tr> 3045 3046 <thead class="entries_header"> 3047 <tr> 3048 <th class="th_name">Property Name</th> 3049 <th class="th_type">Type</th> 3050 <th class="th_description">Description</th> 3051 <th class="th_units">Units</th> 3052 <th class="th_range">Range</th> 3053 <th class="th_tags">Tags</th> 3054 </tr> 3055 </thead> 3056 3057 <tbody> 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 <tr class="entry" id="dynamic_android.control.aePrecaptureId"> 3069 <td class="entry_name" rowspan="3"> 3070 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id 3071 </td> 3072 <td class="entry_type"> 3073 <span class="entry_type_name">int32</span> 3074 3075 <span class="entry_type_visibility"> [hidden]</span> 3076 3077 3078 </td> <!-- entry_type --> 3079 3080 <td class="entry_description"> 3081 <p>The ID sent with the latest 3082CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p> 3083 </td> 3084 3085 <td class="entry_units"> 3086 </td> 3087 3088 <td class="entry_range"> 3089 </td> 3090 3091 <td class="entry_tags"> 3092 </td> 3093 3094 </tr> 3095 <tr class="entries_header"> 3096 <th class="th_details" colspan="5">Details</th> 3097 </tr> 3098 <tr class="entry_cont"> 3099 <td class="entry_details" colspan="5"> 3100 <p>Must be 0 if no 3101CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet 3102by HAL.<wbr/> Always updated even if AE algorithm ignores the 3103trigger</p> 3104 </td> 3105 </tr> 3106 3107 3108 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 3109 <!-- end of entry --> 3110 3111 3112 <tr class="entry" id="dynamic_android.control.aeMode"> 3113 <td class="entry_name" rowspan="3"> 3114 android.<wbr/>control.<wbr/>ae<wbr/>Mode 3115 </td> 3116 <td class="entry_type"> 3117 <span class="entry_type_name entry_type_name_enum">byte</span> 3118 3119 <span class="entry_type_visibility"> [public]</span> 3120 3121 <ul class="entry_type_enum"> 3122 <li> 3123 <span class="entry_type_enum_name">OFF</span> 3124 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled; 3125the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> 3126<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and 3127<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera 3128device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's 3129a flash unit for this camera device.<wbr/></p></span> 3130 </li> 3131 <li> 3132 <span class="entry_type_enum_name">ON</span> 3133 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/> 3134with no flash control.<wbr/> The application's values for 3135<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> 3136<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and 3137<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The 3138application has control over the various 3139android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span> 3140 </li> 3141 <li> 3142 <span class="entry_type_enum_name">ON_AUTO_FLASH</span> 3143 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls 3144the camera's flash unit,<wbr/> firing it in low-light 3145conditions.<wbr/> The flash may be fired during a 3146precapture sequence (triggered by 3147<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired 3148for captures for which the 3149<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to 3150STILL_<wbr/>CAPTURE</p></span> 3151 </li> 3152 <li> 3153 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span> 3154 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls 3155the camera's flash unit,<wbr/> always firing it for still 3156captures.<wbr/> The flash may be fired during a precapture 3157sequence (triggered by 3158<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always 3159be fired for captures for which the 3160<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to 3161STILL_<wbr/>CAPTURE</p></span> 3162 </li> 3163 <li> 3164 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span> 3165 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye 3166reduction.<wbr/> If deemed necessary by the camera device,<wbr/> 3167a red eye reduction flash will fire during the 3168precapture sequence.<wbr/></p></span> 3169 </li> 3170 </ul> 3171 3172 </td> <!-- entry_type --> 3173 3174 <td class="entry_description"> 3175 <p>The desired mode for the camera device's 3176auto-exposure routine.<wbr/></p> 3177 </td> 3178 3179 <td class="entry_units"> 3180 </td> 3181 3182 <td class="entry_range"> 3183 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p> 3184 </td> 3185 3186 <td class="entry_tags"> 3187 <ul class="entry_tags"> 3188 <li><a href="#tag_BC">BC</a></li> 3189 </ul> 3190 </td> 3191 3192 </tr> 3193 <tr class="entries_header"> 3194 <th class="th_details" colspan="5">Details</th> 3195 </tr> 3196 <tr class="entry_cont"> 3197 <td class="entry_details" colspan="5"> 3198 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is 3199AUTO.<wbr/></p> 3200<p>When set to any of the ON modes,<wbr/> the camera device's 3201auto-exposure routine is enabled,<wbr/> overriding the 3202application's selected exposure time,<wbr/> sensor sensitivity,<wbr/> 3203and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> 3204<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and 3205<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes 3206is selected,<wbr/> the camera device's flash unit controls are 3207also overridden.<wbr/></p> 3208<p>The FLASH modes are only available if the camera device 3209has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p> 3210<p>If flash TORCH mode is desired,<wbr/> this field must be set to 3211ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p> 3212<p>When set to any of the ON modes,<wbr/> the values chosen by the 3213camera device auto-exposure routine for the overridden 3214fields for a given capture will be available in its 3215CaptureResult.<wbr/></p> 3216 </td> 3217 </tr> 3218 3219 3220 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 3221 <!-- end of entry --> 3222 3223 3224 <tr class="entry" id="dynamic_android.control.aeRegions"> 3225 <td class="entry_name" rowspan="3"> 3226 android.<wbr/>control.<wbr/>ae<wbr/>Regions 3227 </td> 3228 <td class="entry_type"> 3229 <span class="entry_type_name">int32</span> 3230 <span class="entry_type_container">x</span> 3231 3232 <span class="entry_type_array"> 3233 5 x area_count 3234 </span> 3235 <span class="entry_type_visibility"> [public]</span> 3236 3237 3238 </td> <!-- entry_type --> 3239 3240 <td class="entry_description"> 3241 <p>List of areas to use for 3242metering</p> 3243 </td> 3244 3245 <td class="entry_units"> 3246 </td> 3247 3248 <td class="entry_range"> 3249 </td> 3250 3251 <td class="entry_tags"> 3252 <ul class="entry_tags"> 3253 <li><a href="#tag_BC">BC</a></li> 3254 </ul> 3255 </td> 3256 3257 </tr> 3258 <tr class="entries_header"> 3259 <th class="th_details" colspan="5">Details</th> 3260 </tr> 3261 <tr class="entry_cont"> 3262 <td class="entry_details" colspan="5"> 3263 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/> 3264xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the 3265specified coordinates.<wbr/></p> 3266<p>The coordinate system is based on the active pixel array,<wbr/> 3267with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and 3268(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/> 3269<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the 3270bottom-right pixel in the active pixel array.<wbr/> The weight 3271should be nonnegative.<wbr/></p> 3272<p>If all regions have 0 weight,<wbr/> then no specific metering area 3273needs to be used by the HAL.<wbr/> If the metering region is 3274outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL 3275should ignore the sections outside the region and output the 3276used sections in the frame metadata</p> 3277 </td> 3278 </tr> 3279 3280 3281 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 3282 <!-- end of entry --> 3283 3284 3285 <tr class="entry" id="dynamic_android.control.aeState"> 3286 <td class="entry_name" rowspan="3"> 3287 android.<wbr/>control.<wbr/>ae<wbr/>State 3288 </td> 3289 <td class="entry_type"> 3290 <span class="entry_type_name entry_type_name_enum">byte</span> 3291 3292 <span class="entry_type_visibility"> [public]</span> 3293 3294 <ul class="entry_type_enum"> 3295 <li> 3296 <span class="entry_type_enum_name">INACTIVE</span> 3297 <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/> When a camera device is opened,<wbr/> it starts in 3298this state.<wbr/></p></span> 3299 </li> 3300 <li> 3301 <span class="entry_type_enum_name">SEARCHING</span> 3302 <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values 3303for the current scene.<wbr/></p></span> 3304 </li> 3305 <li> 3306 <span class="entry_type_enum_name">CONVERGED</span> 3307 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the 3308current scene.<wbr/></p></span> 3309 </li> 3310 <li> 3311 <span class="entry_type_enum_name">LOCKED</span> 3312 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span> 3313 </li> 3314 <li> 3315 <span class="entry_type_enum_name">FLASH_REQUIRED</span> 3316 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash 3317needs to be fired for good quality still 3318capture.<wbr/></p></span> 3319 </li> 3320 <li> 3321 <span class="entry_type_enum_name">PRECAPTURE</span> 3322 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence 3323(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/> 3324and is currently executing it.<wbr/> Once PRECAPTURE 3325completes,<wbr/> AE will transition to CONVERGED or 3326FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span> 3327 </li> 3328 </ul> 3329 3330 </td> <!-- entry_type --> 3331 3332 <td class="entry_description"> 3333 <p>Current state of AE algorithm</p> 3334 </td> 3335 3336 <td class="entry_units"> 3337 </td> 3338 3339 <td class="entry_range"> 3340 </td> 3341 3342 <td class="entry_tags"> 3343 </td> 3344 3345 </tr> 3346 <tr class="entries_header"> 3347 <th class="th_details" colspan="5">Details</th> 3348 </tr> 3349 <tr class="entry_cont"> 3350 <td class="entry_details" colspan="5"> 3351 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always 3352resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/> 3353or <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 3354the algorithm states to INACTIVE.<wbr/></p> 3355<p>The camera device can do several state transitions between two results,<wbr/> if it is 3356allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be 3357seen in a result.<wbr/></p> 3358<p>The state in the result is the state for this image (in sync with this image): if 3359AE state becomes CONVERGED,<wbr/> then the image data associated with this result should 3360be good to use.<wbr/></p> 3361<p>Below are state transition tables for different AE modes.<wbr/></p> 3362<table> 3363<thead> 3364<tr> 3365<th align="center">State</th> 3366<th align="center">Transition Cause</th> 3367<th align="center">New State</th> 3368<th align="center">Notes</th> 3369</tr> 3370</thead> 3371<tbody> 3372<tr> 3373<td align="center">INACTIVE</td> 3374<td align="center"></td> 3375<td align="center">INACTIVE</td> 3376<td align="center">Camera device auto exposure algorithm is disabled</td> 3377</tr> 3378</tbody> 3379</table> 3380<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p> 3381<table> 3382<thead> 3383<tr> 3384<th align="center">State</th> 3385<th align="center">Transition Cause</th> 3386<th align="center">New State</th> 3387<th align="center">Notes</th> 3388</tr> 3389</thead> 3390<tbody> 3391<tr> 3392<td align="center">INACTIVE</td> 3393<td align="center">Camera device initiates AE scan</td> 3394<td align="center">SEARCHING</td> 3395<td align="center">Values changing</td> 3396</tr> 3397<tr> 3398<td align="center">INACTIVE</td> 3399<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td> 3400<td align="center">LOCKED</td> 3401<td align="center">Values locked</td> 3402</tr> 3403<tr> 3404<td align="center">SEARCHING</td> 3405<td align="center">Camera device finishes AE scan</td> 3406<td align="center">CONVERGED</td> 3407<td align="center">Good values,<wbr/> not changing</td> 3408</tr> 3409<tr> 3410<td align="center">SEARCHING</td> 3411<td align="center">Camera device finishes AE scan</td> 3412<td align="center">FLASH_<wbr/>REQUIRED</td> 3413<td align="center">Converged but too dark w/<wbr/>o flash</td> 3414</tr> 3415<tr> 3416<td align="center">SEARCHING</td> 3417<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td> 3418<td align="center">LOCKED</td> 3419<td align="center">Values locked</td> 3420</tr> 3421<tr> 3422<td align="center">CONVERGED</td> 3423<td align="center">Camera device initiates AE scan</td> 3424<td align="center">SEARCHING</td> 3425<td align="center">Values changing</td> 3426</tr> 3427<tr> 3428<td align="center">CONVERGED</td> 3429<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td> 3430<td align="center">LOCKED</td> 3431<td align="center">Values locked</td> 3432</tr> 3433<tr> 3434<td align="center">FLASH_<wbr/>REQUIRED</td> 3435<td align="center">Camera device initiates AE scan</td> 3436<td align="center">SEARCHING</td> 3437<td align="center">Values changing</td> 3438</tr> 3439<tr> 3440<td align="center">FLASH_<wbr/>REQUIRED</td> 3441<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td> 3442<td align="center">LOCKED</td> 3443<td align="center">Values locked</td> 3444</tr> 3445<tr> 3446<td align="center">LOCKED</td> 3447<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td> 3448<td align="center">SEARCHING</td> 3449<td align="center">Values not good after unlock</td> 3450</tr> 3451<tr> 3452<td align="center">LOCKED</td> 3453<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td> 3454<td align="center">CONVERGED</td> 3455<td align="center">Values good after unlock</td> 3456</tr> 3457<tr> 3458<td align="center">LOCKED</td> 3459<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td> 3460<td align="center">FLASH_<wbr/>REQUIRED</td> 3461<td align="center">Exposure good,<wbr/> but too dark</td> 3462</tr> 3463<tr> 3464<td align="center">PRECAPTURE</td> 3465<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td> 3466<td align="center">CONVERGED</td> 3467<td align="center">Ready for high-quality capture</td> 3468</tr> 3469<tr> 3470<td align="center">PRECAPTURE</td> 3471<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td> 3472<td align="center">LOCKED</td> 3473<td align="center">Ready for high-quality capture</td> 3474</tr> 3475<tr> 3476<td align="center">Any state</td> 3477<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td> 3478<td align="center">PRECAPTURE</td> 3479<td align="center">Start AE precapture metering sequence</td> 3480</tr> 3481</tbody> 3482</table> 3483 </td> 3484 </tr> 3485 3486 3487 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 3488 <!-- end of entry --> 3489 3490 3491 <tr class="entry" id="dynamic_android.control.afMode"> 3492 <td class="entry_name" rowspan="3"> 3493 android.<wbr/>control.<wbr/>af<wbr/>Mode 3494 </td> 3495 <td class="entry_type"> 3496 <span class="entry_type_name entry_type_name_enum">byte</span> 3497 3498 <span class="entry_type_visibility"> [public]</span> 3499 3500 <ul class="entry_type_enum"> 3501 <li> 3502 <span class="entry_type_enum_name">OFF</span> 3503 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens; 3504<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the 3505application</p></span> 3506 </li> 3507 <li> 3508 <span class="entry_type_enum_name">AUTO</span> 3509 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p> 3510<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 3511is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless 3512the autofocus trigger action is called.<wbr/> When that trigger 3513is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to 3514the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p> 3515<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/> 3516and sets the AF state to INACTIVE.<wbr/></p></span> 3517 </li> 3518 <li> 3519 <span class="entry_type_enum_name">MACRO</span> 3520 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the 3521autofocus trigger action is called.<wbr/></p> 3522<p>When that trigger is activated,<wbr/> AF must transition to 3523ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or 3524NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens 3525position to default,<wbr/> and sets the AF state to 3526INACTIVE.<wbr/></p></span> 3527 </li> 3528 <li> 3529 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span> 3530 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens 3531position continually to attempt to provide a 3532constantly-in-focus image stream.<wbr/></p> 3533<p>The focusing behavior should be suitable for good quality 3534video recording; typically this means slower focus 3535movement and no overshoots.<wbr/> When the AF trigger is not 3536involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/> 3537and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED 3538states as appropriate.<wbr/> When the AF trigger is activated,<wbr/> 3539the algorithm should immediately transition into 3540AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the 3541lens position until a cancel AF trigger is received.<wbr/></p> 3542<p>Once cancel is received,<wbr/> the algorithm should transition 3543back to INACTIVE and resume passive scan.<wbr/> Note that this 3544behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an 3545ongoing PASSIVE_<wbr/>SCAN must immediately be 3546canceled.<wbr/></p></span> 3547 </li> 3548 <li> 3549 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span> 3550 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens 3551position continually to attempt to provide a 3552constantly-in-focus image stream.<wbr/></p> 3553<p>The focusing behavior should be suitable for still image 3554capture; typically this means focusing as fast as 3555possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF 3556algorithm should start in INACTIVE state,<wbr/> and then 3557transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as 3558appropriate as it attempts to maintain focus.<wbr/> When the AF 3559trigger is activated,<wbr/> the algorithm should finish its 3560PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into 3561AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the 3562lens position until a cancel AF trigger is received.<wbr/></p> 3563<p>When the AF cancel trigger is activated,<wbr/> the algorithm 3564should transition back to INACTIVE and then act as if it 3565has just been started.<wbr/></p></span> 3566 </li> 3567 <li> 3568 <span class="entry_type_enum_name">EDOF</span> 3569 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF 3570trigger is ignored,<wbr/> AF state should always be 3571INACTIVE.<wbr/></p></span> 3572 </li> 3573 </ul> 3574 3575 </td> <!-- entry_type --> 3576 3577 <td class="entry_description"> 3578 <p>Whether AF is currently enabled,<wbr/> and what 3579mode it is set to</p> 3580 </td> 3581 3582 <td class="entry_units"> 3583 </td> 3584 3585 <td class="entry_range"> 3586 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p> 3587 </td> 3588 3589 <td class="entry_tags"> 3590 <ul class="entry_tags"> 3591 <li><a href="#tag_BC">BC</a></li> 3592 </ul> 3593 </td> 3594 3595 </tr> 3596 <tr class="entries_header"> 3597 <th class="th_details" colspan="5">Details</th> 3598 </tr> 3599 <tr class="entry_cont"> 3600 <td class="entry_details" colspan="5"> 3601 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p> 3602<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/> 3603the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State 3604in result metadata.<wbr/></p> 3605 </td> 3606 </tr> 3607 3608 3609 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 3610 <!-- end of entry --> 3611 3612 3613 <tr class="entry" id="dynamic_android.control.afRegions"> 3614 <td class="entry_name" rowspan="3"> 3615 android.<wbr/>control.<wbr/>af<wbr/>Regions 3616 </td> 3617 <td class="entry_type"> 3618 <span class="entry_type_name">int32</span> 3619 <span class="entry_type_container">x</span> 3620 3621 <span class="entry_type_array"> 3622 5 x area_count 3623 </span> 3624 <span class="entry_type_visibility"> [public]</span> 3625 3626 3627 </td> <!-- entry_type --> 3628 3629 <td class="entry_description"> 3630 <p>List of areas to use for focus 3631estimation</p> 3632 </td> 3633 3634 <td class="entry_units"> 3635 </td> 3636 3637 <td class="entry_range"> 3638 </td> 3639 3640 <td class="entry_tags"> 3641 <ul class="entry_tags"> 3642 <li><a href="#tag_BC">BC</a></li> 3643 </ul> 3644 </td> 3645 3646 </tr> 3647 <tr class="entries_header"> 3648 <th class="th_details" colspan="5">Details</th> 3649 </tr> 3650 <tr class="entry_cont"> 3651 <td class="entry_details" colspan="5"> 3652 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/> 3653xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the 3654specified coordinates.<wbr/></p> 3655<p>The coordinate system is based on the active pixel array,<wbr/> 3656with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and 3657(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/> 3658<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the 3659bottom-right pixel in the active pixel array.<wbr/> The weight 3660should be nonnegative.<wbr/></p> 3661<p>If all regions have 0 weight,<wbr/> then no specific focus area 3662needs to be used by the HAL.<wbr/> If the focusing region is 3663outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL 3664should ignore the sections outside the region and output the 3665used sections in the frame metadata</p> 3666 </td> 3667 </tr> 3668 3669 3670 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 3671 <!-- end of entry --> 3672 3673 3674 <tr class="entry" id="dynamic_android.control.afState"> 3675 <td class="entry_name" rowspan="3"> 3676 android.<wbr/>control.<wbr/>af<wbr/>State 3677 </td> 3678 <td class="entry_type"> 3679 <span class="entry_type_name entry_type_name_enum">byte</span> 3680 3681 <span class="entry_type_visibility"> [public]</span> 3682 3683 <ul class="entry_type_enum"> 3684 <li> 3685 <span class="entry_type_enum_name">INACTIVE</span> 3686 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked 3687to scan.<wbr/> When a camera device is opened,<wbr/> it starts in 3688this state.<wbr/></p></span> 3689 </li> 3690 <li> 3691 <span class="entry_type_enum_name">PASSIVE_SCAN</span> 3692 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is 3693currently doing an AF scan initiated by a continuous 3694autofocus mode</p></span> 3695 </li> 3696 <li> 3697 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span> 3698 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently 3699believes it is in focus,<wbr/> but may restart scanning at 3700any time.<wbr/></p></span> 3701 </li> 3702 <li> 3703 <span class="entry_type_enum_name">ACTIVE_SCAN</span> 3704 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing 3705an AF scan because it was triggered by AF 3706trigger</p></span> 3707 </li> 3708 <li> 3709 <span class="entry_type_enum_name">FOCUSED_LOCKED</span> 3710 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF 3711believes it is focused correctly and is 3712locked</p></span> 3713 </li> 3714 <li> 3715 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span> 3716 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has 3717failed to focus successfully and is 3718locked</p></span> 3719 </li> 3720 <li> 3721 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span> 3722 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a 3723passive scan without finding focus,<wbr/> and may restart 3724scanning at any time.<wbr/></p></span> 3725 </li> 3726 </ul> 3727 3728 </td> <!-- entry_type --> 3729 3730 <td class="entry_description"> 3731 <p>Current state of AF algorithm</p> 3732 </td> 3733 3734 <td class="entry_units"> 3735 </td> 3736 3737 <td class="entry_range"> 3738 </td> 3739 3740 <td class="entry_tags"> 3741 </td> 3742 3743 </tr> 3744 <tr class="entries_header"> 3745 <th class="th_details" colspan="5">Details</th> 3746 </tr> 3747 <tr class="entry_cont"> 3748 <td class="entry_details" colspan="5"> 3749 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always 3750resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/> 3751or <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 3752the algorithm states to INACTIVE.<wbr/></p> 3753<p>The camera device can do several state transitions between two results,<wbr/> if it is 3754allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be 3755seen in a result.<wbr/></p> 3756<p>The state in the result is the state for this image (in sync with this image): if 3757AF state becomes FOCUSED,<wbr/> then the image data associated with this result should 3758be sharp.<wbr/></p> 3759<p>Below are state transition tables for different AF modes.<wbr/></p> 3760<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> 3761<table> 3762<thead> 3763<tr> 3764<th align="center">State</th> 3765<th align="center">Transition Cause</th> 3766<th align="center">New State</th> 3767<th align="center">Notes</th> 3768</tr> 3769</thead> 3770<tbody> 3771<tr> 3772<td align="center">INACTIVE</td> 3773<td align="center"></td> 3774<td align="center">INACTIVE</td> 3775<td align="center">Never changes</td> 3776</tr> 3777</tbody> 3778</table> 3779<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> 3780<table> 3781<thead> 3782<tr> 3783<th align="center">State</th> 3784<th align="center">Transition Cause</th> 3785<th align="center">New State</th> 3786<th align="center">Notes</th> 3787</tr> 3788</thead> 3789<tbody> 3790<tr> 3791<td align="center">INACTIVE</td> 3792<td align="center">AF_<wbr/>TRIGGER</td> 3793<td align="center">ACTIVE_<wbr/>SCAN</td> 3794<td align="center">Start AF sweep,<wbr/> Lens now moving</td> 3795</tr> 3796<tr> 3797<td align="center">ACTIVE_<wbr/>SCAN</td> 3798<td align="center">AF sweep done</td> 3799<td align="center">FOCUSED_<wbr/>LOCKED</td> 3800<td align="center">Focused,<wbr/> Lens now locked</td> 3801</tr> 3802<tr> 3803<td align="center">ACTIVE_<wbr/>SCAN</td> 3804<td align="center">AF sweep done</td> 3805<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3806<td align="center">Not focused,<wbr/> Lens now locked</td> 3807</tr> 3808<tr> 3809<td align="center">ACTIVE_<wbr/>SCAN</td> 3810<td align="center">AF_<wbr/>CANCEL</td> 3811<td align="center">INACTIVE</td> 3812<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td> 3813</tr> 3814<tr> 3815<td align="center">FOCUSED_<wbr/>LOCKED</td> 3816<td align="center">AF_<wbr/>CANCEL</td> 3817<td align="center">INACTIVE</td> 3818<td align="center">Cancel/<wbr/>reset AF</td> 3819</tr> 3820<tr> 3821<td align="center">FOCUSED_<wbr/>LOCKED</td> 3822<td align="center">AF_<wbr/>TRIGGER</td> 3823<td align="center">ACTIVE_<wbr/>SCAN</td> 3824<td align="center">Start new sweep,<wbr/> Lens now moving</td> 3825</tr> 3826<tr> 3827<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3828<td align="center">AF_<wbr/>CANCEL</td> 3829<td align="center">INACTIVE</td> 3830<td align="center">Cancel/<wbr/>reset AF</td> 3831</tr> 3832<tr> 3833<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3834<td align="center">AF_<wbr/>TRIGGER</td> 3835<td align="center">ACTIVE_<wbr/>SCAN</td> 3836<td align="center">Start new sweep,<wbr/> Lens now moving</td> 3837</tr> 3838<tr> 3839<td align="center">Any state</td> 3840<td align="center">Mode change</td> 3841<td align="center">INACTIVE</td> 3842<td align="center"></td> 3843</tr> 3844</tbody> 3845</table> 3846<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> 3847<table> 3848<thead> 3849<tr> 3850<th align="center">State</th> 3851<th align="center">Transition Cause</th> 3852<th align="center">New State</th> 3853<th align="center">Notes</th> 3854</tr> 3855</thead> 3856<tbody> 3857<tr> 3858<td align="center">INACTIVE</td> 3859<td align="center">Camera device initiates new scan</td> 3860<td align="center">PASSIVE_<wbr/>SCAN</td> 3861<td align="center">Start AF scan,<wbr/> Lens now moving</td> 3862</tr> 3863<tr> 3864<td align="center">INACTIVE</td> 3865<td align="center">AF_<wbr/>TRIGGER</td> 3866<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3867<td align="center">AF state query,<wbr/> Lens now locked</td> 3868</tr> 3869<tr> 3870<td align="center">PASSIVE_<wbr/>SCAN</td> 3871<td align="center">Camera device completes current scan</td> 3872<td align="center">PASSIVE_<wbr/>FOCUSED</td> 3873<td align="center">End AF scan,<wbr/> Lens now locked</td> 3874</tr> 3875<tr> 3876<td align="center">PASSIVE_<wbr/>SCAN</td> 3877<td align="center">Camera device fails current scan</td> 3878<td align="center">PASSIVE_<wbr/>UNFOCUSED</td> 3879<td align="center">End AF scan,<wbr/> Lens now locked</td> 3880</tr> 3881<tr> 3882<td align="center">PASSIVE_<wbr/>SCAN</td> 3883<td align="center">AF_<wbr/>TRIGGER</td> 3884<td align="center">FOCUSED_<wbr/>LOCKED</td> 3885<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td> 3886</tr> 3887<tr> 3888<td align="center">PASSIVE_<wbr/>SCAN</td> 3889<td align="center">AF_<wbr/>TRIGGER</td> 3890<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3891<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td> 3892</tr> 3893<tr> 3894<td align="center">PASSIVE_<wbr/>SCAN</td> 3895<td align="center">AF_<wbr/>CANCEL</td> 3896<td align="center">INACTIVE</td> 3897<td align="center">Reset lens position,<wbr/> Lens now locked</td> 3898</tr> 3899<tr> 3900<td align="center">PASSIVE_<wbr/>FOCUSED</td> 3901<td align="center">Camera device initiates new scan</td> 3902<td align="center">PASSIVE_<wbr/>SCAN</td> 3903<td align="center">Start AF scan,<wbr/> Lens now moving</td> 3904</tr> 3905<tr> 3906<td align="center">PASSIVE_<wbr/>UNFOCUSED</td> 3907<td align="center">Camera device initiates new scan</td> 3908<td align="center">PASSIVE_<wbr/>SCAN</td> 3909<td align="center">Start AF scan,<wbr/> Lens now moving</td> 3910</tr> 3911<tr> 3912<td align="center">PASSIVE_<wbr/>FOCUSED</td> 3913<td align="center">AF_<wbr/>TRIGGER</td> 3914<td align="center">FOCUSED_<wbr/>LOCKED</td> 3915<td align="center">Immediate trans.<wbr/> Lens now locked</td> 3916</tr> 3917<tr> 3918<td align="center">PASSIVE_<wbr/>UNFOCUSED</td> 3919<td align="center">AF_<wbr/>TRIGGER</td> 3920<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3921<td align="center">Immediate trans.<wbr/> Lens now locked</td> 3922</tr> 3923<tr> 3924<td align="center">FOCUSED_<wbr/>LOCKED</td> 3925<td align="center">AF_<wbr/>TRIGGER</td> 3926<td align="center">FOCUSED_<wbr/>LOCKED</td> 3927<td align="center">No effect</td> 3928</tr> 3929<tr> 3930<td align="center">FOCUSED_<wbr/>LOCKED</td> 3931<td align="center">AF_<wbr/>CANCEL</td> 3932<td align="center">INACTIVE</td> 3933<td align="center">Restart AF scan</td> 3934</tr> 3935<tr> 3936<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3937<td align="center">AF_<wbr/>TRIGGER</td> 3938<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3939<td align="center">No effect</td> 3940</tr> 3941<tr> 3942<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3943<td align="center">AF_<wbr/>CANCEL</td> 3944<td align="center">INACTIVE</td> 3945<td align="center">Restart AF scan</td> 3946</tr> 3947</tbody> 3948</table> 3949<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> 3950<table> 3951<thead> 3952<tr> 3953<th align="center">State</th> 3954<th align="center">Transition Cause</th> 3955<th align="center">New State</th> 3956<th align="center">Notes</th> 3957</tr> 3958</thead> 3959<tbody> 3960<tr> 3961<td align="center">INACTIVE</td> 3962<td align="center">Camera device initiates new scan</td> 3963<td align="center">PASSIVE_<wbr/>SCAN</td> 3964<td align="center">Start AF scan,<wbr/> Lens now moving</td> 3965</tr> 3966<tr> 3967<td align="center">INACTIVE</td> 3968<td align="center">AF_<wbr/>TRIGGER</td> 3969<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3970<td align="center">AF state query,<wbr/> Lens now locked</td> 3971</tr> 3972<tr> 3973<td align="center">PASSIVE_<wbr/>SCAN</td> 3974<td align="center">Camera device completes current scan</td> 3975<td align="center">PASSIVE_<wbr/>FOCUSED</td> 3976<td align="center">End AF scan,<wbr/> Lens now locked</td> 3977</tr> 3978<tr> 3979<td align="center">PASSIVE_<wbr/>SCAN</td> 3980<td align="center">Camera device fails current scan</td> 3981<td align="center">PASSIVE_<wbr/>UNFOCUSED</td> 3982<td align="center">End AF scan,<wbr/> Lens now locked</td> 3983</tr> 3984<tr> 3985<td align="center">PASSIVE_<wbr/>SCAN</td> 3986<td align="center">AF_<wbr/>TRIGGER</td> 3987<td align="center">FOCUSED_<wbr/>LOCKED</td> 3988<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td> 3989</tr> 3990<tr> 3991<td align="center">PASSIVE_<wbr/>SCAN</td> 3992<td align="center">AF_<wbr/>TRIGGER</td> 3993<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 3994<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td> 3995</tr> 3996<tr> 3997<td align="center">PASSIVE_<wbr/>SCAN</td> 3998<td align="center">AF_<wbr/>CANCEL</td> 3999<td align="center">INACTIVE</td> 4000<td align="center">Reset lens position,<wbr/> Lens now locked</td> 4001</tr> 4002<tr> 4003<td align="center">PASSIVE_<wbr/>FOCUSED</td> 4004<td align="center">Camera device initiates new scan</td> 4005<td align="center">PASSIVE_<wbr/>SCAN</td> 4006<td align="center">Start AF scan,<wbr/> Lens now moving</td> 4007</tr> 4008<tr> 4009<td align="center">PASSIVE_<wbr/>UNFOCUSED</td> 4010<td align="center">Camera device initiates new scan</td> 4011<td align="center">PASSIVE_<wbr/>SCAN</td> 4012<td align="center">Start AF scan,<wbr/> Lens now moving</td> 4013</tr> 4014<tr> 4015<td align="center">PASSIVE_<wbr/>FOCUSED</td> 4016<td align="center">AF_<wbr/>TRIGGER</td> 4017<td align="center">FOCUSED_<wbr/>LOCKED</td> 4018<td align="center">Immediate trans.<wbr/> Lens now locked</td> 4019</tr> 4020<tr> 4021<td align="center">PASSIVE_<wbr/>UNFOCUSED</td> 4022<td align="center">AF_<wbr/>TRIGGER</td> 4023<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 4024<td align="center">Immediate trans.<wbr/> Lens now locked</td> 4025</tr> 4026<tr> 4027<td align="center">FOCUSED_<wbr/>LOCKED</td> 4028<td align="center">AF_<wbr/>TRIGGER</td> 4029<td align="center">FOCUSED_<wbr/>LOCKED</td> 4030<td align="center">No effect</td> 4031</tr> 4032<tr> 4033<td align="center">FOCUSED_<wbr/>LOCKED</td> 4034<td align="center">AF_<wbr/>CANCEL</td> 4035<td align="center">INACTIVE</td> 4036<td align="center">Restart AF scan</td> 4037</tr> 4038<tr> 4039<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 4040<td align="center">AF_<wbr/>TRIGGER</td> 4041<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 4042<td align="center">No effect</td> 4043</tr> 4044<tr> 4045<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td> 4046<td align="center">AF_<wbr/>CANCEL</td> 4047<td align="center">INACTIVE</td> 4048<td align="center">Restart AF scan</td> 4049</tr> 4050</tbody> 4051</table> 4052 </td> 4053 </tr> 4054 4055 4056 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4057 <!-- end of entry --> 4058 4059 4060 <tr class="entry" id="dynamic_android.control.afTriggerId"> 4061 <td class="entry_name" rowspan="3"> 4062 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id 4063 </td> 4064 <td class="entry_type"> 4065 <span class="entry_type_name">int32</span> 4066 4067 <span class="entry_type_visibility"> [hidden]</span> 4068 4069 4070 </td> <!-- entry_type --> 4071 4072 <td class="entry_description"> 4073 <p>The ID sent with the latest 4074CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p> 4075 </td> 4076 4077 <td class="entry_units"> 4078 </td> 4079 4080 <td class="entry_range"> 4081 </td> 4082 4083 <td class="entry_tags"> 4084 </td> 4085 4086 </tr> 4087 <tr class="entries_header"> 4088 <th class="th_details" colspan="5">Details</th> 4089 </tr> 4090 <tr class="entry_cont"> 4091 <td class="entry_details" colspan="5"> 4092 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger 4093received yet by HAL.<wbr/> Always updated even if AF algorithm 4094ignores the trigger</p> 4095 </td> 4096 </tr> 4097 4098 4099 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4100 <!-- end of entry --> 4101 4102 4103 <tr class="entry" id="dynamic_android.control.awbMode"> 4104 <td class="entry_name" rowspan="3"> 4105 android.<wbr/>control.<wbr/>awb<wbr/>Mode 4106 </td> 4107 <td class="entry_type"> 4108 <span class="entry_type_name entry_type_name_enum">byte</span> 4109 4110 <span class="entry_type_visibility"> [public]</span> 4111 4112 <ul class="entry_type_enum"> 4113 <li> 4114 <span class="entry_type_enum_name">OFF</span> 4115 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 4116the application-selected color transform matrix 4117(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains 4118(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera 4119device for manual white balance control.<wbr/></p></span> 4120 </li> 4121 <li> 4122 <span class="entry_type_enum_name">AUTO</span> 4123 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active; 4124the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform 4125and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span> 4126 </li> 4127 <li> 4128 <span class="entry_type_enum_name">INCANDESCENT</span> 4129 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 4130the camera device uses incandescent light as the assumed scene 4131illumination for white balance.<wbr/> While the exact white balance 4132transforms are up to the camera device,<wbr/> they will approximately 4133match the CIE standard illuminant A.<wbr/></p></span> 4134 </li> 4135 <li> 4136 <span class="entry_type_enum_name">FLUORESCENT</span> 4137 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 4138the camera device uses fluorescent light as the assumed scene 4139illumination for white balance.<wbr/> While the exact white balance 4140transforms are up to the camera device,<wbr/> they will approximately 4141match the CIE standard illuminant F2.<wbr/></p></span> 4142 </li> 4143 <li> 4144 <span class="entry_type_enum_name">WARM_FLUORESCENT</span> 4145 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 4146the camera device uses warm fluorescent light as the assumed scene 4147illumination for white balance.<wbr/> While the exact white balance 4148transforms are up to the camera device,<wbr/> they will approximately 4149match the CIE standard illuminant F4.<wbr/></p></span> 4150 </li> 4151 <li> 4152 <span class="entry_type_enum_name">DAYLIGHT</span> 4153 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 4154the camera device uses daylight light as the assumed scene 4155illumination for white balance.<wbr/> While the exact white balance 4156transforms are up to the camera device,<wbr/> they will approximately 4157match the CIE standard illuminant D65.<wbr/></p></span> 4158 </li> 4159 <li> 4160 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span> 4161 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 4162the camera device uses cloudy daylight light as the assumed scene 4163illumination for white balance.<wbr/></p></span> 4164 </li> 4165 <li> 4166 <span class="entry_type_enum_name">TWILIGHT</span> 4167 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 4168the camera device uses twilight light as the assumed scene 4169illumination for white balance.<wbr/></p></span> 4170 </li> 4171 <li> 4172 <span class="entry_type_enum_name">SHADE</span> 4173 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled; 4174the camera device uses shade light as the assumed scene 4175illumination for white balance.<wbr/></p></span> 4176 </li> 4177 </ul> 4178 4179 </td> <!-- entry_type --> 4180 4181 <td class="entry_description"> 4182 <p>Whether AWB is currently setting the color 4183transform fields,<wbr/> and what its illumination target 4184is</p> 4185 </td> 4186 4187 <td class="entry_units"> 4188 </td> 4189 4190 <td class="entry_range"> 4191 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p> 4192 </td> 4193 4194 <td class="entry_tags"> 4195 <ul class="entry_tags"> 4196 <li><a href="#tag_BC">BC</a></li> 4197 <li><a href="#tag_AWB">AWB</a></li> 4198 </ul> 4199 </td> 4200 4201 </tr> 4202 <tr class="entries_header"> 4203 <th class="th_details" colspan="5">Details</th> 4204 </tr> 4205 <tr class="entry_cont"> 4206 <td class="entry_details" colspan="5"> 4207 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p> 4208<p>When set to the ON mode,<wbr/> the camera device's auto white balance 4209routine is enabled,<wbr/> overriding the application's selected 4210<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 4211<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p> 4212<p>When set to the OFF mode,<wbr/> the camera device's auto white balance 4213routine is disabled.<wbr/> The applicantion manually controls the white 4214balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains 4215and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p> 4216<p>When set to any other modes,<wbr/> the camera device's auto white balance 4217routine is disabled.<wbr/> The camera device uses each particular illumination 4218target for white balance adjustment.<wbr/></p> 4219 </td> 4220 </tr> 4221 4222 4223 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4224 <!-- end of entry --> 4225 4226 4227 <tr class="entry" id="dynamic_android.control.awbRegions"> 4228 <td class="entry_name" rowspan="3"> 4229 android.<wbr/>control.<wbr/>awb<wbr/>Regions 4230 </td> 4231 <td class="entry_type"> 4232 <span class="entry_type_name">int32</span> 4233 <span class="entry_type_container">x</span> 4234 4235 <span class="entry_type_array"> 4236 5 x area_count 4237 </span> 4238 <span class="entry_type_visibility"> [public]</span> 4239 4240 4241 </td> <!-- entry_type --> 4242 4243 <td class="entry_description"> 4244 <p>List of areas to use for illuminant 4245estimation</p> 4246 </td> 4247 4248 <td class="entry_units"> 4249 </td> 4250 4251 <td class="entry_range"> 4252 </td> 4253 4254 <td class="entry_tags"> 4255 <ul class="entry_tags"> 4256 <li><a href="#tag_BC">BC</a></li> 4257 </ul> 4258 </td> 4259 4260 </tr> 4261 <tr class="entries_header"> 4262 <th class="th_details" colspan="5">Details</th> 4263 </tr> 4264 <tr class="entry_cont"> 4265 <td class="entry_details" colspan="5"> 4266 <p>Only used in AUTO mode.<wbr/></p> 4267<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/> 4268xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the 4269specified coordinates.<wbr/></p> 4270<p>The coordinate system is based on the active pixel array,<wbr/> 4271with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and 4272(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/> 4273<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the 4274bottom-right pixel in the active pixel array.<wbr/> The weight 4275should be nonnegative.<wbr/></p> 4276<p>If all regions have 0 weight,<wbr/> then no specific metering area 4277needs to be used by the HAL.<wbr/> If the metering region is 4278outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL 4279should ignore the sections outside the region and output the 4280used sections in the frame metadata</p> 4281 </td> 4282 </tr> 4283 4284 4285 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4286 <!-- end of entry --> 4287 4288 4289 <tr class="entry" id="dynamic_android.control.awbState"> 4290 <td class="entry_name" rowspan="3"> 4291 android.<wbr/>control.<wbr/>awb<wbr/>State 4292 </td> 4293 <td class="entry_type"> 4294 <span class="entry_type_name entry_type_name_enum">byte</span> 4295 4296 <span class="entry_type_visibility"> [public]</span> 4297 4298 <ul class="entry_type_enum"> 4299 <li> 4300 <span class="entry_type_enum_name">INACTIVE</span> 4301 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it 4302starts in this state.<wbr/></p></span> 4303 </li> 4304 <li> 4305 <span class="entry_type_enum_name">SEARCHING</span> 4306 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control 4307values for the current scene.<wbr/></p></span> 4308 </li> 4309 <li> 4310 <span class="entry_type_enum_name">CONVERGED</span> 4311 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the 4312current scene.<wbr/></p></span> 4313 </li> 4314 <li> 4315 <span class="entry_type_enum_name">LOCKED</span> 4316 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span> 4317 </li> 4318 </ul> 4319 4320 </td> <!-- entry_type --> 4321 4322 <td class="entry_description"> 4323 <p>Current state of AWB algorithm</p> 4324 </td> 4325 4326 <td class="entry_units"> 4327 </td> 4328 4329 <td class="entry_range"> 4330 </td> 4331 4332 <td class="entry_tags"> 4333 </td> 4334 4335 </tr> 4336 <tr class="entries_header"> 4337 <th class="th_details" colspan="5">Details</th> 4338 </tr> 4339 <tr class="entry_cont"> 4340 <td class="entry_details" colspan="5"> 4341 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always 4342resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/> 4343or <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 4344the algorithm states to INACTIVE.<wbr/></p> 4345<p>The camera device can do several state transitions between two results,<wbr/> if it is 4346allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in 4347a result.<wbr/></p> 4348<p>The state in the result is the state for this image (in sync with this image): if 4349AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should 4350be good to use.<wbr/></p> 4351<p>Below are state transition tables for different AWB modes.<wbr/></p> 4352<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p> 4353<table> 4354<thead> 4355<tr> 4356<th align="center">State</th> 4357<th align="center">Transition Cause</th> 4358<th align="center">New State</th> 4359<th align="center">Notes</th> 4360</tr> 4361</thead> 4362<tbody> 4363<tr> 4364<td align="center">INACTIVE</td> 4365<td align="center"></td> 4366<td align="center">INACTIVE</td> 4367<td align="center">Camera device auto white balance algorithm is disabled</td> 4368</tr> 4369</tbody> 4370</table> 4371<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p> 4372<table> 4373<thead> 4374<tr> 4375<th align="center">State</th> 4376<th align="center">Transition Cause</th> 4377<th align="center">New State</th> 4378<th align="center">Notes</th> 4379</tr> 4380</thead> 4381<tbody> 4382<tr> 4383<td align="center">INACTIVE</td> 4384<td align="center">Camera device initiates AWB scan</td> 4385<td align="center">SEARCHING</td> 4386<td align="center">Values changing</td> 4387</tr> 4388<tr> 4389<td align="center">INACTIVE</td> 4390<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td> 4391<td align="center">LOCKED</td> 4392<td align="center">Values locked</td> 4393</tr> 4394<tr> 4395<td align="center">SEARCHING</td> 4396<td align="center">Camera device finishes AWB scan</td> 4397<td align="center">CONVERGED</td> 4398<td align="center">Good values,<wbr/> not changing</td> 4399</tr> 4400<tr> 4401<td align="center">SEARCHING</td> 4402<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td> 4403<td align="center">LOCKED</td> 4404<td align="center">Values locked</td> 4405</tr> 4406<tr> 4407<td align="center">CONVERGED</td> 4408<td align="center">Camera device initiates AWB scan</td> 4409<td align="center">SEARCHING</td> 4410<td align="center">Values changing</td> 4411</tr> 4412<tr> 4413<td align="center">CONVERGED</td> 4414<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td> 4415<td align="center">LOCKED</td> 4416<td align="center">Values locked</td> 4417</tr> 4418<tr> 4419<td align="center">LOCKED</td> 4420<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td> 4421<td align="center">SEARCHING</td> 4422<td align="center">Values not good after unlock</td> 4423</tr> 4424<tr> 4425<td align="center">LOCKED</td> 4426<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td> 4427<td align="center">CONVERGED</td> 4428<td align="center">Values good after unlock</td> 4429</tr> 4430</tbody> 4431</table> 4432 </td> 4433 </tr> 4434 4435 4436 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4437 <!-- end of entry --> 4438 4439 4440 <tr class="entry" id="dynamic_android.control.mode"> 4441 <td class="entry_name" rowspan="3"> 4442 android.<wbr/>control.<wbr/>mode 4443 </td> 4444 <td class="entry_type"> 4445 <span class="entry_type_name entry_type_name_enum">byte</span> 4446 4447 <span class="entry_type_visibility"> [public]</span> 4448 4449 <ul class="entry_type_enum"> 4450 <li> 4451 <span class="entry_type_enum_name">OFF</span> 4452 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A 4453routines are disabled,<wbr/> no other settings in 4454android.<wbr/>control.<wbr/>* have any effect</p></span> 4455 </li> 4456 <li> 4457 <span class="entry_type_enum_name">AUTO</span> 4458 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/> 4459Manual control of capture parameters is disabled.<wbr/> All 4460controls in android.<wbr/>control.<wbr/>* besides sceneMode take 4461effect</p></span> 4462 </li> 4463 <li> 4464 <span class="entry_type_enum_name">USE_SCENE_MODE</span> 4465 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables 4466control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode 4467controls; the HAL must ignore those settings while 4468USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY 4469scene mode).<wbr/> Other control entries are still active.<wbr/> 4470This setting can only be used if availableSceneModes != 4471UNSUPPORTED</p></span> 4472 </li> 4473 </ul> 4474 4475 </td> <!-- entry_type --> 4476 4477 <td class="entry_description"> 4478 <p>Overall mode of 3A control 4479routines</p> 4480 </td> 4481 4482 <td class="entry_units"> 4483 </td> 4484 4485 <td class="entry_range"> 4486 <p>all must be supported</p> 4487 </td> 4488 4489 <td class="entry_tags"> 4490 <ul class="entry_tags"> 4491 <li><a href="#tag_BC">BC</a></li> 4492 </ul> 4493 </td> 4494 4495 </tr> 4496 <tr class="entries_header"> 4497 <th class="th_details" colspan="5">Details</th> 4498 </tr> 4499 <tr class="entry_cont"> 4500 <td class="entry_details" colspan="5"> 4501 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control 4502by the camera device is disabled.<wbr/> The application must set the fields for 4503capture parameters itself.<wbr/></p> 4504<p>When set to AUTO,<wbr/> the individual algorithm controls in 4505android.<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> 4506<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in 4507android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements 4508one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY) 4509as it wishes.<wbr/> The camera device scene mode 3A settings are provided by 4510<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p> 4511 </td> 4512 </tr> 4513 4514 4515 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4516 <!-- end of entry --> 4517 4518 4519 4520 <!-- end of kind --> 4521 </tbody> 4522 4523 <!-- end of section --> 4524 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr> 4525 4526 4527 <tr><td colspan="6" class="kind">controls</td></tr> 4528 4529 <thead class="entries_header"> 4530 <tr> 4531 <th class="th_name">Property Name</th> 4532 <th class="th_type">Type</th> 4533 <th class="th_description">Description</th> 4534 <th class="th_units">Units</th> 4535 <th class="th_range">Range</th> 4536 <th class="th_tags">Tags</th> 4537 </tr> 4538 </thead> 4539 4540 <tbody> 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 <tr class="entry" id="controls_android.demosaic.mode"> 4552 <td class="entry_name" rowspan="1"> 4553 android.<wbr/>demosaic.<wbr/>mode 4554 </td> 4555 <td class="entry_type"> 4556 <span class="entry_type_name entry_type_name_enum">byte</span> 4557 4558 <span class="entry_type_visibility"> [system]</span> 4559 4560 <ul class="entry_type_enum"> 4561 <li> 4562 <span class="entry_type_enum_name">FAST</span> 4563 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to 4564Bayer RAW output</p></span> 4565 </li> 4566 <li> 4567 <span class="entry_type_enum_name">HIGH_QUALITY</span> 4568 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame 4569rate</p></span> 4570 </li> 4571 </ul> 4572 4573 </td> <!-- entry_type --> 4574 4575 <td class="entry_description"> 4576 <p>Controls the quality of the demosaicing 4577processing</p> 4578 </td> 4579 4580 <td class="entry_units"> 4581 </td> 4582 4583 <td class="entry_range"> 4584 </td> 4585 4586 <td class="entry_tags"> 4587 <ul class="entry_tags"> 4588 <li><a href="#tag_V1">V1</a></li> 4589 </ul> 4590 </td> 4591 4592 </tr> 4593 4594 4595 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4596 <!-- end of entry --> 4597 4598 4599 4600 <!-- end of kind --> 4601 </tbody> 4602 4603 <!-- end of section --> 4604 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr> 4605 4606 4607 <tr><td colspan="6" class="kind">controls</td></tr> 4608 4609 <thead class="entries_header"> 4610 <tr> 4611 <th class="th_name">Property Name</th> 4612 <th class="th_type">Type</th> 4613 <th class="th_description">Description</th> 4614 <th class="th_units">Units</th> 4615 <th class="th_range">Range</th> 4616 <th class="th_tags">Tags</th> 4617 </tr> 4618 </thead> 4619 4620 <tbody> 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 <tr class="entry" id="controls_android.edge.mode"> 4632 <td class="entry_name" rowspan="3"> 4633 android.<wbr/>edge.<wbr/>mode 4634 </td> 4635 <td class="entry_type"> 4636 <span class="entry_type_name entry_type_name_enum">byte</span> 4637 4638 <span class="entry_type_visibility"> [public]</span> 4639 4640 <ul class="entry_type_enum"> 4641 <li> 4642 <span class="entry_type_enum_name">OFF</span> 4643 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span> 4644 </li> 4645 <li> 4646 <span class="entry_type_enum_name">FAST</span> 4647 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor 4648output</p></span> 4649 </li> 4650 <li> 4651 <span class="entry_type_enum_name">HIGH_QUALITY</span> 4652 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 4653quality</p></span> 4654 </li> 4655 </ul> 4656 4657 </td> <!-- entry_type --> 4658 4659 <td class="entry_description"> 4660 <p>Operation mode for edge 4661enhancement</p> 4662 </td> 4663 4664 <td class="entry_units"> 4665 </td> 4666 4667 <td class="entry_range"> 4668 </td> 4669 4670 <td class="entry_tags"> 4671 </td> 4672 4673 </tr> 4674 <tr class="entries_header"> 4675 <th class="th_details" colspan="5">Details</th> 4676 </tr> 4677 <tr class="entry_cont"> 4678 <td class="entry_details" colspan="5"> 4679 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no 4680enhancement will be applied by the HAL.<wbr/></p> 4681<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement 4682will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the 4683camera device will use the highest-quality enhancement algorithms,<wbr/> 4684even if it slows down capture rate.<wbr/> FAST means the camera device will 4685not slow down capture rate when applying edge enhancement.<wbr/></p> 4686 </td> 4687 </tr> 4688 4689 4690 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4691 <!-- end of entry --> 4692 4693 4694 <tr class="entry" id="controls_android.edge.strength"> 4695 <td class="entry_name" rowspan="1"> 4696 android.<wbr/>edge.<wbr/>strength 4697 </td> 4698 <td class="entry_type"> 4699 <span class="entry_type_name">byte</span> 4700 4701 <span class="entry_type_visibility"> [system]</span> 4702 4703 4704 </td> <!-- entry_type --> 4705 4706 <td class="entry_description"> 4707 <p>Control the amount of edge enhancement 4708applied to the images</p> 4709 </td> 4710 4711 <td class="entry_units"> 4712 1-10; 10 is maximum sharpening 4713 </td> 4714 4715 <td class="entry_range"> 4716 </td> 4717 4718 <td class="entry_tags"> 4719 </td> 4720 4721 </tr> 4722 4723 4724 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4725 <!-- end of entry --> 4726 4727 4728 4729 <!-- end of kind --> 4730 </tbody> 4731 <tr><td colspan="6" class="kind">dynamic</td></tr> 4732 4733 <thead class="entries_header"> 4734 <tr> 4735 <th class="th_name">Property Name</th> 4736 <th class="th_type">Type</th> 4737 <th class="th_description">Description</th> 4738 <th class="th_units">Units</th> 4739 <th class="th_range">Range</th> 4740 <th class="th_tags">Tags</th> 4741 </tr> 4742 </thead> 4743 4744 <tbody> 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 <tr class="entry" id="dynamic_android.edge.mode"> 4756 <td class="entry_name" rowspan="3"> 4757 android.<wbr/>edge.<wbr/>mode 4758 </td> 4759 <td class="entry_type"> 4760 <span class="entry_type_name entry_type_name_enum">byte</span> 4761 4762 <span class="entry_type_visibility"> [public]</span> 4763 4764 <ul class="entry_type_enum"> 4765 <li> 4766 <span class="entry_type_enum_name">OFF</span> 4767 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span> 4768 </li> 4769 <li> 4770 <span class="entry_type_enum_name">FAST</span> 4771 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor 4772output</p></span> 4773 </li> 4774 <li> 4775 <span class="entry_type_enum_name">HIGH_QUALITY</span> 4776 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 4777quality</p></span> 4778 </li> 4779 </ul> 4780 4781 </td> <!-- entry_type --> 4782 4783 <td class="entry_description"> 4784 <p>Operation mode for edge 4785enhancement</p> 4786 </td> 4787 4788 <td class="entry_units"> 4789 </td> 4790 4791 <td class="entry_range"> 4792 </td> 4793 4794 <td class="entry_tags"> 4795 </td> 4796 4797 </tr> 4798 <tr class="entries_header"> 4799 <th class="th_details" colspan="5">Details</th> 4800 </tr> 4801 <tr class="entry_cont"> 4802 <td class="entry_details" colspan="5"> 4803 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no 4804enhancement will be applied by the HAL.<wbr/></p> 4805<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement 4806will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the 4807camera device will use the highest-quality enhancement algorithms,<wbr/> 4808even if it slows down capture rate.<wbr/> FAST means the camera device will 4809not slow down capture rate when applying edge enhancement.<wbr/></p> 4810 </td> 4811 </tr> 4812 4813 4814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4815 <!-- end of entry --> 4816 4817 4818 4819 <!-- end of kind --> 4820 </tbody> 4821 4822 <!-- end of section --> 4823 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr> 4824 4825 4826 <tr><td colspan="6" class="kind">controls</td></tr> 4827 4828 <thead class="entries_header"> 4829 <tr> 4830 <th class="th_name">Property Name</th> 4831 <th class="th_type">Type</th> 4832 <th class="th_description">Description</th> 4833 <th class="th_units">Units</th> 4834 <th class="th_range">Range</th> 4835 <th class="th_tags">Tags</th> 4836 </tr> 4837 </thead> 4838 4839 <tbody> 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 <tr class="entry" id="controls_android.flash.firingPower"> 4851 <td class="entry_name" rowspan="3"> 4852 android.<wbr/>flash.<wbr/>firing<wbr/>Power 4853 </td> 4854 <td class="entry_type"> 4855 <span class="entry_type_name">byte</span> 4856 4857 <span class="entry_type_visibility"> [system]</span> 4858 4859 4860 </td> <!-- entry_type --> 4861 4862 <td class="entry_description"> 4863 <p>Power for flash firing/<wbr/>torch</p> 4864 </td> 4865 4866 <td class="entry_units"> 4867 10 is max power; 0 is no flash.<wbr/> Linear 4868 </td> 4869 4870 <td class="entry_range"> 4871 <p>0 - 10</p> 4872 </td> 4873 4874 <td class="entry_tags"> 4875 <ul class="entry_tags"> 4876 <li><a href="#tag_V1">V1</a></li> 4877 </ul> 4878 </td> 4879 4880 </tr> 4881 <tr class="entries_header"> 4882 <th class="th_details" colspan="5">Details</th> 4883 </tr> 4884 <tr class="entry_cont"> 4885 <td class="entry_details" colspan="5"> 4886 <p>Power for snapshot may use a different scale than 4887for torch mode.<wbr/> Only one entry for torch mode will be 4888used</p> 4889 </td> 4890 </tr> 4891 4892 4893 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4894 <!-- end of entry --> 4895 4896 4897 <tr class="entry" id="controls_android.flash.firingTime"> 4898 <td class="entry_name" rowspan="3"> 4899 android.<wbr/>flash.<wbr/>firing<wbr/>Time 4900 </td> 4901 <td class="entry_type"> 4902 <span class="entry_type_name">int64</span> 4903 4904 <span class="entry_type_visibility"> [system]</span> 4905 4906 4907 </td> <!-- entry_type --> 4908 4909 <td class="entry_description"> 4910 <p>Firing time of flash relative to start of 4911exposure</p> 4912 </td> 4913 4914 <td class="entry_units"> 4915 nanoseconds 4916 </td> 4917 4918 <td class="entry_range"> 4919 <p>0-(exposure time-flash duration)</p> 4920 </td> 4921 4922 <td class="entry_tags"> 4923 <ul class="entry_tags"> 4924 <li><a href="#tag_V1">V1</a></li> 4925 </ul> 4926 </td> 4927 4928 </tr> 4929 <tr class="entries_header"> 4930 <th class="th_details" colspan="5">Details</th> 4931 </tr> 4932 <tr class="entry_cont"> 4933 <td class="entry_details" colspan="5"> 4934 <p>Clamped to (0,<wbr/> exposure time - flash 4935duration).<wbr/></p> 4936 </td> 4937 </tr> 4938 4939 4940 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 4941 <!-- end of entry --> 4942 4943 4944 <tr class="entry" id="controls_android.flash.mode"> 4945 <td class="entry_name" rowspan="3"> 4946 android.<wbr/>flash.<wbr/>mode 4947 </td> 4948 <td class="entry_type"> 4949 <span class="entry_type_name entry_type_name_enum">byte</span> 4950 4951 <span class="entry_type_visibility"> [public]</span> 4952 4953 <ul class="entry_type_enum"> 4954 <li> 4955 <span class="entry_type_enum_name">OFF</span> 4956 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span> 4957 </li> 4958 <li> 4959 <span class="entry_type_enum_name">SINGLE</span> 4960 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash 4961for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and 4962<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span> 4963 </li> 4964 <li> 4965 <span class="entry_type_enum_name">TORCH</span> 4966 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span> 4967 </li> 4968 </ul> 4969 4970 </td> <!-- entry_type --> 4971 4972 <td class="entry_description"> 4973 <p>The desired mode for for the camera device's flash control.<wbr/></p> 4974 </td> 4975 4976 <td class="entry_units"> 4977 </td> 4978 4979 <td class="entry_range"> 4980 </td> 4981 4982 <td class="entry_tags"> 4983 <ul class="entry_tags"> 4984 <li><a href="#tag_BC">BC</a></li> 4985 </ul> 4986 </td> 4987 4988 </tr> 4989 <tr class="entries_header"> 4990 <th class="th_details" colspan="5">Details</th> 4991 </tr> 4992 <tr class="entry_cont"> 4993 <td class="entry_details" colspan="5"> 4994 <p>This control is only effective when flash unit is available 4995(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p> 4996<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/> 4997Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> 4998ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p> 4999<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p> 5000<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera 5001device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this 5002control should be used along with AE precapture metering sequence 5003(<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> 5004<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used 5005for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p> 5006 </td> 5007 </tr> 5008 5009 5010 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5011 <!-- end of entry --> 5012 5013 5014 5015 <!-- end of kind --> 5016 </tbody> 5017 <tr><td colspan="6" class="kind">static</td></tr> 5018 5019 <thead class="entries_header"> 5020 <tr> 5021 <th class="th_name">Property Name</th> 5022 <th class="th_type">Type</th> 5023 <th class="th_description">Description</th> 5024 <th class="th_units">Units</th> 5025 <th class="th_range">Range</th> 5026 <th class="th_tags">Tags</th> 5027 </tr> 5028 </thead> 5029 5030 <tbody> 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 <tr class="entry" id="static_android.flash.info.available"> 5044 <td class="entry_name" rowspan="3"> 5045 android.<wbr/>flash.<wbr/>info.<wbr/>available 5046 </td> 5047 <td class="entry_type"> 5048 <span class="entry_type_name">byte</span> 5049 5050 <span class="entry_type_visibility"> [public]</span> 5051 5052 5053 </td> <!-- entry_type --> 5054 5055 <td class="entry_description"> 5056 <p>Whether this camera has a 5057flash</p> 5058 </td> 5059 5060 <td class="entry_units"> 5061 boolean (0 = false,<wbr/> otherwise true) 5062 </td> 5063 5064 <td class="entry_range"> 5065 </td> 5066 5067 <td class="entry_tags"> 5068 <ul class="entry_tags"> 5069 <li><a href="#tag_BC">BC</a></li> 5070 </ul> 5071 </td> 5072 5073 </tr> 5074 <tr class="entries_header"> 5075 <th class="th_details" colspan="5">Details</th> 5076 </tr> 5077 <tr class="entry_cont"> 5078 <td class="entry_details" colspan="5"> 5079 <p>If no flash,<wbr/> none of the flash controls do 5080anything.<wbr/> All other metadata should return 0</p> 5081 </td> 5082 </tr> 5083 5084 5085 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5086 <!-- end of entry --> 5087 5088 5089 <tr class="entry" id="static_android.flash.info.chargeDuration"> 5090 <td class="entry_name" rowspan="3"> 5091 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration 5092 </td> 5093 <td class="entry_type"> 5094 <span class="entry_type_name">int64</span> 5095 5096 <span class="entry_type_visibility"> [system]</span> 5097 5098 5099 </td> <!-- entry_type --> 5100 5101 <td class="entry_description"> 5102 <p>Time taken before flash can fire 5103again</p> 5104 </td> 5105 5106 <td class="entry_units"> 5107 nanoseconds 5108 </td> 5109 5110 <td class="entry_range"> 5111 <p>0-1e9</p> 5112 </td> 5113 5114 <td class="entry_tags"> 5115 <ul class="entry_tags"> 5116 <li><a href="#tag_V1">V1</a></li> 5117 </ul> 5118 </td> 5119 5120 </tr> 5121 <tr class="entries_header"> 5122 <th class="th_details" colspan="5">Details</th> 5123 </tr> 5124 <tr class="entry_cont"> 5125 <td class="entry_details" colspan="5"> 5126 <p>1 second too long/<wbr/>too short for recharge? Should 5127this be power-dependent?</p> 5128 </td> 5129 </tr> 5130 5131 5132 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5133 <!-- end of entry --> 5134 5135 5136 5137 5138 5139 <tr class="entry" id="static_android.flash.colorTemperature"> 5140 <td class="entry_name" rowspan="1"> 5141 android.<wbr/>flash.<wbr/>color<wbr/>Temperature 5142 </td> 5143 <td class="entry_type"> 5144 <span class="entry_type_name">byte</span> 5145 5146 <span class="entry_type_visibility"> [system]</span> 5147 5148 5149 </td> <!-- entry_type --> 5150 5151 <td class="entry_description"> 5152 <p>The x,<wbr/>y whitepoint of the 5153flash</p> 5154 </td> 5155 5156 <td class="entry_units"> 5157 pair of floats 5158 </td> 5159 5160 <td class="entry_range"> 5161 <p>0-1 for both</p> 5162 </td> 5163 5164 <td class="entry_tags"> 5165 <ul class="entry_tags"> 5166 <li><a href="#tag_ADV">ADV</a></li> 5167 </ul> 5168 </td> 5169 5170 </tr> 5171 5172 5173 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5174 <!-- end of entry --> 5175 5176 5177 <tr class="entry" id="static_android.flash.maxEnergy"> 5178 <td class="entry_name" rowspan="1"> 5179 android.<wbr/>flash.<wbr/>max<wbr/>Energy 5180 </td> 5181 <td class="entry_type"> 5182 <span class="entry_type_name">byte</span> 5183 5184 <span class="entry_type_visibility"> [system]</span> 5185 5186 5187 </td> <!-- entry_type --> 5188 5189 <td class="entry_description"> 5190 <p>Max energy output of the flash for a full 5191power single flash</p> 5192 </td> 5193 5194 <td class="entry_units"> 5195 lumen-seconds 5196 </td> 5197 5198 <td class="entry_range"> 5199 <p>>= 0</p> 5200 </td> 5201 5202 <td class="entry_tags"> 5203 <ul class="entry_tags"> 5204 <li><a href="#tag_ADV">ADV</a></li> 5205 </ul> 5206 </td> 5207 5208 </tr> 5209 5210 5211 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5212 <!-- end of entry --> 5213 5214 5215 5216 <!-- end of kind --> 5217 </tbody> 5218 <tr><td colspan="6" class="kind">dynamic</td></tr> 5219 5220 <thead class="entries_header"> 5221 <tr> 5222 <th class="th_name">Property Name</th> 5223 <th class="th_type">Type</th> 5224 <th class="th_description">Description</th> 5225 <th class="th_units">Units</th> 5226 <th class="th_range">Range</th> 5227 <th class="th_tags">Tags</th> 5228 </tr> 5229 </thead> 5230 5231 <tbody> 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 <tr class="entry" id="dynamic_android.flash.firingPower"> 5243 <td class="entry_name" rowspan="3"> 5244 android.<wbr/>flash.<wbr/>firing<wbr/>Power 5245 </td> 5246 <td class="entry_type"> 5247 <span class="entry_type_name">byte</span> 5248 5249 <span class="entry_type_visibility"> [system]</span> 5250 5251 5252 </td> <!-- entry_type --> 5253 5254 <td class="entry_description"> 5255 <p>Power for flash firing/<wbr/>torch</p> 5256 </td> 5257 5258 <td class="entry_units"> 5259 10 is max power; 0 is no flash.<wbr/> Linear 5260 </td> 5261 5262 <td class="entry_range"> 5263 <p>0 - 10</p> 5264 </td> 5265 5266 <td class="entry_tags"> 5267 <ul class="entry_tags"> 5268 <li><a href="#tag_V1">V1</a></li> 5269 </ul> 5270 </td> 5271 5272 </tr> 5273 <tr class="entries_header"> 5274 <th class="th_details" colspan="5">Details</th> 5275 </tr> 5276 <tr class="entry_cont"> 5277 <td class="entry_details" colspan="5"> 5278 <p>Power for snapshot may use a different scale than 5279for torch mode.<wbr/> Only one entry for torch mode will be 5280used</p> 5281 </td> 5282 </tr> 5283 5284 5285 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5286 <!-- end of entry --> 5287 5288 5289 <tr class="entry" id="dynamic_android.flash.firingTime"> 5290 <td class="entry_name" rowspan="3"> 5291 android.<wbr/>flash.<wbr/>firing<wbr/>Time 5292 </td> 5293 <td class="entry_type"> 5294 <span class="entry_type_name">int64</span> 5295 5296 <span class="entry_type_visibility"> [system]</span> 5297 5298 5299 </td> <!-- entry_type --> 5300 5301 <td class="entry_description"> 5302 <p>Firing time of flash relative to start of 5303exposure</p> 5304 </td> 5305 5306 <td class="entry_units"> 5307 nanoseconds 5308 </td> 5309 5310 <td class="entry_range"> 5311 <p>0-(exposure time-flash duration)</p> 5312 </td> 5313 5314 <td class="entry_tags"> 5315 <ul class="entry_tags"> 5316 <li><a href="#tag_V1">V1</a></li> 5317 </ul> 5318 </td> 5319 5320 </tr> 5321 <tr class="entries_header"> 5322 <th class="th_details" colspan="5">Details</th> 5323 </tr> 5324 <tr class="entry_cont"> 5325 <td class="entry_details" colspan="5"> 5326 <p>Clamped to (0,<wbr/> exposure time - flash 5327duration).<wbr/></p> 5328 </td> 5329 </tr> 5330 5331 5332 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5333 <!-- end of entry --> 5334 5335 5336 <tr class="entry" id="dynamic_android.flash.mode"> 5337 <td class="entry_name" rowspan="3"> 5338 android.<wbr/>flash.<wbr/>mode 5339 </td> 5340 <td class="entry_type"> 5341 <span class="entry_type_name entry_type_name_enum">byte</span> 5342 5343 <span class="entry_type_visibility"> [public]</span> 5344 5345 <ul class="entry_type_enum"> 5346 <li> 5347 <span class="entry_type_enum_name">OFF</span> 5348 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span> 5349 </li> 5350 <li> 5351 <span class="entry_type_enum_name">SINGLE</span> 5352 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash 5353for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and 5354<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span> 5355 </li> 5356 <li> 5357 <span class="entry_type_enum_name">TORCH</span> 5358 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span> 5359 </li> 5360 </ul> 5361 5362 </td> <!-- entry_type --> 5363 5364 <td class="entry_description"> 5365 <p>The desired mode for for the camera device's flash control.<wbr/></p> 5366 </td> 5367 5368 <td class="entry_units"> 5369 </td> 5370 5371 <td class="entry_range"> 5372 </td> 5373 5374 <td class="entry_tags"> 5375 <ul class="entry_tags"> 5376 <li><a href="#tag_BC">BC</a></li> 5377 </ul> 5378 </td> 5379 5380 </tr> 5381 <tr class="entries_header"> 5382 <th class="th_details" colspan="5">Details</th> 5383 </tr> 5384 <tr class="entry_cont"> 5385 <td class="entry_details" colspan="5"> 5386 <p>This control is only effective when flash unit is available 5387(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p> 5388<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/> 5389Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> 5390ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p> 5391<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p> 5392<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera 5393device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this 5394control should be used along with AE precapture metering sequence 5395(<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> 5396<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used 5397for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p> 5398 </td> 5399 </tr> 5400 5401 5402 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5403 <!-- end of entry --> 5404 5405 5406 <tr class="entry" id="dynamic_android.flash.state"> 5407 <td class="entry_name" rowspan="1"> 5408 android.<wbr/>flash.<wbr/>state 5409 </td> 5410 <td class="entry_type"> 5411 <span class="entry_type_name entry_type_name_enum">byte</span> 5412 5413 <span class="entry_type_visibility"> [public]</span> 5414 5415 <ul class="entry_type_enum"> 5416 <li> 5417 <span class="entry_type_enum_name">UNAVAILABLE</span> 5418 <span class="entry_type_enum_notes"><p>No flash on camera</p></span> 5419 </li> 5420 <li> 5421 <span class="entry_type_enum_name">CHARGING</span> 5422 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is 5423charging and cannot be fired</p></span> 5424 </li> 5425 <li> 5426 <span class="entry_type_enum_name">READY</span> 5427 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is 5428ready to fire</p></span> 5429 </li> 5430 <li> 5431 <span class="entry_type_enum_name">FIRED</span> 5432 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash fired 5433for this capture</p></span> 5434 </li> 5435 </ul> 5436 5437 </td> <!-- entry_type --> 5438 5439 <td class="entry_description"> 5440 <p>Current state of the flash 5441unit</p> 5442 </td> 5443 5444 <td class="entry_units"> 5445 </td> 5446 5447 <td class="entry_range"> 5448 </td> 5449 5450 <td class="entry_tags"> 5451 </td> 5452 5453 </tr> 5454 5455 5456 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5457 <!-- end of entry --> 5458 5459 5460 5461 <!-- end of kind --> 5462 </tbody> 5463 5464 <!-- end of section --> 5465 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr> 5466 5467 5468 <tr><td colspan="6" class="kind">controls</td></tr> 5469 5470 <thead class="entries_header"> 5471 <tr> 5472 <th class="th_name">Property Name</th> 5473 <th class="th_type">Type</th> 5474 <th class="th_description">Description</th> 5475 <th class="th_units">Units</th> 5476 <th class="th_range">Range</th> 5477 <th class="th_tags">Tags</th> 5478 </tr> 5479 </thead> 5480 5481 <tbody> 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 <tr class="entry" id="controls_android.geometric.mode"> 5493 <td class="entry_name" rowspan="1"> 5494 android.<wbr/>geometric.<wbr/>mode 5495 </td> 5496 <td class="entry_type"> 5497 <span class="entry_type_name entry_type_name_enum">byte</span> 5498 5499 <span class="entry_type_visibility"> [system]</span> 5500 5501 <ul class="entry_type_enum"> 5502 <li> 5503 <span class="entry_type_enum_name">OFF</span> 5504 <span class="entry_type_enum_notes"><p>No geometric correction is 5505applied</p></span> 5506 </li> 5507 <li> 5508 <span class="entry_type_enum_name">FAST</span> 5509 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw 5510bayer output</p></span> 5511 </li> 5512 <li> 5513 <span class="entry_type_enum_name">HIGH_QUALITY</span> 5514 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 5515quality</p></span> 5516 </li> 5517 </ul> 5518 5519 </td> <!-- entry_type --> 5520 5521 <td class="entry_description"> 5522 <p>Operating mode of geometric 5523correction</p> 5524 </td> 5525 5526 <td class="entry_units"> 5527 </td> 5528 5529 <td class="entry_range"> 5530 </td> 5531 5532 <td class="entry_tags"> 5533 </td> 5534 5535 </tr> 5536 5537 5538 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5539 <!-- end of entry --> 5540 5541 5542 <tr class="entry" id="controls_android.geometric.strength"> 5543 <td class="entry_name" rowspan="1"> 5544 android.<wbr/>geometric.<wbr/>strength 5545 </td> 5546 <td class="entry_type"> 5547 <span class="entry_type_name">byte</span> 5548 5549 <span class="entry_type_visibility"> [system]</span> 5550 5551 5552 </td> <!-- entry_type --> 5553 5554 <td class="entry_description"> 5555 <p>Control the amount of shading correction 5556applied to the images</p> 5557 </td> 5558 5559 <td class="entry_units"> 5560 unitless: 1-10; 10 is full shading 5561 compensation 5562 </td> 5563 5564 <td class="entry_range"> 5565 </td> 5566 5567 <td class="entry_tags"> 5568 <ul class="entry_tags"> 5569 <li><a href="#tag_ADV">ADV</a></li> 5570 </ul> 5571 </td> 5572 5573 </tr> 5574 5575 5576 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5577 <!-- end of entry --> 5578 5579 5580 5581 <!-- end of kind --> 5582 </tbody> 5583 5584 <!-- end of section --> 5585 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr> 5586 5587 5588 <tr><td colspan="6" class="kind">controls</td></tr> 5589 5590 <thead class="entries_header"> 5591 <tr> 5592 <th class="th_name">Property Name</th> 5593 <th class="th_type">Type</th> 5594 <th class="th_description">Description</th> 5595 <th class="th_units">Units</th> 5596 <th class="th_range">Range</th> 5597 <th class="th_tags">Tags</th> 5598 </tr> 5599 </thead> 5600 5601 <tbody> 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 <tr class="entry" id="controls_android.hotPixel.mode"> 5613 <td class="entry_name" rowspan="1"> 5614 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode 5615 </td> 5616 <td class="entry_type"> 5617 <span class="entry_type_name entry_type_name_enum">byte</span> 5618 5619 <span class="entry_type_visibility"> [system]</span> 5620 5621 <ul class="entry_type_enum"> 5622 <li> 5623 <span class="entry_type_enum_name">OFF</span> 5624 <span class="entry_type_enum_notes"><p>No hot pixel correction can be 5625applied</p></span> 5626 </li> 5627 <li> 5628 <span class="entry_type_enum_name">FAST</span> 5629 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw 5630Bayer output</p></span> 5631 </li> 5632 <li> 5633 <span class="entry_type_enum_name">HIGH_QUALITY</span> 5634 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 5635quality</p></span> 5636 </li> 5637 </ul> 5638 5639 </td> <!-- entry_type --> 5640 5641 <td class="entry_description"> 5642 <p>Set operational mode for hot pixel 5643correction</p> 5644 </td> 5645 5646 <td class="entry_units"> 5647 </td> 5648 5649 <td class="entry_range"> 5650 </td> 5651 5652 <td class="entry_tags"> 5653 <ul class="entry_tags"> 5654 <li><a href="#tag_V1">V1</a></li> 5655 </ul> 5656 </td> 5657 5658 </tr> 5659 5660 5661 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5662 <!-- end of entry --> 5663 5664 5665 5666 <!-- end of kind --> 5667 </tbody> 5668 <tr><td colspan="6" class="kind">static</td></tr> 5669 5670 <thead class="entries_header"> 5671 <tr> 5672 <th class="th_name">Property Name</th> 5673 <th class="th_type">Type</th> 5674 <th class="th_description">Description</th> 5675 <th class="th_units">Units</th> 5676 <th class="th_range">Range</th> 5677 <th class="th_tags">Tags</th> 5678 </tr> 5679 </thead> 5680 5681 <tbody> 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 <tr class="entry" id="static_android.hotPixel.info.map"> 5695 <td class="entry_name" rowspan="1"> 5696 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map 5697 </td> 5698 <td class="entry_type"> 5699 <span class="entry_type_name">int32</span> 5700 <span class="entry_type_container">x</span> 5701 5702 <span class="entry_type_array"> 5703 2 x n 5704 </span> 5705 <span class="entry_type_visibility"> [system]</span> 5706 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div> 5707 5708 5709 </td> <!-- entry_type --> 5710 5711 <td class="entry_description"> 5712 <p>Location of hot/<wbr/>defective pixels on 5713sensor</p> 5714 </td> 5715 5716 <td class="entry_units"> 5717 </td> 5718 5719 <td class="entry_range"> 5720 </td> 5721 5722 <td class="entry_tags"> 5723 <ul class="entry_tags"> 5724 <li><a href="#tag_ADV">ADV</a></li> 5725 </ul> 5726 </td> 5727 5728 </tr> 5729 5730 5731 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5732 <!-- end of entry --> 5733 5734 5735 5736 5737 5738 5739 <!-- end of kind --> 5740 </tbody> 5741 <tr><td colspan="6" class="kind">dynamic</td></tr> 5742 5743 <thead class="entries_header"> 5744 <tr> 5745 <th class="th_name">Property Name</th> 5746 <th class="th_type">Type</th> 5747 <th class="th_description">Description</th> 5748 <th class="th_units">Units</th> 5749 <th class="th_range">Range</th> 5750 <th class="th_tags">Tags</th> 5751 </tr> 5752 </thead> 5753 5754 <tbody> 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 <tr class="entry" id="dynamic_android.hotPixel.mode"> 5766 <td class="entry_name" rowspan="1"> 5767 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode 5768 </td> 5769 <td class="entry_type"> 5770 <span class="entry_type_name entry_type_name_enum">byte</span> 5771 5772 <span class="entry_type_visibility"> [system]</span> 5773 5774 <ul class="entry_type_enum"> 5775 <li> 5776 <span class="entry_type_enum_name">OFF</span> 5777 <span class="entry_type_enum_notes"><p>No hot pixel correction can be 5778applied</p></span> 5779 </li> 5780 <li> 5781 <span class="entry_type_enum_name">FAST</span> 5782 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw 5783Bayer output</p></span> 5784 </li> 5785 <li> 5786 <span class="entry_type_enum_name">HIGH_QUALITY</span> 5787 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 5788quality</p></span> 5789 </li> 5790 </ul> 5791 5792 </td> <!-- entry_type --> 5793 5794 <td class="entry_description"> 5795 <p>Set operational mode for hot pixel 5796correction</p> 5797 </td> 5798 5799 <td class="entry_units"> 5800 </td> 5801 5802 <td class="entry_range"> 5803 </td> 5804 5805 <td class="entry_tags"> 5806 <ul class="entry_tags"> 5807 <li><a href="#tag_V1">V1</a></li> 5808 </ul> 5809 </td> 5810 5811 </tr> 5812 5813 5814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5815 <!-- end of entry --> 5816 5817 5818 5819 <!-- end of kind --> 5820 </tbody> 5821 5822 <!-- end of section --> 5823 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr> 5824 5825 5826 <tr><td colspan="6" class="kind">controls</td></tr> 5827 5828 <thead class="entries_header"> 5829 <tr> 5830 <th class="th_name">Property Name</th> 5831 <th class="th_type">Type</th> 5832 <th class="th_description">Description</th> 5833 <th class="th_units">Units</th> 5834 <th class="th_range">Range</th> 5835 <th class="th_tags">Tags</th> 5836 </tr> 5837 </thead> 5838 5839 <tbody> 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 <tr class="entry" id="controls_android.jpeg.gpsCoordinates"> 5851 <td class="entry_name" rowspan="1"> 5852 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates 5853 </td> 5854 <td class="entry_type"> 5855 <span class="entry_type_name">double</span> 5856 <span class="entry_type_container">x</span> 5857 5858 <span class="entry_type_array"> 5859 3 5860 </span> 5861 <span class="entry_type_visibility"> [public]</span> 5862 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div> 5863 5864 5865 </td> <!-- entry_type --> 5866 5867 <td class="entry_description"> 5868 <p>GPS coordinates to include in output JPEG 5869EXIF</p> 5870 </td> 5871 5872 <td class="entry_units"> 5873 </td> 5874 5875 <td class="entry_range"> 5876 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p> 5877 </td> 5878 5879 <td class="entry_tags"> 5880 <ul class="entry_tags"> 5881 <li><a href="#tag_BC">BC</a></li> 5882 </ul> 5883 </td> 5884 5885 </tr> 5886 5887 5888 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5889 <!-- end of entry --> 5890 5891 5892 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod"> 5893 <td class="entry_name" rowspan="1"> 5894 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method 5895 </td> 5896 <td class="entry_type"> 5897 <span class="entry_type_name">byte</span> 5898 5899 <span class="entry_type_visibility"> [public as string]</span> 5900 5901 5902 </td> <!-- entry_type --> 5903 5904 <td class="entry_description"> 5905 <p>32 characters describing GPS algorithm to 5906include in EXIF</p> 5907 </td> 5908 5909 <td class="entry_units"> 5910 UTF-8 null-terminated string 5911 </td> 5912 5913 <td class="entry_range"> 5914 </td> 5915 5916 <td class="entry_tags"> 5917 <ul class="entry_tags"> 5918 <li><a href="#tag_BC">BC</a></li> 5919 </ul> 5920 </td> 5921 5922 </tr> 5923 5924 5925 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5926 <!-- end of entry --> 5927 5928 5929 <tr class="entry" id="controls_android.jpeg.gpsTimestamp"> 5930 <td class="entry_name" rowspan="1"> 5931 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp 5932 </td> 5933 <td class="entry_type"> 5934 <span class="entry_type_name">int64</span> 5935 5936 <span class="entry_type_visibility"> [public]</span> 5937 5938 5939 </td> <!-- entry_type --> 5940 5941 <td class="entry_description"> 5942 <p>Time GPS fix was made to include in 5943EXIF</p> 5944 </td> 5945 5946 <td class="entry_units"> 5947 UTC in seconds since January 1,<wbr/> 1970 5948 </td> 5949 5950 <td class="entry_range"> 5951 </td> 5952 5953 <td class="entry_tags"> 5954 <ul class="entry_tags"> 5955 <li><a href="#tag_BC">BC</a></li> 5956 </ul> 5957 </td> 5958 5959 </tr> 5960 5961 5962 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 5963 <!-- end of entry --> 5964 5965 5966 <tr class="entry" id="controls_android.jpeg.orientation"> 5967 <td class="entry_name" rowspan="1"> 5968 android.<wbr/>jpeg.<wbr/>orientation 5969 </td> 5970 <td class="entry_type"> 5971 <span class="entry_type_name">int32</span> 5972 5973 <span class="entry_type_visibility"> [public]</span> 5974 5975 5976 </td> <!-- entry_type --> 5977 5978 <td class="entry_description"> 5979 <p>Orientation of JPEG image to 5980write</p> 5981 </td> 5982 5983 <td class="entry_units"> 5984 Degrees in multiples of 90 5985 </td> 5986 5987 <td class="entry_range"> 5988 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p> 5989 </td> 5990 5991 <td class="entry_tags"> 5992 <ul class="entry_tags"> 5993 <li><a href="#tag_BC">BC</a></li> 5994 </ul> 5995 </td> 5996 5997 </tr> 5998 5999 6000 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6001 <!-- end of entry --> 6002 6003 6004 <tr class="entry" id="controls_android.jpeg.quality"> 6005 <td class="entry_name" rowspan="3"> 6006 android.<wbr/>jpeg.<wbr/>quality 6007 </td> 6008 <td class="entry_type"> 6009 <span class="entry_type_name">byte</span> 6010 6011 <span class="entry_type_visibility"> [public]</span> 6012 6013 6014 </td> <!-- entry_type --> 6015 6016 <td class="entry_description"> 6017 <p>Compression quality of the final JPEG 6018image</p> 6019 </td> 6020 6021 <td class="entry_units"> 6022 </td> 6023 6024 <td class="entry_range"> 6025 <p>1-100; larger is higher quality</p> 6026 </td> 6027 6028 <td class="entry_tags"> 6029 <ul class="entry_tags"> 6030 <li><a href="#tag_BC">BC</a></li> 6031 </ul> 6032 </td> 6033 6034 </tr> 6035 <tr class="entries_header"> 6036 <th class="th_details" colspan="5">Details</th> 6037 </tr> 6038 <tr class="entry_cont"> 6039 <td class="entry_details" colspan="5"> 6040 <p>85-95 is typical usage range</p> 6041 </td> 6042 </tr> 6043 6044 6045 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6046 <!-- end of entry --> 6047 6048 6049 <tr class="entry" id="controls_android.jpeg.thumbnailQuality"> 6050 <td class="entry_name" rowspan="1"> 6051 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality 6052 </td> 6053 <td class="entry_type"> 6054 <span class="entry_type_name">byte</span> 6055 6056 <span class="entry_type_visibility"> [public]</span> 6057 6058 6059 </td> <!-- entry_type --> 6060 6061 <td class="entry_description"> 6062 <p>Compression quality of JPEG 6063thumbnail</p> 6064 </td> 6065 6066 <td class="entry_units"> 6067 </td> 6068 6069 <td class="entry_range"> 6070 <p>1-100; larger is higher quality</p> 6071 </td> 6072 6073 <td class="entry_tags"> 6074 <ul class="entry_tags"> 6075 <li><a href="#tag_BC">BC</a></li> 6076 </ul> 6077 </td> 6078 6079 </tr> 6080 6081 6082 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6083 <!-- end of entry --> 6084 6085 6086 <tr class="entry" id="controls_android.jpeg.thumbnailSize"> 6087 <td class="entry_name" rowspan="3"> 6088 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size 6089 </td> 6090 <td class="entry_type"> 6091 <span class="entry_type_name">int32</span> 6092 <span class="entry_type_container">x</span> 6093 6094 <span class="entry_type_array"> 6095 2 6096 </span> 6097 <span class="entry_type_visibility"> [public as size]</span> 6098 6099 6100 </td> <!-- entry_type --> 6101 6102 <td class="entry_description"> 6103 <p>Resolution of embedded JPEG thumbnail</p> 6104 </td> 6105 6106 <td class="entry_units"> 6107 </td> 6108 6109 <td class="entry_range"> 6110 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p> 6111 </td> 6112 6113 <td class="entry_tags"> 6114 <ul class="entry_tags"> 6115 <li><a href="#tag_BC">BC</a></li> 6116 </ul> 6117 </td> 6118 6119 </tr> 6120 <tr class="entries_header"> 6121 <th class="th_details" colspan="5">Details</th> 6122 </tr> 6123 <tr class="entry_cont"> 6124 <td class="entry_details" colspan="5"> 6125 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/> 6126but the captured JPEG will still be a valid image.<wbr/></p> 6127<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have 6128the same aspect ratio as the jpeg image.<wbr/></p> 6129 </td> 6130 </tr> 6131 6132 6133 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6134 <!-- end of entry --> 6135 6136 6137 6138 <!-- end of kind --> 6139 </tbody> 6140 <tr><td colspan="6" class="kind">static</td></tr> 6141 6142 <thead class="entries_header"> 6143 <tr> 6144 <th class="th_name">Property Name</th> 6145 <th class="th_type">Type</th> 6146 <th class="th_description">Description</th> 6147 <th class="th_units">Units</th> 6148 <th class="th_range">Range</th> 6149 <th class="th_tags">Tags</th> 6150 </tr> 6151 </thead> 6152 6153 <tbody> 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes"> 6165 <td class="entry_name" rowspan="3"> 6166 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes 6167 </td> 6168 <td class="entry_type"> 6169 <span class="entry_type_name">int32</span> 6170 <span class="entry_type_container">x</span> 6171 6172 <span class="entry_type_array"> 6173 2 x n 6174 </span> 6175 <span class="entry_type_visibility"> [public as size]</span> 6176 6177 6178 </td> <!-- entry_type --> 6179 6180 <td class="entry_description"> 6181 <p>Supported resolutions for the JPEG thumbnail</p> 6182 </td> 6183 6184 <td class="entry_units"> 6185 </td> 6186 6187 <td class="entry_range"> 6188 <p>Will include at least one valid resolution,<wbr/> plus 6189(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p> 6190 </td> 6191 6192 <td class="entry_tags"> 6193 <ul class="entry_tags"> 6194 <li><a href="#tag_BC">BC</a></li> 6195 </ul> 6196 </td> 6197 6198 </tr> 6199 <tr class="entries_header"> 6200 <th class="th_details" colspan="5">Details</th> 6201 </tr> 6202 <tr class="entry_cont"> 6203 <td class="entry_details" colspan="5"> 6204 <p>Below condiditions will be satisfied for this size list:</p> 6205<ul> 6206<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/> 6207If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li> 6208<li>The aspect ratio of the largest thumbnail size will be same as the 6209aspect ratio of largest size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/> 6210The largest size is defined as the size that has the largest pixel area 6211in a given size list.<wbr/></li> 6212<li>Each size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a> will have at least 6213one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/> 6214and vice versa.<wbr/></li> 6215<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li> 6216</ul> 6217 </td> 6218 </tr> 6219 6220 6221 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6222 <!-- end of entry --> 6223 6224 6225 <tr class="entry" id="static_android.jpeg.maxSize"> 6226 <td class="entry_name" rowspan="3"> 6227 android.<wbr/>jpeg.<wbr/>max<wbr/>Size 6228 </td> 6229 <td class="entry_type"> 6230 <span class="entry_type_name">int32</span> 6231 6232 <span class="entry_type_visibility"> [system]</span> 6233 6234 6235 </td> <!-- entry_type --> 6236 6237 <td class="entry_description"> 6238 <p>Maximum size in bytes for the compressed 6239JPEG buffer</p> 6240 </td> 6241 6242 <td class="entry_units"> 6243 </td> 6244 6245 <td class="entry_range"> 6246 <p>Must be large enough to fit any JPEG produced by 6247the camera</p> 6248 </td> 6249 6250 <td class="entry_tags"> 6251 </td> 6252 6253 </tr> 6254 <tr class="entries_header"> 6255 <th class="th_details" colspan="5">Details</th> 6256 </tr> 6257 <tr class="entry_cont"> 6258 <td class="entry_details" colspan="5"> 6259 <p>This is used for sizing the gralloc buffers for 6260JPEG</p> 6261 </td> 6262 </tr> 6263 6264 6265 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6266 <!-- end of entry --> 6267 6268 6269 6270 <!-- end of kind --> 6271 </tbody> 6272 <tr><td colspan="6" class="kind">dynamic</td></tr> 6273 6274 <thead class="entries_header"> 6275 <tr> 6276 <th class="th_name">Property Name</th> 6277 <th class="th_type">Type</th> 6278 <th class="th_description">Description</th> 6279 <th class="th_units">Units</th> 6280 <th class="th_range">Range</th> 6281 <th class="th_tags">Tags</th> 6282 </tr> 6283 </thead> 6284 6285 <tbody> 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates"> 6297 <td class="entry_name" rowspan="1"> 6298 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates 6299 </td> 6300 <td class="entry_type"> 6301 <span class="entry_type_name">double</span> 6302 <span class="entry_type_container">x</span> 6303 6304 <span class="entry_type_array"> 6305 3 6306 </span> 6307 <span class="entry_type_visibility"> [public]</span> 6308 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div> 6309 6310 6311 </td> <!-- entry_type --> 6312 6313 <td class="entry_description"> 6314 <p>GPS coordinates to include in output JPEG 6315EXIF</p> 6316 </td> 6317 6318 <td class="entry_units"> 6319 </td> 6320 6321 <td class="entry_range"> 6322 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p> 6323 </td> 6324 6325 <td class="entry_tags"> 6326 <ul class="entry_tags"> 6327 <li><a href="#tag_BC">BC</a></li> 6328 </ul> 6329 </td> 6330 6331 </tr> 6332 6333 6334 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6335 <!-- end of entry --> 6336 6337 6338 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod"> 6339 <td class="entry_name" rowspan="1"> 6340 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method 6341 </td> 6342 <td class="entry_type"> 6343 <span class="entry_type_name">byte</span> 6344 6345 <span class="entry_type_visibility"> [public as string]</span> 6346 6347 6348 </td> <!-- entry_type --> 6349 6350 <td class="entry_description"> 6351 <p>32 characters describing GPS algorithm to 6352include in EXIF</p> 6353 </td> 6354 6355 <td class="entry_units"> 6356 UTF-8 null-terminated string 6357 </td> 6358 6359 <td class="entry_range"> 6360 </td> 6361 6362 <td class="entry_tags"> 6363 <ul class="entry_tags"> 6364 <li><a href="#tag_BC">BC</a></li> 6365 </ul> 6366 </td> 6367 6368 </tr> 6369 6370 6371 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6372 <!-- end of entry --> 6373 6374 6375 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp"> 6376 <td class="entry_name" rowspan="1"> 6377 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp 6378 </td> 6379 <td class="entry_type"> 6380 <span class="entry_type_name">int64</span> 6381 6382 <span class="entry_type_visibility"> [public]</span> 6383 6384 6385 </td> <!-- entry_type --> 6386 6387 <td class="entry_description"> 6388 <p>Time GPS fix was made to include in 6389EXIF</p> 6390 </td> 6391 6392 <td class="entry_units"> 6393 UTC in seconds since January 1,<wbr/> 1970 6394 </td> 6395 6396 <td class="entry_range"> 6397 </td> 6398 6399 <td class="entry_tags"> 6400 <ul class="entry_tags"> 6401 <li><a href="#tag_BC">BC</a></li> 6402 </ul> 6403 </td> 6404 6405 </tr> 6406 6407 6408 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6409 <!-- end of entry --> 6410 6411 6412 <tr class="entry" id="dynamic_android.jpeg.orientation"> 6413 <td class="entry_name" rowspan="1"> 6414 android.<wbr/>jpeg.<wbr/>orientation 6415 </td> 6416 <td class="entry_type"> 6417 <span class="entry_type_name">int32</span> 6418 6419 <span class="entry_type_visibility"> [public]</span> 6420 6421 6422 </td> <!-- entry_type --> 6423 6424 <td class="entry_description"> 6425 <p>Orientation of JPEG image to 6426write</p> 6427 </td> 6428 6429 <td class="entry_units"> 6430 Degrees in multiples of 90 6431 </td> 6432 6433 <td class="entry_range"> 6434 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p> 6435 </td> 6436 6437 <td class="entry_tags"> 6438 <ul class="entry_tags"> 6439 <li><a href="#tag_BC">BC</a></li> 6440 </ul> 6441 </td> 6442 6443 </tr> 6444 6445 6446 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6447 <!-- end of entry --> 6448 6449 6450 <tr class="entry" id="dynamic_android.jpeg.quality"> 6451 <td class="entry_name" rowspan="3"> 6452 android.<wbr/>jpeg.<wbr/>quality 6453 </td> 6454 <td class="entry_type"> 6455 <span class="entry_type_name">byte</span> 6456 6457 <span class="entry_type_visibility"> [public]</span> 6458 6459 6460 </td> <!-- entry_type --> 6461 6462 <td class="entry_description"> 6463 <p>Compression quality of the final JPEG 6464image</p> 6465 </td> 6466 6467 <td class="entry_units"> 6468 </td> 6469 6470 <td class="entry_range"> 6471 <p>1-100; larger is higher quality</p> 6472 </td> 6473 6474 <td class="entry_tags"> 6475 <ul class="entry_tags"> 6476 <li><a href="#tag_BC">BC</a></li> 6477 </ul> 6478 </td> 6479 6480 </tr> 6481 <tr class="entries_header"> 6482 <th class="th_details" colspan="5">Details</th> 6483 </tr> 6484 <tr class="entry_cont"> 6485 <td class="entry_details" colspan="5"> 6486 <p>85-95 is typical usage range</p> 6487 </td> 6488 </tr> 6489 6490 6491 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6492 <!-- end of entry --> 6493 6494 6495 <tr class="entry" id="dynamic_android.jpeg.size"> 6496 <td class="entry_name" rowspan="3"> 6497 android.<wbr/>jpeg.<wbr/>size 6498 </td> 6499 <td class="entry_type"> 6500 <span class="entry_type_name">int32</span> 6501 6502 <span class="entry_type_visibility"> [system]</span> 6503 6504 6505 </td> <!-- entry_type --> 6506 6507 <td class="entry_description"> 6508 <p>The size of the compressed JPEG image,<wbr/> in 6509bytes</p> 6510 </td> 6511 6512 <td class="entry_units"> 6513 </td> 6514 6515 <td class="entry_range"> 6516 <p>>= 0</p> 6517 </td> 6518 6519 <td class="entry_tags"> 6520 </td> 6521 6522 </tr> 6523 <tr class="entries_header"> 6524 <th class="th_details" colspan="5">Details</th> 6525 </tr> 6526 <tr class="entry_cont"> 6527 <td class="entry_details" colspan="5"> 6528 <p>If no JPEG output is produced for the request,<wbr/> 6529this must be 0.<wbr/></p> 6530<p>Otherwise,<wbr/> this describes the real size of the compressed 6531JPEG image placed in the output stream.<wbr/> More specifically,<wbr/> 6532if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture 6533has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from 6534the JPEG stream will be 1000000 bytes,<wbr/> of which the first 6535500000 make up the real data.<wbr/></p> 6536 </td> 6537 </tr> 6538 6539 6540 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6541 <!-- end of entry --> 6542 6543 6544 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality"> 6545 <td class="entry_name" rowspan="1"> 6546 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality 6547 </td> 6548 <td class="entry_type"> 6549 <span class="entry_type_name">byte</span> 6550 6551 <span class="entry_type_visibility"> [public]</span> 6552 6553 6554 </td> <!-- entry_type --> 6555 6556 <td class="entry_description"> 6557 <p>Compression quality of JPEG 6558thumbnail</p> 6559 </td> 6560 6561 <td class="entry_units"> 6562 </td> 6563 6564 <td class="entry_range"> 6565 <p>1-100; larger is higher quality</p> 6566 </td> 6567 6568 <td class="entry_tags"> 6569 <ul class="entry_tags"> 6570 <li><a href="#tag_BC">BC</a></li> 6571 </ul> 6572 </td> 6573 6574 </tr> 6575 6576 6577 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6578 <!-- end of entry --> 6579 6580 6581 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize"> 6582 <td class="entry_name" rowspan="3"> 6583 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size 6584 </td> 6585 <td class="entry_type"> 6586 <span class="entry_type_name">int32</span> 6587 <span class="entry_type_container">x</span> 6588 6589 <span class="entry_type_array"> 6590 2 6591 </span> 6592 <span class="entry_type_visibility"> [public as size]</span> 6593 6594 6595 </td> <!-- entry_type --> 6596 6597 <td class="entry_description"> 6598 <p>Resolution of embedded JPEG thumbnail</p> 6599 </td> 6600 6601 <td class="entry_units"> 6602 </td> 6603 6604 <td class="entry_range"> 6605 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p> 6606 </td> 6607 6608 <td class="entry_tags"> 6609 <ul class="entry_tags"> 6610 <li><a href="#tag_BC">BC</a></li> 6611 </ul> 6612 </td> 6613 6614 </tr> 6615 <tr class="entries_header"> 6616 <th class="th_details" colspan="5">Details</th> 6617 </tr> 6618 <tr class="entry_cont"> 6619 <td class="entry_details" colspan="5"> 6620 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/> 6621but the captured JPEG will still be a valid image.<wbr/></p> 6622<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have 6623the same aspect ratio as the jpeg image.<wbr/></p> 6624 </td> 6625 </tr> 6626 6627 6628 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6629 <!-- end of entry --> 6630 6631 6632 6633 <!-- end of kind --> 6634 </tbody> 6635 6636 <!-- end of section --> 6637 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr> 6638 6639 6640 <tr><td colspan="6" class="kind">controls</td></tr> 6641 6642 <thead class="entries_header"> 6643 <tr> 6644 <th class="th_name">Property Name</th> 6645 <th class="th_type">Type</th> 6646 <th class="th_description">Description</th> 6647 <th class="th_units">Units</th> 6648 <th class="th_range">Range</th> 6649 <th class="th_tags">Tags</th> 6650 </tr> 6651 </thead> 6652 6653 <tbody> 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 <tr class="entry" id="controls_android.lens.aperture"> 6665 <td class="entry_name" rowspan="3"> 6666 android.<wbr/>lens.<wbr/>aperture 6667 </td> 6668 <td class="entry_type"> 6669 <span class="entry_type_name">float</span> 6670 6671 <span class="entry_type_visibility"> [public]</span> 6672 6673 6674 </td> <!-- entry_type --> 6675 6676 <td class="entry_description"> 6677 <p>The ratio of lens focal length to the effective 6678aperture diameter.<wbr/></p> 6679 </td> 6680 6681 <td class="entry_units"> 6682 f-number (f/<wbr/>NNN) 6683 </td> 6684 6685 <td class="entry_range"> 6686 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p> 6687 </td> 6688 6689 <td class="entry_tags"> 6690 <ul class="entry_tags"> 6691 <li><a href="#tag_V1">V1</a></li> 6692 </ul> 6693 </td> 6694 6695 </tr> 6696 <tr class="entries_header"> 6697 <th class="th_details" colspan="5">Details</th> 6698 </tr> 6699 <tr class="entry_cont"> 6700 <td class="entry_details" colspan="5"> 6701 <p>This will only be supported on the camera devices that 6702have variable aperture lens.<wbr/> The aperture value can only be 6703one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p> 6704<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> 6705this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> 6706<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration 6707to achieve manual exposure control.<wbr/></p> 6708<p>The requested aperture value may take several frames to reach the 6709requested value; the camera device will report the current (intermediate) 6710aperture size in capture result metadata while the aperture is changing.<wbr/></p> 6711<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of 6712the ON modes,<wbr/> this will be overridden by the camera device 6713auto-exposure algorithm,<wbr/> the overridden values are then provided 6714back to the user in the corresponding result.<wbr/></p> 6715 </td> 6716 </tr> 6717 6718 6719 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6720 <!-- end of entry --> 6721 6722 6723 <tr class="entry" id="controls_android.lens.filterDensity"> 6724 <td class="entry_name" rowspan="3"> 6725 android.<wbr/>lens.<wbr/>filter<wbr/>Density 6726 </td> 6727 <td class="entry_type"> 6728 <span class="entry_type_name">float</span> 6729 6730 <span class="entry_type_visibility"> [public]</span> 6731 6732 6733 </td> <!-- entry_type --> 6734 6735 <td class="entry_description"> 6736 <p>State of lens neutral density filter(s).<wbr/></p> 6737 </td> 6738 6739 <td class="entry_units"> 6740 Steps of Exposure Value (EV).<wbr/> 6741 </td> 6742 6743 <td class="entry_range"> 6744 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p> 6745 </td> 6746 6747 <td class="entry_tags"> 6748 <ul class="entry_tags"> 6749 <li><a href="#tag_V1">V1</a></li> 6750 </ul> 6751 </td> 6752 6753 </tr> 6754 <tr class="entries_header"> 6755 <th class="th_details" colspan="5">Details</th> 6756 </tr> 6757 <tr class="entry_cont"> 6758 <td class="entry_details" colspan="5"> 6759 <p>This will not be supported on most camera devices.<wbr/> On devices 6760where this is supported,<wbr/> this may only be set to one of the 6761values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p> 6762<p>Lens filters are typically used to lower the amount of light the 6763sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV 6764step is the standard logarithmic representation,<wbr/> which are 6765non-negative,<wbr/> and inversely proportional to the amount of light 6766hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result 6767in no reduction of the incoming light,<wbr/> and setting this to 2 would 6768mean that the filter is set to reduce incoming light by two stops 6769(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p> 6770 </td> 6771 </tr> 6772 6773 6774 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6775 <!-- end of entry --> 6776 6777 6778 <tr class="entry" id="controls_android.lens.focalLength"> 6779 <td class="entry_name" rowspan="3"> 6780 android.<wbr/>lens.<wbr/>focal<wbr/>Length 6781 </td> 6782 <td class="entry_type"> 6783 <span class="entry_type_name">float</span> 6784 6785 <span class="entry_type_visibility"> [public]</span> 6786 6787 6788 </td> <!-- entry_type --> 6789 6790 <td class="entry_description"> 6791 <p>Lens optical zoom setting</p> 6792 </td> 6793 6794 <td class="entry_units"> 6795 focal length in mm 6796 </td> 6797 6798 <td class="entry_range"> 6799 <p>> 0</p> 6800 </td> 6801 6802 <td class="entry_tags"> 6803 <ul class="entry_tags"> 6804 <li><a href="#tag_V1">V1</a></li> 6805 </ul> 6806 </td> 6807 6808 </tr> 6809 <tr class="entries_header"> 6810 <th class="th_details" colspan="5">Details</th> 6811 </tr> 6812 <tr class="entry_cont"> 6813 <td class="entry_details" colspan="5"> 6814 <p>Will not be supported on most devices.<wbr/></p> 6815 </td> 6816 </tr> 6817 6818 6819 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6820 <!-- end of entry --> 6821 6822 6823 <tr class="entry" id="controls_android.lens.focusDistance"> 6824 <td class="entry_name" rowspan="3"> 6825 android.<wbr/>lens.<wbr/>focus<wbr/>Distance 6826 </td> 6827 <td class="entry_type"> 6828 <span class="entry_type_name">float</span> 6829 6830 <span class="entry_type_visibility"> [public]</span> 6831 6832 6833 </td> <!-- entry_type --> 6834 6835 <td class="entry_description"> 6836 <p>Distance to plane of sharpest focus,<wbr/> 6837measured from frontmost surface of the lens</p> 6838 </td> 6839 6840 <td class="entry_units"> 6841 diopters (1/<wbr/>m) 6842 </td> 6843 6844 <td class="entry_range"> 6845 <p>>= 0</p> 6846 </td> 6847 6848 <td class="entry_tags"> 6849 <ul class="entry_tags"> 6850 <li><a href="#tag_BC">BC</a></li> 6851 <li><a href="#tag_V1">V1</a></li> 6852 </ul> 6853 </td> 6854 6855 </tr> 6856 <tr class="entries_header"> 6857 <th class="th_details" colspan="5">Details</th> 6858 </tr> 6859 <tr class="entry_cont"> 6860 <td class="entry_details" colspan="5"> 6861 <p>0 = infinity focus.<wbr/> Used value should be clamped 6862to (0,<wbr/>minimum focus distance)</p> 6863 </td> 6864 </tr> 6865 6866 6867 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6868 <!-- end of entry --> 6869 6870 6871 <tr class="entry" id="controls_android.lens.opticalStabilizationMode"> 6872 <td class="entry_name" rowspan="3"> 6873 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode 6874 </td> 6875 <td class="entry_type"> 6876 <span class="entry_type_name entry_type_name_enum">byte</span> 6877 6878 <span class="entry_type_visibility"> [public]</span> 6879 6880 <ul class="entry_type_enum"> 6881 <li> 6882 <span class="entry_type_enum_name">OFF</span> 6883 </li> 6884 <li> 6885 <span class="entry_type_enum_name">ON</span> 6886 <span class="entry_type_enum_optional">optional</span> 6887 </li> 6888 </ul> 6889 6890 </td> <!-- entry_type --> 6891 6892 <td class="entry_description"> 6893 <p>Whether optical image stabilization is 6894enabled.<wbr/></p> 6895 </td> 6896 6897 <td class="entry_units"> 6898 </td> 6899 6900 <td class="entry_range"> 6901 <p>android.<wbr/>lens.<wbr/>available<wbr/>Optical<wbr/>Stabilization</p> 6902 </td> 6903 6904 <td class="entry_tags"> 6905 <ul class="entry_tags"> 6906 <li><a href="#tag_V1">V1</a></li> 6907 </ul> 6908 </td> 6909 6910 </tr> 6911 <tr class="entries_header"> 6912 <th class="th_details" colspan="5">Details</th> 6913 </tr> 6914 <tr class="entry_cont"> 6915 <td class="entry_details" colspan="5"> 6916 <p>Will not be supported on most devices.<wbr/></p> 6917 </td> 6918 </tr> 6919 6920 6921 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 6922 <!-- end of entry --> 6923 6924 6925 6926 <!-- end of kind --> 6927 </tbody> 6928 <tr><td colspan="6" class="kind">static</td></tr> 6929 6930 <thead class="entries_header"> 6931 <tr> 6932 <th class="th_name">Property Name</th> 6933 <th class="th_type">Type</th> 6934 <th class="th_description">Description</th> 6935 <th class="th_units">Units</th> 6936 <th class="th_range">Range</th> 6937 <th class="th_tags">Tags</th> 6938 </tr> 6939 </thead> 6940 6941 <tbody> 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 <tr class="entry" id="static_android.lens.info.availableApertures"> 6955 <td class="entry_name" rowspan="3"> 6956 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures 6957 </td> 6958 <td class="entry_type"> 6959 <span class="entry_type_name">float</span> 6960 <span class="entry_type_container">x</span> 6961 6962 <span class="entry_type_array"> 6963 n 6964 </span> 6965 <span class="entry_type_visibility"> [public]</span> 6966 6967 6968 </td> <!-- entry_type --> 6969 6970 <td class="entry_description"> 6971 <p>List of supported aperture 6972values.<wbr/></p> 6973 </td> 6974 6975 <td class="entry_units"> 6976 </td> 6977 6978 <td class="entry_range"> 6979 <p>one entry required,<wbr/> &> 0</p> 6980 </td> 6981 6982 <td class="entry_tags"> 6983 <ul class="entry_tags"> 6984 <li><a href="#tag_V1">V1</a></li> 6985 </ul> 6986 </td> 6987 6988 </tr> 6989 <tr class="entries_header"> 6990 <th class="th_details" colspan="5">Details</th> 6991 </tr> 6992 <tr class="entry_cont"> 6993 <td class="entry_details" colspan="5"> 6994 <p>If the camera device doesn't support variable apertures,<wbr/> 6995listed value will be the fixed aperture.<wbr/></p> 6996<p>If the camera device supports variable apertures,<wbr/> the aperture value 6997in this list will be sorted in ascending order.<wbr/></p> 6998 </td> 6999 </tr> 7000 7001 7002 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7003 <!-- end of entry --> 7004 7005 7006 <tr class="entry" id="static_android.lens.info.availableFilterDensities"> 7007 <td class="entry_name" rowspan="3"> 7008 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities 7009 </td> 7010 <td class="entry_type"> 7011 <span class="entry_type_name">float</span> 7012 <span class="entry_type_container">x</span> 7013 7014 <span class="entry_type_array"> 7015 n 7016 </span> 7017 <span class="entry_type_visibility"> [public]</span> 7018 7019 7020 </td> <!-- entry_type --> 7021 7022 <td class="entry_description"> 7023 <p>List of supported neutral density filter values for 7024<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p> 7025 </td> 7026 7027 <td class="entry_units"> 7028 </td> 7029 7030 <td class="entry_range"> 7031 <p>At least one value is required.<wbr/> Values must be >= 0.<wbr/></p> 7032 </td> 7033 7034 <td class="entry_tags"> 7035 <ul class="entry_tags"> 7036 <li><a href="#tag_V1">V1</a></li> 7037 </ul> 7038 </td> 7039 7040 </tr> 7041 <tr class="entries_header"> 7042 <th class="th_details" colspan="5">Details</th> 7043 </tr> 7044 <tr class="entry_cont"> 7045 <td class="entry_details" colspan="5"> 7046 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/> 7047availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this 7048list contains only the exact filter density values available on 7049this camera device.<wbr/></p> 7050 </td> 7051 </tr> 7052 7053 7054 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7055 <!-- end of entry --> 7056 7057 7058 <tr class="entry" id="static_android.lens.info.availableFocalLengths"> 7059 <td class="entry_name" rowspan="3"> 7060 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths 7061 </td> 7062 <td class="entry_type"> 7063 <span class="entry_type_name">float</span> 7064 <span class="entry_type_container">x</span> 7065 7066 <span class="entry_type_array"> 7067 n 7068 </span> 7069 <span class="entry_type_visibility"> [public]</span> 7070 <div class="entry_type_notes">the list of available focal lengths</div> 7071 7072 7073 </td> <!-- entry_type --> 7074 7075 <td class="entry_description"> 7076 <p>If fitted with optical zoom,<wbr/> what focal 7077lengths are available.<wbr/> If not,<wbr/> the static focal 7078length</p> 7079 </td> 7080 7081 <td class="entry_units"> 7082 </td> 7083 7084 <td class="entry_range"> 7085 <p>> 0</p> 7086 </td> 7087 7088 <td class="entry_tags"> 7089 <ul class="entry_tags"> 7090 <li><a href="#tag_BC">BC</a></li> 7091 <li><a href="#tag_V1">V1</a></li> 7092 </ul> 7093 </td> 7094 7095 </tr> 7096 <tr class="entries_header"> 7097 <th class="th_details" colspan="5">Details</th> 7098 </tr> 7099 <tr class="entry_cont"> 7100 <td class="entry_details" colspan="5"> 7101 <p>If optical zoom not supported,<wbr/> only one value 7102should be reported</p> 7103 </td> 7104 </tr> 7105 7106 7107 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7108 <!-- end of entry --> 7109 7110 7111 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization"> 7112 <td class="entry_name" rowspan="1"> 7113 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization 7114 </td> 7115 <td class="entry_type"> 7116 <span class="entry_type_name">byte</span> 7117 <span class="entry_type_container">x</span> 7118 7119 <span class="entry_type_array"> 7120 n 7121 </span> 7122 <span class="entry_type_visibility"> [public]</span> 7123 <div class="entry_type_notes">list of enums</div> 7124 7125 7126 </td> <!-- entry_type --> 7127 7128 <td class="entry_description"> 7129 <p>List of supported optical image 7130stabilization modes</p> 7131 </td> 7132 7133 <td class="entry_units"> 7134 </td> 7135 7136 <td class="entry_range"> 7137 </td> 7138 7139 <td class="entry_tags"> 7140 <ul class="entry_tags"> 7141 <li><a href="#tag_V1">V1</a></li> 7142 </ul> 7143 </td> 7144 7145 </tr> 7146 7147 7148 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7149 <!-- end of entry --> 7150 7151 7152 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap"> 7153 <td class="entry_name" rowspan="3"> 7154 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map 7155 </td> 7156 <td class="entry_type"> 7157 <span class="entry_type_name">float</span> 7158 <span class="entry_type_container">x</span> 7159 7160 <span class="entry_type_array"> 7161 2 x 3 x n x m 7162 </span> 7163 <span class="entry_type_visibility"> [system]</span> 7164 <div class="entry_type_notes">2D array of destination coordinate pairs for uniform grid points in source image,<wbr/> per color channel.<wbr/> Size in the range of 2x3x40x30</div> 7165 7166 7167 </td> <!-- entry_type --> 7168 7169 <td class="entry_description"> 7170 <p>A low-resolution map for correction of 7171geometric distortions and chromatic aberrations,<wbr/> per 7172color channel</p> 7173 </td> 7174 7175 <td class="entry_units"> 7176 </td> 7177 7178 <td class="entry_range"> 7179 <p>N,<wbr/> M >= 2</p> 7180 </td> 7181 7182 <td class="entry_tags"> 7183 <ul class="entry_tags"> 7184 <li><a href="#tag_DNG">DNG</a></li> 7185 </ul> 7186 </td> 7187 7188 </tr> 7189 <tr class="entries_header"> 7190 <th class="th_details" colspan="5">Details</th> 7191 </tr> 7192 <tr class="entry_cont"> 7193 <td class="entry_details" colspan="5"> 7194 <p>[DNG wants a function instead].<wbr/> What's easiest 7195for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/> 7196j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/> 7197j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array 7198entry being ( (X,<wbr/> Y)_<wbr/>r,<wbr/> (X,<wbr/> Y)_<wbr/>g,<wbr/> (X,<wbr/> Y)_<wbr/>b ) )</p> 7199 </td> 7200 </tr> 7201 7202 7203 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7204 <!-- end of entry --> 7205 7206 7207 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize"> 7208 <td class="entry_name" rowspan="1"> 7209 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size 7210 </td> 7211 <td class="entry_type"> 7212 <span class="entry_type_name">int32</span> 7213 <span class="entry_type_container">x</span> 7214 7215 <span class="entry_type_array"> 7216 2 7217 </span> 7218 <span class="entry_type_visibility"> [system as size]</span> 7219 <div class="entry_type_notes">width and height of geometric correction map</div> 7220 7221 7222 </td> <!-- entry_type --> 7223 7224 <td class="entry_description"> 7225 <p>Dimensions of geometric correction 7226map</p> 7227 </td> 7228 7229 <td class="entry_units"> 7230 </td> 7231 7232 <td class="entry_range"> 7233 <p>Both values >= 2</p> 7234 </td> 7235 7236 <td class="entry_tags"> 7237 <ul class="entry_tags"> 7238 <li><a href="#tag_V1">V1</a></li> 7239 </ul> 7240 </td> 7241 7242 </tr> 7243 7244 7245 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7246 <!-- end of entry --> 7247 7248 7249 <tr class="entry" id="static_android.lens.info.hyperfocalDistance"> 7250 <td class="entry_name" rowspan="3"> 7251 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance 7252 </td> 7253 <td class="entry_type"> 7254 <span class="entry_type_name">float</span> 7255 7256 <span class="entry_type_visibility"> [public]</span> 7257 7258 7259 </td> <!-- entry_type --> 7260 7261 <td class="entry_description"> 7262 <p>Hyperfocal distance for this lens; set to 72630 if fixed focus</p> 7264 </td> 7265 7266 <td class="entry_units"> 7267 diopters 7268 </td> 7269 7270 <td class="entry_range"> 7271 <p>>= 0</p> 7272 </td> 7273 7274 <td class="entry_tags"> 7275 <ul class="entry_tags"> 7276 <li><a href="#tag_BC">BC</a></li> 7277 </ul> 7278 </td> 7279 7280 </tr> 7281 <tr class="entries_header"> 7282 <th class="th_details" colspan="5">Details</th> 7283 </tr> 7284 <tr class="entry_cont"> 7285 <td class="entry_details" colspan="5"> 7286 <p>The hyperfocal distance is used for the old 7287API's 'fixed' setting</p> 7288 </td> 7289 </tr> 7290 7291 7292 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7293 <!-- end of entry --> 7294 7295 7296 <tr class="entry" id="static_android.lens.info.minimumFocusDistance"> 7297 <td class="entry_name" rowspan="3"> 7298 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance 7299 </td> 7300 <td class="entry_type"> 7301 <span class="entry_type_name">float</span> 7302 7303 <span class="entry_type_visibility"> [public]</span> 7304 7305 7306 </td> <!-- entry_type --> 7307 7308 <td class="entry_description"> 7309 <p>Shortest distance from frontmost surface 7310of the lens that can be focused correctly</p> 7311 </td> 7312 7313 <td class="entry_units"> 7314 diopters 7315 </td> 7316 7317 <td class="entry_range"> 7318 <p>>= 0</p> 7319 </td> 7320 7321 <td class="entry_tags"> 7322 <ul class="entry_tags"> 7323 <li><a href="#tag_V1">V1</a></li> 7324 </ul> 7325 </td> 7326 7327 </tr> 7328 <tr class="entries_header"> 7329 <th class="th_details" colspan="5">Details</th> 7330 </tr> 7331 <tr class="entry_cont"> 7332 <td class="entry_details" colspan="5"> 7333 <p>If the lens is fixed-focus,<wbr/> this should be 73340</p> 7335 </td> 7336 </tr> 7337 7338 7339 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7340 <!-- end of entry --> 7341 7342 7343 <tr class="entry" id="static_android.lens.info.shadingMapSize"> 7344 <td class="entry_name" rowspan="3"> 7345 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size 7346 </td> 7347 <td class="entry_type"> 7348 <span class="entry_type_name">int32</span> 7349 <span class="entry_type_container">x</span> 7350 7351 <span class="entry_type_array"> 7352 2 7353 </span> 7354 <span class="entry_type_visibility"> [public as size]</span> 7355 <div class="entry_type_notes">width and height of lens shading map provided by the HAL.<wbr/> (N x M)</div> 7356 7357 7358 </td> <!-- entry_type --> 7359 7360 <td class="entry_description"> 7361 <p>Dimensions of lens shading map.<wbr/></p> 7362 </td> 7363 7364 <td class="entry_units"> 7365 </td> 7366 7367 <td class="entry_range"> 7368 <p>Both values >= 1</p> 7369 </td> 7370 7371 <td class="entry_tags"> 7372 <ul class="entry_tags"> 7373 <li><a href="#tag_V1">V1</a></li> 7374 </ul> 7375 </td> 7376 7377 </tr> 7378 <tr class="entries_header"> 7379 <th class="th_details" colspan="5">Details</th> 7380 </tr> 7381 <tr class="entry_cont"> 7382 <td class="entry_details" colspan="5"> 7383 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and 7384must be smaller than 64x64.<wbr/></p> 7385 </td> 7386 </tr> 7387 7388 7389 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7390 <!-- end of entry --> 7391 7392 7393 7394 7395 7396 <tr class="entry" id="static_android.lens.facing"> 7397 <td class="entry_name" rowspan="1"> 7398 android.<wbr/>lens.<wbr/>facing 7399 </td> 7400 <td class="entry_type"> 7401 <span class="entry_type_name entry_type_name_enum">byte</span> 7402 7403 <span class="entry_type_visibility"> [public]</span> 7404 7405 <ul class="entry_type_enum"> 7406 <li> 7407 <span class="entry_type_enum_name">FRONT</span> 7408 </li> 7409 <li> 7410 <span class="entry_type_enum_name">BACK</span> 7411 </li> 7412 </ul> 7413 7414 </td> <!-- entry_type --> 7415 7416 <td class="entry_description"> 7417 <p>Direction the camera faces relative to 7418device screen</p> 7419 </td> 7420 7421 <td class="entry_units"> 7422 </td> 7423 7424 <td class="entry_range"> 7425 </td> 7426 7427 <td class="entry_tags"> 7428 </td> 7429 7430 </tr> 7431 7432 7433 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7434 <!-- end of entry --> 7435 7436 7437 <tr class="entry" id="static_android.lens.opticalAxisAngle"> 7438 <td class="entry_name" rowspan="3"> 7439 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle 7440 </td> 7441 <td class="entry_type"> 7442 <span class="entry_type_name">float</span> 7443 <span class="entry_type_container">x</span> 7444 7445 <span class="entry_type_array"> 7446 2 7447 </span> 7448 <span class="entry_type_visibility"> [system]</span> 7449 <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> 7450 7451 7452 </td> <!-- entry_type --> 7453 7454 <td class="entry_description"> 7455 <p>Relative angle of camera optical axis to the 7456perpendicular axis from the display</p> 7457 </td> 7458 7459 <td class="entry_units"> 7460 </td> 7461 7462 <td class="entry_range"> 7463 <p>[0-90) for first angle,<wbr/> [0-360) for second</p> 7464 </td> 7465 7466 <td class="entry_tags"> 7467 <ul class="entry_tags"> 7468 <li><a href="#tag_ADV">ADV</a></li> 7469 </ul> 7470 </td> 7471 7472 </tr> 7473 <tr class="entries_header"> 7474 <th class="th_details" colspan="5">Details</th> 7475 </tr> 7476 <tr class="entry_cont"> 7477 <td class="entry_details" colspan="5"> 7478 <p>Examples:</p> 7479<p>(0,<wbr/>0) means that the camera optical axis 7480is perpendicular to the display surface;</p> 7481<p>(45,<wbr/>0) means that the camera points 45 degrees up when 7482device is held upright;</p> 7483<p>(45,<wbr/>90) means the camera points 45 degrees to the right when 7484the device is held upright.<wbr/></p> 7485<p>Use FACING field to determine perpendicular outgoing 7486direction</p> 7487 </td> 7488 </tr> 7489 7490 7491 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7492 <!-- end of entry --> 7493 7494 7495 <tr class="entry" id="static_android.lens.position"> 7496 <td class="entry_name" rowspan="1"> 7497 android.<wbr/>lens.<wbr/>position 7498 </td> 7499 <td class="entry_type"> 7500 <span class="entry_type_name">float</span> 7501 <span class="entry_type_container">x</span> 7502 7503 <span class="entry_type_array"> 7504 3, location in mm, in the sensor coordinate 7505 system 7506 </span> 7507 <span class="entry_type_visibility"> [system]</span> 7508 7509 7510 </td> <!-- entry_type --> 7511 7512 <td class="entry_description"> 7513 <p>Coordinates of camera optical axis on 7514device</p> 7515 </td> 7516 7517 <td class="entry_units"> 7518 </td> 7519 7520 <td class="entry_range"> 7521 </td> 7522 7523 <td class="entry_tags"> 7524 <ul class="entry_tags"> 7525 <li><a href="#tag_V1">V1</a></li> 7526 </ul> 7527 </td> 7528 7529 </tr> 7530 7531 7532 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7533 <!-- end of entry --> 7534 7535 7536 7537 <!-- end of kind --> 7538 </tbody> 7539 <tr><td colspan="6" class="kind">dynamic</td></tr> 7540 7541 <thead class="entries_header"> 7542 <tr> 7543 <th class="th_name">Property Name</th> 7544 <th class="th_type">Type</th> 7545 <th class="th_description">Description</th> 7546 <th class="th_units">Units</th> 7547 <th class="th_range">Range</th> 7548 <th class="th_tags">Tags</th> 7549 </tr> 7550 </thead> 7551 7552 <tbody> 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 <tr class="entry" id="dynamic_android.lens.aperture"> 7564 <td class="entry_name" rowspan="3"> 7565 android.<wbr/>lens.<wbr/>aperture 7566 </td> 7567 <td class="entry_type"> 7568 <span class="entry_type_name">float</span> 7569 7570 <span class="entry_type_visibility"> [public]</span> 7571 7572 7573 </td> <!-- entry_type --> 7574 7575 <td class="entry_description"> 7576 <p>The ratio of lens focal length to the effective 7577aperture diameter.<wbr/></p> 7578 </td> 7579 7580 <td class="entry_units"> 7581 f-number (f/<wbr/>NNN) 7582 </td> 7583 7584 <td class="entry_range"> 7585 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p> 7586 </td> 7587 7588 <td class="entry_tags"> 7589 <ul class="entry_tags"> 7590 <li><a href="#tag_V1">V1</a></li> 7591 </ul> 7592 </td> 7593 7594 </tr> 7595 <tr class="entries_header"> 7596 <th class="th_details" colspan="5">Details</th> 7597 </tr> 7598 <tr class="entry_cont"> 7599 <td class="entry_details" colspan="5"> 7600 <p>This will only be supported on the camera devices that 7601have variable aperture lens.<wbr/> The aperture value can only be 7602one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p> 7603<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> 7604this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> 7605<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration 7606to achieve manual exposure control.<wbr/></p> 7607<p>The requested aperture value may take several frames to reach the 7608requested value; the camera device will report the current (intermediate) 7609aperture size in capture result metadata while the aperture is changing.<wbr/></p> 7610<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of 7611the ON modes,<wbr/> this will be overridden by the camera device 7612auto-exposure algorithm,<wbr/> the overridden values are then provided 7613back to the user in the corresponding result.<wbr/></p> 7614 </td> 7615 </tr> 7616 7617 7618 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7619 <!-- end of entry --> 7620 7621 7622 <tr class="entry" id="dynamic_android.lens.filterDensity"> 7623 <td class="entry_name" rowspan="3"> 7624 android.<wbr/>lens.<wbr/>filter<wbr/>Density 7625 </td> 7626 <td class="entry_type"> 7627 <span class="entry_type_name">float</span> 7628 7629 <span class="entry_type_visibility"> [public]</span> 7630 7631 7632 </td> <!-- entry_type --> 7633 7634 <td class="entry_description"> 7635 <p>State of lens neutral density filter(s).<wbr/></p> 7636 </td> 7637 7638 <td class="entry_units"> 7639 Steps of Exposure Value (EV).<wbr/> 7640 </td> 7641 7642 <td class="entry_range"> 7643 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p> 7644 </td> 7645 7646 <td class="entry_tags"> 7647 <ul class="entry_tags"> 7648 <li><a href="#tag_V1">V1</a></li> 7649 </ul> 7650 </td> 7651 7652 </tr> 7653 <tr class="entries_header"> 7654 <th class="th_details" colspan="5">Details</th> 7655 </tr> 7656 <tr class="entry_cont"> 7657 <td class="entry_details" colspan="5"> 7658 <p>This will not be supported on most camera devices.<wbr/> On devices 7659where this is supported,<wbr/> this may only be set to one of the 7660values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p> 7661<p>Lens filters are typically used to lower the amount of light the 7662sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV 7663step is the standard logarithmic representation,<wbr/> which are 7664non-negative,<wbr/> and inversely proportional to the amount of light 7665hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result 7666in no reduction of the incoming light,<wbr/> and setting this to 2 would 7667mean that the filter is set to reduce incoming light by two stops 7668(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p> 7669 </td> 7670 </tr> 7671 7672 7673 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7674 <!-- end of entry --> 7675 7676 7677 <tr class="entry" id="dynamic_android.lens.focalLength"> 7678 <td class="entry_name" rowspan="3"> 7679 android.<wbr/>lens.<wbr/>focal<wbr/>Length 7680 </td> 7681 <td class="entry_type"> 7682 <span class="entry_type_name">float</span> 7683 7684 <span class="entry_type_visibility"> [public]</span> 7685 7686 7687 </td> <!-- entry_type --> 7688 7689 <td class="entry_description"> 7690 <p>Lens optical zoom setting</p> 7691 </td> 7692 7693 <td class="entry_units"> 7694 focal length in mm 7695 </td> 7696 7697 <td class="entry_range"> 7698 <p>> 0</p> 7699 </td> 7700 7701 <td class="entry_tags"> 7702 <ul class="entry_tags"> 7703 <li><a href="#tag_BC">BC</a></li> 7704 </ul> 7705 </td> 7706 7707 </tr> 7708 <tr class="entries_header"> 7709 <th class="th_details" colspan="5">Details</th> 7710 </tr> 7711 <tr class="entry_cont"> 7712 <td class="entry_details" colspan="5"> 7713 <p>Will not be supported on most devices.<wbr/></p> 7714 </td> 7715 </tr> 7716 7717 7718 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7719 <!-- end of entry --> 7720 7721 7722 <tr class="entry" id="dynamic_android.lens.focusDistance"> 7723 <td class="entry_name" rowspan="3"> 7724 android.<wbr/>lens.<wbr/>focus<wbr/>Distance 7725 </td> 7726 <td class="entry_type"> 7727 <span class="entry_type_name">float</span> 7728 7729 <span class="entry_type_visibility"> [public]</span> 7730 7731 7732 </td> <!-- entry_type --> 7733 7734 <td class="entry_description"> 7735 <p>Distance to plane of sharpest focus,<wbr/> 7736measured from frontmost surface of the lens</p> 7737 </td> 7738 7739 <td class="entry_units"> 7740 diopters (1/<wbr/>m) 7741 </td> 7742 7743 <td class="entry_range"> 7744 <p>>= 0</p> 7745 </td> 7746 7747 <td class="entry_tags"> 7748 <ul class="entry_tags"> 7749 <li><a href="#tag_BC">BC</a></li> 7750 </ul> 7751 </td> 7752 7753 </tr> 7754 <tr class="entries_header"> 7755 <th class="th_details" colspan="5">Details</th> 7756 </tr> 7757 <tr class="entry_cont"> 7758 <td class="entry_details" colspan="5"> 7759 <p>Should be zero for fixed-focus cameras</p> 7760 </td> 7761 </tr> 7762 7763 7764 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7765 <!-- end of entry --> 7766 7767 7768 <tr class="entry" id="dynamic_android.lens.focusRange"> 7769 <td class="entry_name" rowspan="3"> 7770 android.<wbr/>lens.<wbr/>focus<wbr/>Range 7771 </td> 7772 <td class="entry_type"> 7773 <span class="entry_type_name">float</span> 7774 <span class="entry_type_container">x</span> 7775 7776 <span class="entry_type_array"> 7777 2 7778 </span> 7779 <span class="entry_type_visibility"> [public]</span> 7780 <div class="entry_type_notes">Range of scene distances that are in focus</div> 7781 7782 7783 </td> <!-- entry_type --> 7784 7785 <td class="entry_description"> 7786 <p>The range of scene distances that are in 7787sharp focus (depth of field)</p> 7788 </td> 7789 7790 <td class="entry_units"> 7791 pair of focus distances in diopters: (near,<wbr/> 7792 far) 7793 </td> 7794 7795 <td class="entry_range"> 7796 <p>>=0</p> 7797 </td> 7798 7799 <td class="entry_tags"> 7800 <ul class="entry_tags"> 7801 <li><a href="#tag_BC">BC</a></li> 7802 </ul> 7803 </td> 7804 7805 </tr> 7806 <tr class="entries_header"> 7807 <th class="th_details" colspan="5">Details</th> 7808 </tr> 7809 <tr class="entry_cont"> 7810 <td class="entry_details" colspan="5"> 7811 <p>If variable focus not supported,<wbr/> can still report 7812fixed depth of field range</p> 7813 </td> 7814 </tr> 7815 7816 7817 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7818 <!-- end of entry --> 7819 7820 7821 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode"> 7822 <td class="entry_name" rowspan="3"> 7823 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode 7824 </td> 7825 <td class="entry_type"> 7826 <span class="entry_type_name entry_type_name_enum">byte</span> 7827 7828 <span class="entry_type_visibility"> [public]</span> 7829 7830 <ul class="entry_type_enum"> 7831 <li> 7832 <span class="entry_type_enum_name">OFF</span> 7833 </li> 7834 <li> 7835 <span class="entry_type_enum_name">ON</span> 7836 <span class="entry_type_enum_optional">optional</span> 7837 </li> 7838 </ul> 7839 7840 </td> <!-- entry_type --> 7841 7842 <td class="entry_description"> 7843 <p>Whether optical image stabilization is 7844enabled.<wbr/></p> 7845 </td> 7846 7847 <td class="entry_units"> 7848 </td> 7849 7850 <td class="entry_range"> 7851 <p>android.<wbr/>lens.<wbr/>available<wbr/>Optical<wbr/>Stabilization</p> 7852 </td> 7853 7854 <td class="entry_tags"> 7855 <ul class="entry_tags"> 7856 <li><a href="#tag_V1">V1</a></li> 7857 </ul> 7858 </td> 7859 7860 </tr> 7861 <tr class="entries_header"> 7862 <th class="th_details" colspan="5">Details</th> 7863 </tr> 7864 <tr class="entry_cont"> 7865 <td class="entry_details" colspan="5"> 7866 <p>Will not be supported on most devices.<wbr/></p> 7867 </td> 7868 </tr> 7869 7870 7871 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7872 <!-- end of entry --> 7873 7874 7875 <tr class="entry" id="dynamic_android.lens.state"> 7876 <td class="entry_name" rowspan="1"> 7877 android.<wbr/>lens.<wbr/>state 7878 </td> 7879 <td class="entry_type"> 7880 <span class="entry_type_name entry_type_name_enum">byte</span> 7881 7882 <span class="entry_type_visibility"> [public]</span> 7883 7884 <ul class="entry_type_enum"> 7885 <li> 7886 <span class="entry_type_enum_name">STATIONARY</span> 7887 </li> 7888 <li> 7889 <span class="entry_type_enum_name">MOVING</span> 7890 </li> 7891 </ul> 7892 7893 </td> <!-- entry_type --> 7894 7895 <td class="entry_description"> 7896 <p>Current lens status</p> 7897 </td> 7898 7899 <td class="entry_units"> 7900 </td> 7901 7902 <td class="entry_range"> 7903 </td> 7904 7905 <td class="entry_tags"> 7906 <ul class="entry_tags"> 7907 <li><a href="#tag_V1">V1</a></li> 7908 </ul> 7909 </td> 7910 7911 </tr> 7912 7913 7914 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 7915 <!-- end of entry --> 7916 7917 7918 7919 <!-- end of kind --> 7920 </tbody> 7921 7922 <!-- end of section --> 7923 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr> 7924 7925 7926 <tr><td colspan="6" class="kind">controls</td></tr> 7927 7928 <thead class="entries_header"> 7929 <tr> 7930 <th class="th_name">Property Name</th> 7931 <th class="th_type">Type</th> 7932 <th class="th_description">Description</th> 7933 <th class="th_units">Units</th> 7934 <th class="th_range">Range</th> 7935 <th class="th_tags">Tags</th> 7936 </tr> 7937 </thead> 7938 7939 <tbody> 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 <tr class="entry" id="controls_android.noiseReduction.mode"> 7951 <td class="entry_name" rowspan="3"> 7952 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode 7953 </td> 7954 <td class="entry_type"> 7955 <span class="entry_type_name entry_type_name_enum">byte</span> 7956 7957 <span class="entry_type_visibility"> [public]</span> 7958 7959 <ul class="entry_type_enum"> 7960 <li> 7961 <span class="entry_type_enum_name">OFF</span> 7962 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span> 7963 </li> 7964 <li> 7965 <span class="entry_type_enum_name">FAST</span> 7966 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor 7967output</p></span> 7968 </li> 7969 <li> 7970 <span class="entry_type_enum_name">HIGH_QUALITY</span> 7971 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest 7972quality</p></span> 7973 </li> 7974 </ul> 7975 7976 </td> <!-- entry_type --> 7977 7978 <td class="entry_description"> 7979 <p>Mode of operation for the noise reduction 7980algorithm</p> 7981 </td> 7982 7983 <td class="entry_units"> 7984 </td> 7985 7986 <td class="entry_range"> 7987 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p> 7988 </td> 7989 7990 <td class="entry_tags"> 7991 <ul class="entry_tags"> 7992 <li><a href="#tag_V1">V1</a></li> 7993 </ul> 7994 </td> 7995 7996 </tr> 7997 <tr class="entries_header"> 7998 <th class="th_details" colspan="5">Details</th> 7999 </tr> 8000 <tr class="entry_cont"> 8001 <td class="entry_details" colspan="5"> 8002 <p>Noise filtering control.<wbr/> OFF means no noise reduction 8003will be applied by the HAL.<wbr/></p> 8004<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering 8005will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device 8006will use the highest-quality noise filtering algorithms,<wbr/> 8007even if it slows down capture rate.<wbr/> FAST means the camera device should not 8008slow down capture rate when applying noise filtering.<wbr/></p> 8009 </td> 8010 </tr> 8011 8012 8013 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8014 <!-- end of entry --> 8015 8016 8017 <tr class="entry" id="controls_android.noiseReduction.strength"> 8018 <td class="entry_name" rowspan="1"> 8019 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength 8020 </td> 8021 <td class="entry_type"> 8022 <span class="entry_type_name">byte</span> 8023 8024 <span class="entry_type_visibility"> [system]</span> 8025 8026 8027 </td> <!-- entry_type --> 8028 8029 <td class="entry_description"> 8030 <p>Control the amount of noise reduction 8031applied to the images</p> 8032 </td> 8033 8034 <td class="entry_units"> 8035 1-10; 10 is max noise reduction 8036 </td> 8037 8038 <td class="entry_range"> 8039 <p>1 - 10</p> 8040 </td> 8041 8042 <td class="entry_tags"> 8043 </td> 8044 8045 </tr> 8046 8047 8048 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8049 <!-- end of entry --> 8050 8051 8052 8053 <!-- end of kind --> 8054 </tbody> 8055 <tr><td colspan="6" class="kind">dynamic</td></tr> 8056 8057 <thead class="entries_header"> 8058 <tr> 8059 <th class="th_name">Property Name</th> 8060 <th class="th_type">Type</th> 8061 <th class="th_description">Description</th> 8062 <th class="th_units">Units</th> 8063 <th class="th_range">Range</th> 8064 <th class="th_tags">Tags</th> 8065 </tr> 8066 </thead> 8067 8068 <tbody> 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 <tr class="entry" id="dynamic_android.noiseReduction.mode"> 8080 <td class="entry_name" rowspan="3"> 8081 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode 8082 </td> 8083 <td class="entry_type"> 8084 <span class="entry_type_name entry_type_name_enum">byte</span> 8085 8086 <span class="entry_type_visibility"> [public]</span> 8087 8088 <ul class="entry_type_enum"> 8089 <li> 8090 <span class="entry_type_enum_name">OFF</span> 8091 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span> 8092 </li> 8093 <li> 8094 <span class="entry_type_enum_name">FAST</span> 8095 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor 8096output</p></span> 8097 </li> 8098 <li> 8099 <span class="entry_type_enum_name">HIGH_QUALITY</span> 8100 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest 8101quality</p></span> 8102 </li> 8103 </ul> 8104 8105 </td> <!-- entry_type --> 8106 8107 <td class="entry_description"> 8108 <p>Mode of operation for the noise reduction 8109algorithm</p> 8110 </td> 8111 8112 <td class="entry_units"> 8113 </td> 8114 8115 <td class="entry_range"> 8116 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p> 8117 </td> 8118 8119 <td class="entry_tags"> 8120 <ul class="entry_tags"> 8121 <li><a href="#tag_V1">V1</a></li> 8122 </ul> 8123 </td> 8124 8125 </tr> 8126 <tr class="entries_header"> 8127 <th class="th_details" colspan="5">Details</th> 8128 </tr> 8129 <tr class="entry_cont"> 8130 <td class="entry_details" colspan="5"> 8131 <p>Noise filtering control.<wbr/> OFF means no noise reduction 8132will be applied by the HAL.<wbr/></p> 8133<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering 8134will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device 8135will use the highest-quality noise filtering algorithms,<wbr/> 8136even if it slows down capture rate.<wbr/> FAST means the camera device should not 8137slow down capture rate when applying noise filtering.<wbr/></p> 8138 </td> 8139 </tr> 8140 8141 8142 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8143 <!-- end of entry --> 8144 8145 8146 8147 <!-- end of kind --> 8148 </tbody> 8149 8150 <!-- end of section --> 8151 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr> 8152 8153 8154 <tr><td colspan="6" class="kind">static</td></tr> 8155 8156 <thead class="entries_header"> 8157 <tr> 8158 <th class="th_name">Property Name</th> 8159 <th class="th_type">Type</th> 8160 <th class="th_description">Description</th> 8161 <th class="th_units">Units</th> 8162 <th class="th_range">Range</th> 8163 <th class="th_tags">Tags</th> 8164 </tr> 8165 </thead> 8166 8167 <tbody> 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 <tr class="entry" id="static_android.quirks.meteringCropRegion"> 8179 <td class="entry_name" rowspan="3"> 8180 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region 8181 </td> 8182 <td class="entry_type"> 8183 <span class="entry_type_name">byte</span> 8184 8185 <span class="entry_type_visibility"> [system]</span> 8186 8187 8188 </td> <!-- entry_type --> 8189 8190 <td class="entry_description"> 8191 <p>If set to 1,<wbr/> the camera service does not 8192scale 'normalized' coordinates with respect to the crop 8193region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region 8194and output (face rectangles).<wbr/></p> 8195 </td> 8196 8197 <td class="entry_units"> 8198 </td> 8199 8200 <td class="entry_range"> 8201 </td> 8202 8203 <td class="entry_tags"> 8204 </td> 8205 8206 </tr> 8207 <tr class="entries_header"> 8208 <th class="th_details" colspan="5">Details</th> 8209 </tr> 8210 <tr class="entry_cont"> 8211 <td class="entry_details" colspan="5"> 8212 <p>Normalized coordinates refer to those in the 8213(-1000,<wbr/>1000) range mentioned in the 8214android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p> 8215<p>HAL implementations should instead always use and emit 8216sensor array-relative coordinates for all region data.<wbr/> Does 8217not need to be listed in static metadata.<wbr/> Support will be 8218removed in future versions of camera service.<wbr/></p> 8219 </td> 8220 </tr> 8221 8222 8223 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8224 <!-- end of entry --> 8225 8226 8227 <tr class="entry" id="static_android.quirks.triggerAfWithAuto"> 8228 <td class="entry_name" rowspan="3"> 8229 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto 8230 </td> 8231 <td class="entry_type"> 8232 <span class="entry_type_name">byte</span> 8233 8234 <span class="entry_type_visibility"> [system]</span> 8235 8236 8237 </td> <!-- entry_type --> 8238 8239 <td class="entry_description"> 8240 <p>If set to 1,<wbr/> then the camera service always 8241switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF 8242trigger.<wbr/></p> 8243 </td> 8244 8245 <td class="entry_units"> 8246 </td> 8247 8248 <td class="entry_range"> 8249 </td> 8250 8251 <td class="entry_tags"> 8252 </td> 8253 8254 </tr> 8255 <tr class="entries_header"> 8256 <th class="th_details" colspan="5">Details</th> 8257 </tr> 8258 <tr class="entry_cont"> 8259 <td class="entry_details" colspan="5"> 8260 <p>HAL implementations should implement AF trigger 8261modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and 8262CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does 8263not need to be listed in static metadata.<wbr/> Support will be 8264removed in future versions of camera service</p> 8265 </td> 8266 </tr> 8267 8268 8269 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8270 <!-- end of entry --> 8271 8272 8273 <tr class="entry" id="static_android.quirks.useZslFormat"> 8274 <td class="entry_name" rowspan="3"> 8275 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format 8276 </td> 8277 <td class="entry_type"> 8278 <span class="entry_type_name">byte</span> 8279 8280 <span class="entry_type_visibility"> [system]</span> 8281 8282 8283 </td> <!-- entry_type --> 8284 8285 <td class="entry_description"> 8286 <p>If set to 1,<wbr/> the camera service uses 8287CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of 8288HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero 8289shutter lag stream</p> 8290 </td> 8291 8292 <td class="entry_units"> 8293 </td> 8294 8295 <td class="entry_range"> 8296 </td> 8297 8298 <td class="entry_tags"> 8299 </td> 8300 8301 </tr> 8302 <tr class="entries_header"> 8303 <th class="th_details" colspan="5">Details</th> 8304 </tr> 8305 <tr class="entry_cont"> 8306 <td class="entry_details" colspan="5"> 8307 <p>HAL implementations should use gralloc usage flags 8308to determine that a stream will be used for 8309zero-shutter-lag,<wbr/> instead of relying on an explicit 8310format setting.<wbr/> Does not need to be listed in static 8311metadata.<wbr/> Support will be removed in future versions of 8312camera service.<wbr/></p> 8313 </td> 8314 </tr> 8315 8316 8317 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8318 <!-- end of entry --> 8319 8320 8321 <tr class="entry" id="static_android.quirks.usePartialResult"> 8322 <td class="entry_name" rowspan="3"> 8323 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result 8324 </td> 8325 <td class="entry_type"> 8326 <span class="entry_type_name">byte</span> 8327 8328 <span class="entry_type_visibility"> [hidden]</span> 8329 8330 8331 </td> <!-- entry_type --> 8332 8333 <td class="entry_description"> 8334 <p>If set to 1,<wbr/> the HAL will always split result 8335metadata for a single capture into multiple buffers,<wbr/> 8336returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p> 8337 </td> 8338 8339 <td class="entry_units"> 8340 </td> 8341 8342 <td class="entry_range"> 8343 </td> 8344 8345 <td class="entry_tags"> 8346 </td> 8347 8348 </tr> 8349 <tr class="entries_header"> 8350 <th class="th_details" colspan="5">Details</th> 8351 </tr> 8352 <tr class="entry_cont"> 8353 <td class="entry_details" colspan="5"> 8354 <p>Does not need to be listed in static 8355metadata.<wbr/> Support for partial results will be reworked in 8356future versions of camera service.<wbr/> This quirk will stop 8357working at that point; DO NOT USE without careful 8358consideration of future support.<wbr/></p> 8359 </td> 8360 </tr> 8361 8362 8363 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8364 <!-- end of entry --> 8365 8366 8367 8368 <!-- end of kind --> 8369 </tbody> 8370 <tr><td colspan="6" class="kind">dynamic</td></tr> 8371 8372 <thead class="entries_header"> 8373 <tr> 8374 <th class="th_name">Property Name</th> 8375 <th class="th_type">Type</th> 8376 <th class="th_description">Description</th> 8377 <th class="th_units">Units</th> 8378 <th class="th_range">Range</th> 8379 <th class="th_tags">Tags</th> 8380 </tr> 8381 </thead> 8382 8383 <tbody> 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 <tr class="entry" id="dynamic_android.quirks.partialResult"> 8395 <td class="entry_name" rowspan="3"> 8396 android.<wbr/>quirks.<wbr/>partial<wbr/>Result 8397 </td> 8398 <td class="entry_type"> 8399 <span class="entry_type_name entry_type_name_enum">byte</span> 8400 8401 <span class="entry_type_visibility"> [hidden as boolean]</span> 8402 8403 <ul class="entry_type_enum"> 8404 <li> 8405 <span class="entry_type_enum_name">FINAL</span> 8406 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer 8407for this capture.<wbr/></p></span> 8408 </li> 8409 <li> 8410 <span class="entry_type_enum_name">PARTIAL</span> 8411 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this 8412capture.<wbr/> More result buffers for this capture will be sent 8413by the HAL,<wbr/> the last of which will be marked 8414FINAL.<wbr/></p></span> 8415 </li> 8416 </ul> 8417 8418 </td> <!-- entry_type --> 8419 8420 <td class="entry_description"> 8421 <p>Whether a result given to the framework is the 8422final one for the capture,<wbr/> or only a partial that contains a 8423subset of the full set of dynamic metadata 8424values.<wbr/></p> 8425 </td> 8426 8427 <td class="entry_units"> 8428 </td> 8429 8430 <td class="entry_range"> 8431 <p>Optional.<wbr/> Default value is FINAL.<wbr/></p> 8432 </td> 8433 8434 <td class="entry_tags"> 8435 </td> 8436 8437 </tr> 8438 <tr class="entries_header"> 8439 <th class="th_details" colspan="5">Details</th> 8440 </tr> 8441 <tr class="entry_cont"> 8442 <td class="entry_details" colspan="5"> 8443 <p>The entries in the result metadata buffers for a 8444single capture may not overlap,<wbr/> except for this entry.<wbr/> The 8445FINAL buffers must retain FIFO ordering relative to the 8446requests that generate them,<wbr/> so the FINAL buffer for frame 3 must 8447always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and 8448before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned 8449in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given 8450capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may 8451only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p> 8452 </td> 8453 </tr> 8454 8455 8456 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8457 <!-- end of entry --> 8458 8459 8460 8461 <!-- end of kind --> 8462 </tbody> 8463 8464 <!-- end of section --> 8465 <tr><td colspan="6" id="section_request" class="section">request</td></tr> 8466 8467 8468 <tr><td colspan="6" class="kind">controls</td></tr> 8469 8470 <thead class="entries_header"> 8471 <tr> 8472 <th class="th_name">Property Name</th> 8473 <th class="th_type">Type</th> 8474 <th class="th_description">Description</th> 8475 <th class="th_units">Units</th> 8476 <th class="th_range">Range</th> 8477 <th class="th_tags">Tags</th> 8478 </tr> 8479 </thead> 8480 8481 <tbody> 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 <tr class="entry" id="controls_android.request.frameCount"> 8493 <td class="entry_name" rowspan="1"> 8494 android.<wbr/>request.<wbr/>frame<wbr/>Count 8495 </td> 8496 <td class="entry_type"> 8497 <span class="entry_type_name">int32</span> 8498 8499 <span class="entry_type_visibility"> [system]</span> 8500 8501 8502 </td> <!-- entry_type --> 8503 8504 <td class="entry_description"> 8505 <p>A frame counter set by the framework.<wbr/> Must 8506be maintained unchanged in output frame.<wbr/> This value monotonically 8507increases with every new result (that is,<wbr/> each new result has a unique 8508frameCount value).<wbr/></p> 8509 </td> 8510 8511 <td class="entry_units"> 8512 incrementing integer 8513 </td> 8514 8515 <td class="entry_range"> 8516 <p>Any int</p> 8517 </td> 8518 8519 <td class="entry_tags"> 8520 </td> 8521 8522 </tr> 8523 8524 8525 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8526 <!-- end of entry --> 8527 8528 8529 <tr class="entry" id="controls_android.request.id"> 8530 <td class="entry_name" rowspan="1"> 8531 android.<wbr/>request.<wbr/>id 8532 </td> 8533 <td class="entry_type"> 8534 <span class="entry_type_name">int32</span> 8535 8536 <span class="entry_type_visibility"> [hidden]</span> 8537 8538 8539 </td> <!-- entry_type --> 8540 8541 <td class="entry_description"> 8542 <p>An application-specified ID for the current 8543request.<wbr/> Must be maintained unchanged in output 8544frame</p> 8545 </td> 8546 8547 <td class="entry_units"> 8548 arbitrary integer assigned by application 8549 </td> 8550 8551 <td class="entry_range"> 8552 <p>Any int</p> 8553 </td> 8554 8555 <td class="entry_tags"> 8556 <ul class="entry_tags"> 8557 <li><a href="#tag_V1">V1</a></li> 8558 </ul> 8559 </td> 8560 8561 </tr> 8562 8563 8564 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8565 <!-- end of entry --> 8566 8567 8568 <tr class="entry" id="controls_android.request.inputStreams"> 8569 <td class="entry_name" rowspan="3"> 8570 android.<wbr/>request.<wbr/>input<wbr/>Streams 8571 </td> 8572 <td class="entry_type"> 8573 <span class="entry_type_name">int32</span> 8574 <span class="entry_type_container">x</span> 8575 8576 <span class="entry_type_array"> 8577 n 8578 </span> 8579 <span class="entry_type_visibility"> [system]</span> 8580 8581 8582 </td> <!-- entry_type --> 8583 8584 <td class="entry_description"> 8585 <p>List which camera reprocess stream is used 8586for the source of reprocessing data.<wbr/></p> 8587 </td> 8588 8589 <td class="entry_units"> 8590 List of camera reprocess stream IDs 8591 </td> 8592 8593 <td class="entry_range"> 8594 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid 8595reprocess stream ID.<wbr/></p> 8596<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple 8597reprocess streams may be included in a single request; they 8598must be different scaled versions of the same image.<wbr/></p> 8599 </td> 8600 8601 <td class="entry_tags"> 8602 <ul class="entry_tags"> 8603 <li><a href="#tag_HAL2">HAL2</a></li> 8604 </ul> 8605 </td> 8606 8607 </tr> 8608 <tr class="entries_header"> 8609 <th class="th_details" colspan="5">Details</th> 8610 </tr> 8611 <tr class="entry_cont"> 8612 <td class="entry_details" colspan="5"> 8613 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> == 8614REPROCESS.<wbr/> Ignored otherwise</p> 8615 </td> 8616 </tr> 8617 8618 8619 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8620 <!-- end of entry --> 8621 8622 8623 <tr class="entry" id="controls_android.request.metadataMode"> 8624 <td class="entry_name" rowspan="1"> 8625 android.<wbr/>request.<wbr/>metadata<wbr/>Mode 8626 </td> 8627 <td class="entry_type"> 8628 <span class="entry_type_name entry_type_name_enum">byte</span> 8629 8630 <span class="entry_type_visibility"> [system]</span> 8631 8632 <ul class="entry_type_enum"> 8633 <li> 8634 <span class="entry_type_enum_name">NONE</span> 8635 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except 8636for application-bound buffer data.<wbr/> If no 8637application-bound streams exist,<wbr/> no frame should be 8638placed in the output frame queue.<wbr/> If such streams 8639exist,<wbr/> a frame should be placed on the output queue 8640with null metadata but with the necessary output buffer 8641information.<wbr/> Timestamp information should still be 8642included with any output stream buffers</p></span> 8643 </li> 8644 <li> 8645 <span class="entry_type_enum_name">FULL</span> 8646 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will 8647only be produced if they are separately 8648enabled</p></span> 8649 </li> 8650 </ul> 8651 8652 </td> <!-- entry_type --> 8653 8654 <td class="entry_description"> 8655 <p>How much metadata to produce on 8656output</p> 8657 </td> 8658 8659 <td class="entry_units"> 8660 </td> 8661 8662 <td class="entry_range"> 8663 </td> 8664 8665 <td class="entry_tags"> 8666 </td> 8667 8668 </tr> 8669 8670 8671 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8672 <!-- end of entry --> 8673 8674 8675 <tr class="entry" id="controls_android.request.outputStreams"> 8676 <td class="entry_name" rowspan="3"> 8677 android.<wbr/>request.<wbr/>output<wbr/>Streams 8678 </td> 8679 <td class="entry_type"> 8680 <span class="entry_type_name">int32</span> 8681 <span class="entry_type_container">x</span> 8682 8683 <span class="entry_type_array"> 8684 n 8685 </span> 8686 <span class="entry_type_visibility"> [system]</span> 8687 8688 8689 </td> <!-- entry_type --> 8690 8691 <td class="entry_description"> 8692 <p>Lists which camera output streams image data 8693from this capture must be sent to</p> 8694 </td> 8695 8696 <td class="entry_units"> 8697 List of camera stream IDs 8698 </td> 8699 8700 <td class="entry_range"> 8701 <p>List must only include streams that have been 8702created</p> 8703 </td> 8704 8705 <td class="entry_tags"> 8706 <ul class="entry_tags"> 8707 <li><a href="#tag_HAL2">HAL2</a></li> 8708 </ul> 8709 </td> 8710 8711 </tr> 8712 <tr class="entries_header"> 8713 <th class="th_details" colspan="5">Details</th> 8714 </tr> 8715 <tr class="entry_cont"> 8716 <td class="entry_details" colspan="5"> 8717 <p>If no output streams are listed,<wbr/> then the image 8718data should simply be discarded.<wbr/> The image data must 8719still be captured for metadata and statistics production,<wbr/> 8720and the lens and flash must operate as requested.<wbr/></p> 8721 </td> 8722 </tr> 8723 8724 8725 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8726 <!-- end of entry --> 8727 8728 8729 <tr class="entry" id="controls_android.request.type"> 8730 <td class="entry_name" rowspan="1"> 8731 android.<wbr/>request.<wbr/>type 8732 </td> 8733 <td class="entry_type"> 8734 <span class="entry_type_name entry_type_name_enum">byte</span> 8735 8736 <span class="entry_type_visibility"> [system]</span> 8737 8738 <ul class="entry_type_enum"> 8739 <li> 8740 <span class="entry_type_enum_name">CAPTURE</span> 8741 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/> 8742and process it according to the 8743settings</p></span> 8744 </li> 8745 <li> 8746 <span class="entry_type_enum_name">REPROCESS</span> 8747 <span class="entry_type_enum_notes"><p>Process previously captured data; the 8748android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the 8749source reprocessing stream.<wbr/> TODO: Mark dynamic metadata 8750needed for reprocessing with [RP]</p></span> 8751 </li> 8752 </ul> 8753 8754 </td> <!-- entry_type --> 8755 8756 <td class="entry_description"> 8757 <p>The type of the request; either CAPTURE or 8758REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p> 8759 </td> 8760 8761 <td class="entry_units"> 8762 </td> 8763 8764 <td class="entry_range"> 8765 </td> 8766 8767 <td class="entry_tags"> 8768 <ul class="entry_tags"> 8769 <li><a href="#tag_HAL2">HAL2</a></li> 8770 </ul> 8771 </td> 8772 8773 </tr> 8774 8775 8776 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8777 <!-- end of entry --> 8778 8779 8780 8781 <!-- end of kind --> 8782 </tbody> 8783 <tr><td colspan="6" class="kind">static</td></tr> 8784 8785 <thead class="entries_header"> 8786 <tr> 8787 <th class="th_name">Property Name</th> 8788 <th class="th_type">Type</th> 8789 <th class="th_description">Description</th> 8790 <th class="th_units">Units</th> 8791 <th class="th_range">Range</th> 8792 <th class="th_tags">Tags</th> 8793 </tr> 8794 </thead> 8795 8796 <tbody> 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 <tr class="entry" id="static_android.request.maxNumOutputStreams"> 8808 <td class="entry_name" rowspan="3"> 8809 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams 8810 </td> 8811 <td class="entry_type"> 8812 <span class="entry_type_name">int32</span> 8813 <span class="entry_type_container">x</span> 8814 8815 <span class="entry_type_array"> 8816 3 8817 </span> 8818 <span class="entry_type_visibility"> [public]</span> 8819 8820 8821 </td> <!-- entry_type --> 8822 8823 <td class="entry_description"> 8824 <p>How many output streams can be allocated at 8825the same time for each type of stream</p> 8826 </td> 8827 8828 <td class="entry_units"> 8829 The number of raw sensor streams; the number of 8830 processed,<wbr/> uncompressed streams; and the number of 8831 JPEG-compressed streams 8832 </td> 8833 8834 <td class="entry_range"> 8835 <p>>=1 for Raw and JPEG-compressed stream.<wbr/> >= 3 8836for processed,<wbr/> uncompressed streams</p> 8837 </td> 8838 8839 <td class="entry_tags"> 8840 <ul class="entry_tags"> 8841 <li><a href="#tag_BC">BC</a></li> 8842 </ul> 8843 </td> 8844 8845 </tr> 8846 <tr class="entries_header"> 8847 <th class="th_details" colspan="5">Details</th> 8848 </tr> 8849 <tr class="entry_cont"> 8850 <td class="entry_details" colspan="5"> 8851 <p>Video snapshot with preview callbacks requires 3 8852processed streams (preview,<wbr/> record,<wbr/> app callbacks) and 8853one JPEG stream (snapshot)</p> 8854 </td> 8855 </tr> 8856 8857 8858 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8859 <!-- end of entry --> 8860 8861 8862 <tr class="entry" id="static_android.request.maxNumReprocessStreams"> 8863 <td class="entry_name" rowspan="1"> 8864 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams 8865 </td> 8866 <td class="entry_type"> 8867 <span class="entry_type_name">int32</span> 8868 <span class="entry_type_container">x</span> 8869 8870 <span class="entry_type_array"> 8871 1 8872 </span> 8873 <span class="entry_type_visibility"> [system]</span> 8874 8875 8876 </td> <!-- entry_type --> 8877 8878 <td class="entry_description"> 8879 <p>How many reprocessing streams of any type 8880can be allocated at the same time</p> 8881 </td> 8882 8883 <td class="entry_units"> 8884 </td> 8885 8886 <td class="entry_range"> 8887 <p>>= 1</p> 8888 </td> 8889 8890 <td class="entry_tags"> 8891 </td> 8892 8893 </tr> 8894 8895 8896 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8897 <!-- end of entry --> 8898 8899 8900 8901 <!-- end of kind --> 8902 </tbody> 8903 <tr><td colspan="6" class="kind">dynamic</td></tr> 8904 8905 <thead class="entries_header"> 8906 <tr> 8907 <th class="th_name">Property Name</th> 8908 <th class="th_type">Type</th> 8909 <th class="th_description">Description</th> 8910 <th class="th_units">Units</th> 8911 <th class="th_range">Range</th> 8912 <th class="th_tags">Tags</th> 8913 </tr> 8914 </thead> 8915 8916 <tbody> 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 <tr class="entry" id="dynamic_android.request.frameCount"> 8928 <td class="entry_name" rowspan="3"> 8929 android.<wbr/>request.<wbr/>frame<wbr/>Count 8930 </td> 8931 <td class="entry_type"> 8932 <span class="entry_type_name">int32</span> 8933 8934 <span class="entry_type_visibility"> [public]</span> 8935 8936 8937 </td> <!-- entry_type --> 8938 8939 <td class="entry_description"> 8940 <p>A frame counter set by the framework.<wbr/> This value monotonically 8941increases with every new result (that is,<wbr/> each new result has a unique 8942frameCount value).<wbr/></p> 8943 </td> 8944 8945 <td class="entry_units"> 8946 count of frames 8947 </td> 8948 8949 <td class="entry_range"> 8950 <p>> 0</p> 8951 </td> 8952 8953 <td class="entry_tags"> 8954 </td> 8955 8956 </tr> 8957 <tr class="entries_header"> 8958 <th class="th_details" colspan="5">Details</th> 8959 </tr> 8960 <tr class="entry_cont"> 8961 <td class="entry_details" colspan="5"> 8962 <p>Reset on release()</p> 8963 </td> 8964 </tr> 8965 8966 8967 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 8968 <!-- end of entry --> 8969 8970 8971 <tr class="entry" id="dynamic_android.request.id"> 8972 <td class="entry_name" rowspan="1"> 8973 android.<wbr/>request.<wbr/>id 8974 </td> 8975 <td class="entry_type"> 8976 <span class="entry_type_name">int32</span> 8977 8978 <span class="entry_type_visibility"> [hidden]</span> 8979 8980 8981 </td> <!-- entry_type --> 8982 8983 <td class="entry_description"> 8984 <p>An application-specified ID for the current 8985request.<wbr/> Must be maintained unchanged in output 8986frame</p> 8987 </td> 8988 8989 <td class="entry_units"> 8990 arbitrary integer assigned by application 8991 </td> 8992 8993 <td class="entry_range"> 8994 <p>Any int</p> 8995 </td> 8996 8997 <td class="entry_tags"> 8998 <ul class="entry_tags"> 8999 <li><a href="#tag_V1">V1</a></li> 9000 </ul> 9001 </td> 9002 9003 </tr> 9004 9005 9006 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9007 <!-- end of entry --> 9008 9009 9010 <tr class="entry" id="dynamic_android.request.metadataMode"> 9011 <td class="entry_name" rowspan="1"> 9012 android.<wbr/>request.<wbr/>metadata<wbr/>Mode 9013 </td> 9014 <td class="entry_type"> 9015 <span class="entry_type_name entry_type_name_enum">byte</span> 9016 9017 <span class="entry_type_visibility"> [system]</span> 9018 9019 <ul class="entry_type_enum"> 9020 <li> 9021 <span class="entry_type_enum_name">NONE</span> 9022 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except 9023for application-bound buffer data.<wbr/> If no 9024application-bound streams exist,<wbr/> no frame should be 9025placed in the output frame queue.<wbr/> If such streams 9026exist,<wbr/> a frame should be placed on the output queue 9027with null metadata but with the necessary output buffer 9028information.<wbr/> Timestamp information should still be 9029included with any output stream buffers</p></span> 9030 </li> 9031 <li> 9032 <span class="entry_type_enum_name">FULL</span> 9033 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will 9034only be produced if they are separately 9035enabled</p></span> 9036 </li> 9037 </ul> 9038 9039 </td> <!-- entry_type --> 9040 9041 <td class="entry_description"> 9042 <p>How much metadata to produce on 9043output</p> 9044 </td> 9045 9046 <td class="entry_units"> 9047 </td> 9048 9049 <td class="entry_range"> 9050 </td> 9051 9052 <td class="entry_tags"> 9053 </td> 9054 9055 </tr> 9056 9057 9058 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9059 <!-- end of entry --> 9060 9061 9062 <tr class="entry" id="dynamic_android.request.outputStreams"> 9063 <td class="entry_name" rowspan="3"> 9064 android.<wbr/>request.<wbr/>output<wbr/>Streams 9065 </td> 9066 <td class="entry_type"> 9067 <span class="entry_type_name">int32</span> 9068 <span class="entry_type_container">x</span> 9069 9070 <span class="entry_type_array"> 9071 n 9072 </span> 9073 <span class="entry_type_visibility"> [system]</span> 9074 9075 9076 </td> <!-- entry_type --> 9077 9078 <td class="entry_description"> 9079 <p>Lists which camera output streams image data 9080from this capture must be sent to</p> 9081 </td> 9082 9083 <td class="entry_units"> 9084 List of camera stream IDs 9085 </td> 9086 9087 <td class="entry_range"> 9088 <p>List must only include streams that have been 9089created</p> 9090 </td> 9091 9092 <td class="entry_tags"> 9093 <ul class="entry_tags"> 9094 <li><a href="#tag_HAL2">HAL2</a></li> 9095 </ul> 9096 </td> 9097 9098 </tr> 9099 <tr class="entries_header"> 9100 <th class="th_details" colspan="5">Details</th> 9101 </tr> 9102 <tr class="entry_cont"> 9103 <td class="entry_details" colspan="5"> 9104 <p>If no output streams are listed,<wbr/> then the image 9105data should simply be discarded.<wbr/> The image data must 9106still be captured for metadata and statistics production,<wbr/> 9107and the lens and flash must operate as requested.<wbr/></p> 9108 </td> 9109 </tr> 9110 9111 9112 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9113 <!-- end of entry --> 9114 9115 9116 9117 <!-- end of kind --> 9118 </tbody> 9119 9120 <!-- end of section --> 9121 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr> 9122 9123 9124 <tr><td colspan="6" class="kind">controls</td></tr> 9125 9126 <thead class="entries_header"> 9127 <tr> 9128 <th class="th_name">Property Name</th> 9129 <th class="th_type">Type</th> 9130 <th class="th_description">Description</th> 9131 <th class="th_units">Units</th> 9132 <th class="th_range">Range</th> 9133 <th class="th_tags">Tags</th> 9134 </tr> 9135 </thead> 9136 9137 <tbody> 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 <tr class="entry" id="controls_android.scaler.cropRegion"> 9149 <td class="entry_name" rowspan="3"> 9150 android.<wbr/>scaler.<wbr/>crop<wbr/>Region 9151 </td> 9152 <td class="entry_type"> 9153 <span class="entry_type_name">int32</span> 9154 <span class="entry_type_container">x</span> 9155 9156 <span class="entry_type_array"> 9157 4 9158 </span> 9159 <span class="entry_type_visibility"> [public as rectangle]</span> 9160 9161 9162 </td> <!-- entry_type --> 9163 9164 <td class="entry_description"> 9165 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p> 9166<p>A rectangle with the top-level corner of (x,<wbr/>y) and size 9167(width,<wbr/> height).<wbr/> The region of the sensor that is used for 9168output.<wbr/> Each stream must use this rectangle to produce its 9169output,<wbr/> cropping to a smaller region if necessary to 9170maintain the stream's aspect ratio.<wbr/></p> 9171<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p> 9172 </td> 9173 9174 <td class="entry_units"> 9175 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region 9176 in pixels; (0,<wbr/>0) is top-left corner of 9177 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size 9178 </td> 9179 9180 <td class="entry_range"> 9181 </td> 9182 9183 <td class="entry_tags"> 9184 <ul class="entry_tags"> 9185 <li><a href="#tag_BC">BC</a></li> 9186 </ul> 9187 </td> 9188 9189 </tr> 9190 <tr class="entries_header"> 9191 <th class="th_details" colspan="5">Details</th> 9192 </tr> 9193 <tr class="entry_cont"> 9194 <td class="entry_details" colspan="5"> 9195 <p>Any additional per-stream cropping must be done to 9196maximize the final pixel area of the stream.<wbr/></p> 9197<p>For example,<wbr/> if the crop region is set to a 4:3 aspect 9198ratio,<wbr/> then 4:3 streams should use the exact crop 9199region.<wbr/> 16:9 streams should further crop vertically 9200(letterbox).<wbr/></p> 9201<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3 9202outputs should crop horizontally (pillarbox),<wbr/> and 16:9 9203streams should match exactly.<wbr/> These additional crops must 9204be centered within the crop region.<wbr/></p> 9205<p>The output streams must maintain square pixels at all 9206times,<wbr/> no matter what the relative aspect ratios of the 9207crop region and the stream are.<wbr/> Negative values for 9208corner are allowed for raw output if full pixel array is 9209larger than active pixel array.<wbr/> Width and height may be 9210rounded to nearest larger supportable width,<wbr/> especially 9211for raw output,<wbr/> where only a few fixed scales may be 9212possible.<wbr/> The width and height of the crop region cannot 9213be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/> 9214android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor( 9215activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/> 9216respectively.<wbr/></p> 9217 </td> 9218 </tr> 9219 9220 9221 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9222 <!-- end of entry --> 9223 9224 9225 9226 <!-- end of kind --> 9227 </tbody> 9228 <tr><td colspan="6" class="kind">static</td></tr> 9229 9230 <thead class="entries_header"> 9231 <tr> 9232 <th class="th_name">Property Name</th> 9233 <th class="th_type">Type</th> 9234 <th class="th_description">Description</th> 9235 <th class="th_units">Units</th> 9236 <th class="th_range">Range</th> 9237 <th class="th_tags">Tags</th> 9238 </tr> 9239 </thead> 9240 9241 <tbody> 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 <tr class="entry" id="static_android.scaler.availableFormats"> 9253 <td class="entry_name" rowspan="5"> 9254 android.<wbr/>scaler.<wbr/>available<wbr/>Formats 9255 </td> 9256 <td class="entry_type"> 9257 <span class="entry_type_name entry_type_name_enum">int32</span> 9258 <span class="entry_type_container">x</span> 9259 9260 <span class="entry_type_array"> 9261 n 9262 </span> 9263 <span class="entry_type_visibility"> [public as imageFormat]</span> 9264 9265 <ul class="entry_type_enum"> 9266 <li> 9267 <span class="entry_type_enum_name">RAW_SENSOR</span> 9268 <span class="entry_type_enum_optional">optional</span> 9269 <span class="entry_type_enum_value">0x20</span> 9270 </li> 9271 <li> 9272 <span class="entry_type_enum_name">YV12</span> 9273 <span class="entry_type_enum_optional">optional</span> 9274 <span class="entry_type_enum_value">0x32315659</span> 9275 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span> 9276 </li> 9277 <li> 9278 <span class="entry_type_enum_name">YCrCb_420_SP</span> 9279 <span class="entry_type_enum_optional">optional</span> 9280 <span class="entry_type_enum_value">0x11</span> 9281 <span class="entry_type_enum_notes"><p>NV21</p></span> 9282 </li> 9283 <li> 9284 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span> 9285 <span class="entry_type_enum_value">0x22</span> 9286 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span> 9287 </li> 9288 <li> 9289 <span class="entry_type_enum_name">YCbCr_420_888</span> 9290 <span class="entry_type_enum_value">0x23</span> 9291 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span> 9292 </li> 9293 <li> 9294 <span class="entry_type_enum_name">BLOB</span> 9295 <span class="entry_type_enum_value">0x21</span> 9296 <span class="entry_type_enum_notes"><p>JPEG format</p></span> 9297 </li> 9298 </ul> 9299 9300 </td> <!-- entry_type --> 9301 9302 <td class="entry_description"> 9303 <p>The list of image formats that are supported by this 9304camera device.<wbr/></p> 9305 </td> 9306 9307 <td class="entry_units"> 9308 </td> 9309 9310 <td class="entry_range"> 9311 </td> 9312 9313 <td class="entry_tags"> 9314 <ul class="entry_tags"> 9315 <li><a href="#tag_BC">BC</a></li> 9316 </ul> 9317 </td> 9318 9319 </tr> 9320 <tr class="entries_header"> 9321 <th class="th_details" colspan="5">Details</th> 9322 </tr> 9323 <tr class="entry_cont"> 9324 <td class="entry_details" colspan="5"> 9325 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p> 9326<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p> 9327 </td> 9328 </tr> 9329 9330 <tr class="entries_header"> 9331 <th class="th_details" colspan="5">HAL Implementation Details</th> 9332 </tr> 9333 <tr class="entry_cont"> 9334 <td class="entry_details" colspan="5"> 9335 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in 9336system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p> 9337<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform 9338gralloc module will select a format based on the usage flags provided 9339by the camera HAL device and the other endpoint of the stream.<wbr/> It is 9340usually used by preview and recording streams,<wbr/> where the application doesn't 9341need access the image data.<wbr/></p> 9342<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream 9343needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p> 9344<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p> 9345 </td> 9346 </tr> 9347 9348 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9349 <!-- end of entry --> 9350 9351 9352 <tr class="entry" id="static_android.scaler.availableJpegMinDurations"> 9353 <td class="entry_name" rowspan="3"> 9354 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations 9355 </td> 9356 <td class="entry_type"> 9357 <span class="entry_type_name">int64</span> 9358 <span class="entry_type_container">x</span> 9359 9360 <span class="entry_type_array"> 9361 n 9362 </span> 9363 <span class="entry_type_visibility"> [public]</span> 9364 9365 9366 </td> <!-- entry_type --> 9367 9368 <td class="entry_description"> 9369 <p>The minimum frame duration that is supported 9370for each resolution in availableJpegSizes.<wbr/> Should 9371correspond to the frame duration when only that JPEG 9372stream is active and captured in a burst,<wbr/> with all 9373processing set to FAST</p> 9374 </td> 9375 9376 <td class="entry_units"> 9377 </td> 9378 9379 <td class="entry_range"> 9380 </td> 9381 9382 <td class="entry_tags"> 9383 <ul class="entry_tags"> 9384 <li><a href="#tag_BC">BC</a></li> 9385 </ul> 9386 </td> 9387 9388 </tr> 9389 <tr class="entries_header"> 9390 <th class="th_details" colspan="5">Details</th> 9391 </tr> 9392 <tr class="entry_cont"> 9393 <td class="entry_details" colspan="5"> 9394 <p>When multiple streams are configured,<wbr/> the minimum 9395frame duration will be >= max(individual stream min 9396durations)</p> 9397 </td> 9398 </tr> 9399 9400 9401 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9402 <!-- end of entry --> 9403 9404 9405 <tr class="entry" id="static_android.scaler.availableJpegSizes"> 9406 <td class="entry_name" rowspan="5"> 9407 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes 9408 </td> 9409 <td class="entry_type"> 9410 <span class="entry_type_name">int32</span> 9411 <span class="entry_type_container">x</span> 9412 9413 <span class="entry_type_array"> 9414 n x 2 9415 </span> 9416 <span class="entry_type_visibility"> [public as size]</span> 9417 9418 9419 </td> <!-- entry_type --> 9420 9421 <td class="entry_description"> 9422 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p> 9423 </td> 9424 9425 <td class="entry_units"> 9426 </td> 9427 9428 <td class="entry_range"> 9429 </td> 9430 9431 <td class="entry_tags"> 9432 <ul class="entry_tags"> 9433 <li><a href="#tag_BC">BC</a></li> 9434 </ul> 9435 </td> 9436 9437 </tr> 9438 <tr class="entries_header"> 9439 <th class="th_details" colspan="5">Details</th> 9440 </tr> 9441 <tr class="entry_cont"> 9442 <td class="entry_details" colspan="5"> 9443 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support 9444sensor 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> 9445 </td> 9446 </tr> 9447 9448 <tr class="entries_header"> 9449 <th class="th_details" colspan="5">HAL Implementation Details</th> 9450 </tr> 9451 <tr class="entry_cont"> 9452 <td class="entry_details" colspan="5"> 9453 <p>The HAL must include sensor maximum resolution 9454(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/> 9455and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p> 9456 </td> 9457 </tr> 9458 9459 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9460 <!-- end of entry --> 9461 9462 9463 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom"> 9464 <td class="entry_name" rowspan="1"> 9465 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom 9466 </td> 9467 <td class="entry_type"> 9468 <span class="entry_type_name">float</span> 9469 9470 <span class="entry_type_visibility"> [public]</span> 9471 9472 9473 </td> <!-- entry_type --> 9474 9475 <td class="entry_description"> 9476 <p>The maximum ratio between active area width 9477and crop region width,<wbr/> or between active area height and 9478crop region height,<wbr/> if the crop region height is larger 9479than width</p> 9480 </td> 9481 9482 <td class="entry_units"> 9483 </td> 9484 9485 <td class="entry_range"> 9486 <p>>=1</p> 9487 </td> 9488 9489 <td class="entry_tags"> 9490 <ul class="entry_tags"> 9491 <li><a href="#tag_BC">BC</a></li> 9492 </ul> 9493 </td> 9494 9495 </tr> 9496 9497 9498 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9499 <!-- end of entry --> 9500 9501 9502 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations"> 9503 <td class="entry_name" rowspan="3"> 9504 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations 9505 </td> 9506 <td class="entry_type"> 9507 <span class="entry_type_name">int64</span> 9508 <span class="entry_type_container">x</span> 9509 9510 <span class="entry_type_array"> 9511 n 9512 </span> 9513 <span class="entry_type_visibility"> [public]</span> 9514 9515 9516 </td> <!-- entry_type --> 9517 9518 <td class="entry_description"> 9519 <p>The minimum frame duration that is supported 9520for each resolution in availableProcessedSizes.<wbr/> Should 9521correspond to the frame duration when only that processed 9522stream is active,<wbr/> with all processing set to 9523FAST</p> 9524 </td> 9525 9526 <td class="entry_units"> 9527 </td> 9528 9529 <td class="entry_range"> 9530 </td> 9531 9532 <td class="entry_tags"> 9533 <ul class="entry_tags"> 9534 <li><a href="#tag_BC">BC</a></li> 9535 </ul> 9536 </td> 9537 9538 </tr> 9539 <tr class="entries_header"> 9540 <th class="th_details" colspan="5">Details</th> 9541 </tr> 9542 <tr class="entry_cont"> 9543 <td class="entry_details" colspan="5"> 9544 <p>When multiple streams are configured,<wbr/> the minimum 9545frame duration will be >= max(individual stream min 9546durations)</p> 9547 </td> 9548 </tr> 9549 9550 9551 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9552 <!-- end of entry --> 9553 9554 9555 <tr class="entry" id="static_android.scaler.availableProcessedSizes"> 9556 <td class="entry_name" rowspan="5"> 9557 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes 9558 </td> 9559 <td class="entry_type"> 9560 <span class="entry_type_name">int32</span> 9561 <span class="entry_type_container">x</span> 9562 9563 <span class="entry_type_array"> 9564 n x 2 9565 </span> 9566 <span class="entry_type_visibility"> [public as size]</span> 9567 9568 9569 </td> <!-- entry_type --> 9570 9571 <td class="entry_description"> 9572 <p>The resolutions available for use with 9573processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and 9574platform opaque YUV/<wbr/>RGB streams to the GPU or video 9575encoders.<wbr/></p> 9576 </td> 9577 9578 <td class="entry_units"> 9579 </td> 9580 9581 <td class="entry_range"> 9582 </td> 9583 9584 <td class="entry_tags"> 9585 <ul class="entry_tags"> 9586 <li><a href="#tag_BC">BC</a></li> 9587 </ul> 9588 </td> 9589 9590 </tr> 9591 <tr class="entries_header"> 9592 <th class="th_details" colspan="5">Details</th> 9593 </tr> 9594 <tr class="entry_cont"> 9595 <td class="entry_details" colspan="5"> 9596 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p> 9597<p>For a given use case,<wbr/> the actual maximum supported resolution 9598may be lower than what is listed here,<wbr/> depending on the destination 9599Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/> 9600the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p) 9601smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448) 9602can provide.<wbr/></p> 9603<p>Please reference the documentation for the image data destination to 9604check if it limits the maximum size for image data.<wbr/></p> 9605 </td> 9606 </tr> 9607 9608 <tr class="entries_header"> 9609 <th class="th_details" colspan="5">HAL Implementation Details</th> 9610 </tr> 9611 <tr class="entry_cont"> 9612 <td class="entry_details" colspan="5"> 9613 <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/> 9614the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes 9615and each below resolution if it is smaller than or equal to the sensor 9616maximum resolution (if they are not listed in JPEG sizes already):</p> 9617<ul> 9618<li>240p (320 x 240)</li> 9619<li>480p (640 x 480)</li> 9620<li>720p (1280 x 720)</li> 9621<li>1080p (1920 x 1080)</li> 9622</ul> 9623<p>For LIMITED capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/> 9624the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p> 9625 </td> 9626 </tr> 9627 9628 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9629 <!-- end of entry --> 9630 9631 9632 <tr class="entry" id="static_android.scaler.availableRawMinDurations"> 9633 <td class="entry_name" rowspan="3"> 9634 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations 9635 </td> 9636 <td class="entry_type"> 9637 <span class="entry_type_name">int64</span> 9638 <span class="entry_type_container">x</span> 9639 9640 <span class="entry_type_array"> 9641 n 9642 </span> 9643 <span class="entry_type_visibility"> [system]</span> 9644 9645 9646 </td> <!-- entry_type --> 9647 9648 <td class="entry_description"> 9649 <p>The minimum frame duration that is supported 9650for each raw resolution in availableRawSizes.<wbr/> Should 9651correspond to the frame duration when only the raw stream 9652is active.<wbr/></p> 9653 </td> 9654 9655 <td class="entry_units"> 9656 </td> 9657 9658 <td class="entry_range"> 9659 </td> 9660 9661 <td class="entry_tags"> 9662 <ul class="entry_tags"> 9663 <li><a href="#tag_BC">BC</a></li> 9664 </ul> 9665 </td> 9666 9667 </tr> 9668 <tr class="entries_header"> 9669 <th class="th_details" colspan="5">Details</th> 9670 </tr> 9671 <tr class="entry_cont"> 9672 <td class="entry_details" colspan="5"> 9673 <p>When multiple streams are configured,<wbr/> the minimum 9674frame duration will be >= max(individual stream min 9675durations)</p> 9676 </td> 9677 </tr> 9678 9679 9680 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9681 <!-- end of entry --> 9682 9683 9684 <tr class="entry" id="static_android.scaler.availableRawSizes"> 9685 <td class="entry_name" rowspan="1"> 9686 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes 9687 </td> 9688 <td class="entry_type"> 9689 <span class="entry_type_name">int32</span> 9690 <span class="entry_type_container">x</span> 9691 9692 <span class="entry_type_array"> 9693 n x 2 9694 </span> 9695 <span class="entry_type_visibility"> [system as size]</span> 9696 9697 9698 </td> <!-- entry_type --> 9699 9700 <td class="entry_description"> 9701 <p>The resolutions available for use with raw 9702sensor output streams,<wbr/> listed as width,<wbr/> 9703height</p> 9704 </td> 9705 9706 <td class="entry_units"> 9707 </td> 9708 9709 <td class="entry_range"> 9710 <p>Must include: - sensor maximum resolution</p> 9711 </td> 9712 9713 <td class="entry_tags"> 9714 </td> 9715 9716 </tr> 9717 9718 9719 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9720 <!-- end of entry --> 9721 9722 9723 9724 <!-- end of kind --> 9725 </tbody> 9726 <tr><td colspan="6" class="kind">dynamic</td></tr> 9727 9728 <thead class="entries_header"> 9729 <tr> 9730 <th class="th_name">Property Name</th> 9731 <th class="th_type">Type</th> 9732 <th class="th_description">Description</th> 9733 <th class="th_units">Units</th> 9734 <th class="th_range">Range</th> 9735 <th class="th_tags">Tags</th> 9736 </tr> 9737 </thead> 9738 9739 <tbody> 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 <tr class="entry" id="dynamic_android.scaler.cropRegion"> 9751 <td class="entry_name" rowspan="3"> 9752 android.<wbr/>scaler.<wbr/>crop<wbr/>Region 9753 </td> 9754 <td class="entry_type"> 9755 <span class="entry_type_name">int32</span> 9756 <span class="entry_type_container">x</span> 9757 9758 <span class="entry_type_array"> 9759 4 9760 </span> 9761 <span class="entry_type_visibility"> [public as rectangle]</span> 9762 9763 9764 </td> <!-- entry_type --> 9765 9766 <td class="entry_description"> 9767 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p> 9768<p>A rectangle with the top-level corner of (x,<wbr/>y) and size 9769(width,<wbr/> height).<wbr/> The region of the sensor that is used for 9770output.<wbr/> Each stream must use this rectangle to produce its 9771output,<wbr/> cropping to a smaller region if necessary to 9772maintain the stream's aspect ratio.<wbr/></p> 9773<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p> 9774 </td> 9775 9776 <td class="entry_units"> 9777 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region 9778 in pixels; (0,<wbr/>0) is top-left corner of 9779 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size 9780 </td> 9781 9782 <td class="entry_range"> 9783 </td> 9784 9785 <td class="entry_tags"> 9786 <ul class="entry_tags"> 9787 <li><a href="#tag_BC">BC</a></li> 9788 </ul> 9789 </td> 9790 9791 </tr> 9792 <tr class="entries_header"> 9793 <th class="th_details" colspan="5">Details</th> 9794 </tr> 9795 <tr class="entry_cont"> 9796 <td class="entry_details" colspan="5"> 9797 <p>Any additional per-stream cropping must be done to 9798maximize the final pixel area of the stream.<wbr/></p> 9799<p>For example,<wbr/> if the crop region is set to a 4:3 aspect 9800ratio,<wbr/> then 4:3 streams should use the exact crop 9801region.<wbr/> 16:9 streams should further crop vertically 9802(letterbox).<wbr/></p> 9803<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3 9804outputs should crop horizontally (pillarbox),<wbr/> and 16:9 9805streams should match exactly.<wbr/> These additional crops must 9806be centered within the crop region.<wbr/></p> 9807<p>The output streams must maintain square pixels at all 9808times,<wbr/> no matter what the relative aspect ratios of the 9809crop region and the stream are.<wbr/> Negative values for 9810corner are allowed for raw output if full pixel array is 9811larger than active pixel array.<wbr/> Width and height may be 9812rounded to nearest larger supportable width,<wbr/> especially 9813for raw output,<wbr/> where only a few fixed scales may be 9814possible.<wbr/> The width and height of the crop region cannot 9815be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/> 9816android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor( 9817activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/> 9818respectively.<wbr/></p> 9819 </td> 9820 </tr> 9821 9822 9823 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9824 <!-- end of entry --> 9825 9826 9827 9828 <!-- end of kind --> 9829 </tbody> 9830 9831 <!-- end of section --> 9832 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr> 9833 9834 9835 <tr><td colspan="6" class="kind">controls</td></tr> 9836 9837 <thead class="entries_header"> 9838 <tr> 9839 <th class="th_name">Property Name</th> 9840 <th class="th_type">Type</th> 9841 <th class="th_description">Description</th> 9842 <th class="th_units">Units</th> 9843 <th class="th_range">Range</th> 9844 <th class="th_tags">Tags</th> 9845 </tr> 9846 </thead> 9847 9848 <tbody> 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 <tr class="entry" id="controls_android.sensor.exposureTime"> 9860 <td class="entry_name" rowspan="3"> 9861 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time 9862 </td> 9863 <td class="entry_type"> 9864 <span class="entry_type_name">int64</span> 9865 9866 <span class="entry_type_visibility"> [public]</span> 9867 9868 9869 </td> <!-- entry_type --> 9870 9871 <td class="entry_description"> 9872 <p>Duration each pixel is exposed to 9873light.<wbr/></p> 9874<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the 9875duration exposed to the nearest possible value (rather than expose longer).<wbr/></p> 9876 </td> 9877 9878 <td class="entry_units"> 9879 nanoseconds 9880 </td> 9881 9882 <td class="entry_range"> 9883 <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p> 9884 </td> 9885 9886 <td class="entry_tags"> 9887 <ul class="entry_tags"> 9888 <li><a href="#tag_V1">V1</a></li> 9889 </ul> 9890 </td> 9891 9892 </tr> 9893 <tr class="entries_header"> 9894 <th class="th_details" colspan="5">Details</th> 9895 </tr> 9896 <tr class="entry_cont"> 9897 <td class="entry_details" colspan="5"> 9898 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p> 9899 </td> 9900 </tr> 9901 9902 9903 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9904 <!-- end of entry --> 9905 9906 9907 <tr class="entry" id="controls_android.sensor.frameDuration"> 9908 <td class="entry_name" rowspan="3"> 9909 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration 9910 </td> 9911 <td class="entry_type"> 9912 <span class="entry_type_name">int64</span> 9913 9914 <span class="entry_type_visibility"> [public]</span> 9915 9916 9917 </td> <!-- entry_type --> 9918 9919 <td class="entry_description"> 9920 <p>Duration from start of frame exposure to 9921start of next frame exposure</p> 9922 </td> 9923 9924 <td class="entry_units"> 9925 nanoseconds 9926 </td> 9927 9928 <td class="entry_range"> 9929 <p>see <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/> 9930android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</p> 9931 </td> 9932 9933 <td class="entry_tags"> 9934 <ul class="entry_tags"> 9935 <li><a href="#tag_V1">V1</a></li> 9936 <li><a href="#tag_BC">BC</a></li> 9937 </ul> 9938 </td> 9939 9940 </tr> 9941 <tr class="entries_header"> 9942 <th class="th_details" colspan="5">Details</th> 9943 </tr> 9944 <tr class="entry_cont"> 9945 <td class="entry_details" colspan="5"> 9946 <p>Exposure time has priority,<wbr/> so duration is set to 9947max(duration,<wbr/> exposure time + overhead)</p> 9948 </td> 9949 </tr> 9950 9951 9952 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 9953 <!-- end of entry --> 9954 9955 9956 <tr class="entry" id="controls_android.sensor.sensitivity"> 9957 <td class="entry_name" rowspan="3"> 9958 android.<wbr/>sensor.<wbr/>sensitivity 9959 </td> 9960 <td class="entry_type"> 9961 <span class="entry_type_name">int32</span> 9962 9963 <span class="entry_type_visibility"> [public]</span> 9964 9965 9966 </td> <!-- entry_type --> 9967 9968 <td class="entry_description"> 9969 <p>Gain applied to image data.<wbr/> Must be 9970implemented through analog gain only if set to values 9971below 'maximum analog sensitivity'.<wbr/></p> 9972<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the 9973gain to the nearest possible value (rather than gain more).<wbr/></p> 9974 </td> 9975 9976 <td class="entry_units"> 9977 ISO arithmetic units 9978 </td> 9979 9980 <td class="entry_range"> 9981 <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p> 9982 </td> 9983 9984 <td class="entry_tags"> 9985 <ul class="entry_tags"> 9986 <li><a href="#tag_V1">V1</a></li> 9987 </ul> 9988 </td> 9989 9990 </tr> 9991 <tr class="entries_header"> 9992 <th class="th_details" colspan="5">Details</th> 9993 </tr> 9994 <tr class="entry_cont"> 9995 <td class="entry_details" colspan="5"> 9996 <p>ISO 12232:2006 REI method</p> 9997 </td> 9998 </tr> 9999 10000 10001 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10002 <!-- end of entry --> 10003 10004 10005 10006 <!-- end of kind --> 10007 </tbody> 10008 <tr><td colspan="6" class="kind">static</td></tr> 10009 10010 <thead class="entries_header"> 10011 <tr> 10012 <th class="th_name">Property Name</th> 10013 <th class="th_type">Type</th> 10014 <th class="th_description">Description</th> 10015 <th class="th_units">Units</th> 10016 <th class="th_range">Range</th> 10017 <th class="th_tags">Tags</th> 10018 </tr> 10019 </thead> 10020 10021 <tbody> 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 <tr class="entry" id="static_android.sensor.info.activeArraySize"> 10035 <td class="entry_name" rowspan="1"> 10036 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size 10037 </td> 10038 <td class="entry_type"> 10039 <span class="entry_type_name">int32</span> 10040 <span class="entry_type_container">x</span> 10041 10042 <span class="entry_type_array"> 10043 4 10044 </span> 10045 <span class="entry_type_visibility"> [public as rectangle]</span> 10046 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div> 10047 10048 10049 </td> <!-- entry_type --> 10050 10051 <td class="entry_description"> 10052 <p>Area of raw data which corresponds to only 10053active pixels; smaller or equal to 10054pixelArraySize.<wbr/></p> 10055 </td> 10056 10057 <td class="entry_units"> 10058 xmin,<wbr/> ymin,<wbr/> width,<wbr/> height.<wbr/> Top left of full 10059 pixel array is (0,<wbr/>0) 10060 </td> 10061 10062 <td class="entry_range"> 10063 </td> 10064 10065 <td class="entry_tags"> 10066 <ul class="entry_tags"> 10067 <li><a href="#tag_DNG">DNG</a></li> 10068 </ul> 10069 </td> 10070 10071 </tr> 10072 10073 10074 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10075 <!-- end of entry --> 10076 10077 10078 <tr class="entry" id="static_android.sensor.info.sensitivityRange"> 10079 <td class="entry_name" rowspan="1"> 10080 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range 10081 </td> 10082 <td class="entry_type"> 10083 <span class="entry_type_name">int32</span> 10084 <span class="entry_type_container">x</span> 10085 10086 <span class="entry_type_array"> 10087 2 10088 </span> 10089 <span class="entry_type_visibility"> [public]</span> 10090 <div class="entry_type_notes">Range of supported sensitivities</div> 10091 10092 10093 </td> <!-- entry_type --> 10094 10095 <td class="entry_description"> 10096 <p>Range of valid sensitivities</p> 10097 </td> 10098 10099 <td class="entry_units"> 10100 </td> 10101 10102 <td class="entry_range"> 10103 <p>Min <= 100,<wbr/> Max >= 1600</p> 10104 </td> 10105 10106 <td class="entry_tags"> 10107 <ul class="entry_tags"> 10108 <li><a href="#tag_BC">BC</a></li> 10109 <li><a href="#tag_V1">V1</a></li> 10110 </ul> 10111 </td> 10112 10113 </tr> 10114 10115 10116 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10117 <!-- end of entry --> 10118 10119 10120 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement"> 10121 <td class="entry_name" rowspan="1"> 10122 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement 10123 </td> 10124 <td class="entry_type"> 10125 <span class="entry_type_name entry_type_name_enum">byte</span> 10126 10127 <span class="entry_type_visibility"> [system]</span> 10128 10129 <ul class="entry_type_enum"> 10130 <li> 10131 <span class="entry_type_enum_name">RGGB</span> 10132 </li> 10133 <li> 10134 <span class="entry_type_enum_name">GRBG</span> 10135 </li> 10136 <li> 10137 <span class="entry_type_enum_name">GBRG</span> 10138 </li> 10139 <li> 10140 <span class="entry_type_enum_name">BGGR</span> 10141 </li> 10142 <li> 10143 <span class="entry_type_enum_name">RGB</span> 10144 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit 10145values for each pixel,<wbr/> instead of just 1 16-bit value 10146per pixel.<wbr/></p></span> 10147 </li> 10148 </ul> 10149 10150 </td> <!-- entry_type --> 10151 10152 <td class="entry_description"> 10153 <p>Arrangement of color filters on sensor; 10154represents the colors in the top-left 2x2 section of 10155the sensor,<wbr/> in reading order</p> 10156 </td> 10157 10158 <td class="entry_units"> 10159 </td> 10160 10161 <td class="entry_range"> 10162 </td> 10163 10164 <td class="entry_tags"> 10165 <ul class="entry_tags"> 10166 <li><a href="#tag_DNG">DNG</a></li> 10167 </ul> 10168 </td> 10169 10170 </tr> 10171 10172 10173 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10174 <!-- end of entry --> 10175 10176 10177 <tr class="entry" id="static_android.sensor.info.exposureTimeRange"> 10178 <td class="entry_name" rowspan="1"> 10179 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range 10180 </td> 10181 <td class="entry_type"> 10182 <span class="entry_type_name">int64</span> 10183 <span class="entry_type_container">x</span> 10184 10185 <span class="entry_type_array"> 10186 2 10187 </span> 10188 <span class="entry_type_visibility"> [public]</span> 10189 <div class="entry_type_notes">nanoseconds</div> 10190 10191 10192 </td> <!-- entry_type --> 10193 10194 <td class="entry_description"> 10195 <p>Range of valid exposure 10196times</p> 10197 </td> 10198 10199 <td class="entry_units"> 10200 </td> 10201 10202 <td class="entry_range"> 10203 <p>Min <= 100e3 (100 us),<wbr/> Max >= 30e9 (30 10204sec)</p> 10205 </td> 10206 10207 <td class="entry_tags"> 10208 <ul class="entry_tags"> 10209 <li><a href="#tag_V1">V1</a></li> 10210 </ul> 10211 </td> 10212 10213 </tr> 10214 10215 10216 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10217 <!-- end of entry --> 10218 10219 10220 <tr class="entry" id="static_android.sensor.info.maxFrameDuration"> 10221 <td class="entry_name" rowspan="3"> 10222 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration 10223 </td> 10224 <td class="entry_type"> 10225 <span class="entry_type_name">int64</span> 10226 10227 <span class="entry_type_visibility"> [public]</span> 10228 10229 10230 </td> <!-- entry_type --> 10231 10232 <td class="entry_description"> 10233 <p>Maximum possible frame duration (minimum frame 10234rate)</p> 10235 </td> 10236 10237 <td class="entry_units"> 10238 nanoseconds 10239 </td> 10240 10241 <td class="entry_range"> 10242 <p>>= 30e9</p> 10243 </td> 10244 10245 <td class="entry_tags"> 10246 <ul class="entry_tags"> 10247 <li><a href="#tag_BC">BC</a></li> 10248 <li><a href="#tag_V1">V1</a></li> 10249 </ul> 10250 </td> 10251 10252 </tr> 10253 <tr class="entries_header"> 10254 <th class="th_details" colspan="5">Details</th> 10255 </tr> 10256 <tr class="entry_cont"> 10257 <td class="entry_details" colspan="5"> 10258 <p>Minimum duration is a function of resolution,<wbr/> 10259processing settings.<wbr/> See 10260android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations 10261android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations 10262<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a></p> 10263 </td> 10264 </tr> 10265 10266 10267 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10268 <!-- end of entry --> 10269 10270 10271 <tr class="entry" id="static_android.sensor.info.physicalSize"> 10272 <td class="entry_name" rowspan="3"> 10273 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size 10274 </td> 10275 <td class="entry_type"> 10276 <span class="entry_type_name">float</span> 10277 <span class="entry_type_container">x</span> 10278 10279 <span class="entry_type_array"> 10280 2 10281 </span> 10282 <span class="entry_type_visibility"> [public]</span> 10283 <div class="entry_type_notes">width x height in millimeters</div> 10284 10285 10286 </td> <!-- entry_type --> 10287 10288 <td class="entry_description"> 10289 <p>The physical dimensions of the full pixel 10290array</p> 10291 </td> 10292 10293 <td class="entry_units"> 10294 </td> 10295 10296 <td class="entry_range"> 10297 </td> 10298 10299 <td class="entry_tags"> 10300 <ul class="entry_tags"> 10301 <li><a href="#tag_V1">V1</a></li> 10302 <li><a href="#tag_BC">BC</a></li> 10303 </ul> 10304 </td> 10305 10306 </tr> 10307 <tr class="entries_header"> 10308 <th class="th_details" colspan="5">Details</th> 10309 </tr> 10310 <tr class="entry_cont"> 10311 <td class="entry_details" colspan="5"> 10312 <p>Needed for FOV calculation for old API</p> 10313 </td> 10314 </tr> 10315 10316 10317 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10318 <!-- end of entry --> 10319 10320 10321 <tr class="entry" id="static_android.sensor.info.pixelArraySize"> 10322 <td class="entry_name" rowspan="3"> 10323 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size 10324 </td> 10325 <td class="entry_type"> 10326 <span class="entry_type_name">int32</span> 10327 <span class="entry_type_container">x</span> 10328 10329 <span class="entry_type_array"> 10330 2 10331 </span> 10332 <span class="entry_type_visibility"> [system as size]</span> 10333 10334 10335 </td> <!-- entry_type --> 10336 10337 <td class="entry_description"> 10338 <p>Dimensions of full pixel array,<wbr/> possibly 10339including black calibration pixels</p> 10340 </td> 10341 10342 <td class="entry_units"> 10343 </td> 10344 10345 <td class="entry_range"> 10346 </td> 10347 10348 <td class="entry_tags"> 10349 <ul class="entry_tags"> 10350 <li><a href="#tag_DNG">DNG</a></li> 10351 <li><a href="#tag_BC">BC</a></li> 10352 </ul> 10353 </td> 10354 10355 </tr> 10356 <tr class="entries_header"> 10357 <th class="th_details" colspan="5">Details</th> 10358 </tr> 10359 <tr class="entry_cont"> 10360 <td class="entry_details" colspan="5"> 10361 <p>Maximum output resolution for raw format must 10362match this in 10363android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Sizes<wbr/>Per<wbr/>Format</p> 10364 </td> 10365 </tr> 10366 10367 10368 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10369 <!-- end of entry --> 10370 10371 10372 <tr class="entry" id="static_android.sensor.info.whiteLevel"> 10373 <td class="entry_name" rowspan="3"> 10374 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level 10375 </td> 10376 <td class="entry_type"> 10377 <span class="entry_type_name">int32</span> 10378 10379 <span class="entry_type_visibility"> [system]</span> 10380 10381 10382 </td> <!-- entry_type --> 10383 10384 <td class="entry_description"> 10385 <p>Maximum raw value output by 10386sensor</p> 10387 </td> 10388 10389 <td class="entry_units"> 10390 </td> 10391 10392 <td class="entry_range"> 10393 <p>> 1024 (10-bit output)</p> 10394 </td> 10395 10396 <td class="entry_tags"> 10397 <ul class="entry_tags"> 10398 <li><a href="#tag_DNG">DNG</a></li> 10399 </ul> 10400 </td> 10401 10402 </tr> 10403 <tr class="entries_header"> 10404 <th class="th_details" colspan="5">Details</th> 10405 </tr> 10406 <tr class="entry_cont"> 10407 <td class="entry_details" colspan="5"> 10408 <p>Defines sensor bit depth (10-14 bits is 10409expected)</p> 10410 </td> 10411 </tr> 10412 10413 10414 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10415 <!-- end of entry --> 10416 10417 10418 10419 10420 10421 <tr class="entry" id="static_android.sensor.baseGainFactor"> 10422 <td class="entry_name" rowspan="1"> 10423 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor 10424 </td> 10425 <td class="entry_type"> 10426 <span class="entry_type_name">rational</span> 10427 10428 <span class="entry_type_visibility"> [public]</span> 10429 10430 10431 </td> <!-- entry_type --> 10432 10433 <td class="entry_description"> 10434 <p>Gain factor from electrons to raw units when 10435ISO=100</p> 10436 </td> 10437 10438 <td class="entry_units"> 10439 </td> 10440 10441 <td class="entry_range"> 10442 </td> 10443 10444 <td class="entry_tags"> 10445 <ul class="entry_tags"> 10446 <li><a href="#tag_V1">V1</a></li> 10447 <li><a href="#tag_FULL">FULL</a></li> 10448 </ul> 10449 </td> 10450 10451 </tr> 10452 10453 10454 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10455 <!-- end of entry --> 10456 10457 10458 <tr class="entry" id="static_android.sensor.blackLevelPattern"> 10459 <td class="entry_name" rowspan="3"> 10460 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern 10461 </td> 10462 <td class="entry_type"> 10463 <span class="entry_type_name">int32</span> 10464 <span class="entry_type_container">x</span> 10465 10466 <span class="entry_type_array"> 10467 4 10468 </span> 10469 <span class="entry_type_visibility"> [system]</span> 10470 <div class="entry_type_notes">2x2 raw count block</div> 10471 10472 10473 </td> <!-- entry_type --> 10474 10475 <td class="entry_description"> 10476 <p>A fixed black level offset for each of the 10477Bayer mosaic channels</p> 10478 </td> 10479 10480 <td class="entry_units"> 10481 </td> 10482 10483 <td class="entry_range"> 10484 <p>>= 0 each</p> 10485 </td> 10486 10487 <td class="entry_tags"> 10488 <ul class="entry_tags"> 10489 <li><a href="#tag_DNG">DNG</a></li> 10490 </ul> 10491 </td> 10492 10493 </tr> 10494 <tr class="entries_header"> 10495 <th class="th_details" colspan="5">Details</th> 10496 </tr> 10497 <tr class="entry_cont"> 10498 <td class="entry_details" colspan="5"> 10499 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel 10500tags</p> 10501 </td> 10502 </tr> 10503 10504 10505 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10506 <!-- end of entry --> 10507 10508 10509 <tr class="entry" id="static_android.sensor.calibrationTransform1"> 10510 <td class="entry_name" rowspan="1"> 10511 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1 10512 </td> 10513 <td class="entry_type"> 10514 <span class="entry_type_name">rational</span> 10515 <span class="entry_type_container">x</span> 10516 10517 <span class="entry_type_array"> 10518 9 10519 </span> 10520 <span class="entry_type_visibility"> [system]</span> 10521 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 10522 10523 10524 </td> <!-- entry_type --> 10525 10526 <td class="entry_description"> 10527 <p>Per-device calibration on top of color space 10528transform 1</p> 10529 </td> 10530 10531 <td class="entry_units"> 10532 </td> 10533 10534 <td class="entry_range"> 10535 </td> 10536 10537 <td class="entry_tags"> 10538 <ul class="entry_tags"> 10539 <li><a href="#tag_DNG">DNG</a></li> 10540 </ul> 10541 </td> 10542 10543 </tr> 10544 10545 10546 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10547 <!-- end of entry --> 10548 10549 10550 <tr class="entry" id="static_android.sensor.calibrationTransform2"> 10551 <td class="entry_name" rowspan="1"> 10552 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2 10553 </td> 10554 <td class="entry_type"> 10555 <span class="entry_type_name">rational</span> 10556 <span class="entry_type_container">x</span> 10557 10558 <span class="entry_type_array"> 10559 9 10560 </span> 10561 <span class="entry_type_visibility"> [system]</span> 10562 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 10563 10564 10565 </td> <!-- entry_type --> 10566 10567 <td class="entry_description"> 10568 <p>Per-device calibration on top of color space 10569transform 2</p> 10570 </td> 10571 10572 <td class="entry_units"> 10573 </td> 10574 10575 <td class="entry_range"> 10576 </td> 10577 10578 <td class="entry_tags"> 10579 <ul class="entry_tags"> 10580 <li><a href="#tag_DNG">DNG</a></li> 10581 </ul> 10582 </td> 10583 10584 </tr> 10585 10586 10587 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10588 <!-- end of entry --> 10589 10590 10591 <tr class="entry" id="static_android.sensor.colorTransform1"> 10592 <td class="entry_name" rowspan="3"> 10593 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1 10594 </td> 10595 <td class="entry_type"> 10596 <span class="entry_type_name">rational</span> 10597 <span class="entry_type_container">x</span> 10598 10599 <span class="entry_type_array"> 10600 9 10601 </span> 10602 <span class="entry_type_visibility"> [system]</span> 10603 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 10604 10605 10606 </td> <!-- entry_type --> 10607 10608 <td class="entry_description"> 10609 <p>Linear mapping from XYZ (D50) color space to 10610reference linear sensor color,<wbr/> for first reference 10611illuminant</p> 10612 </td> 10613 10614 <td class="entry_units"> 10615 </td> 10616 10617 <td class="entry_range"> 10618 </td> 10619 10620 <td class="entry_tags"> 10621 <ul class="entry_tags"> 10622 <li><a href="#tag_DNG">DNG</a></li> 10623 </ul> 10624 </td> 10625 10626 </tr> 10627 <tr class="entries_header"> 10628 <th class="th_details" colspan="5">Details</th> 10629 </tr> 10630 <tr class="entry_cont"> 10631 <td class="entry_details" colspan="5"> 10632 <p>Use as follows XYZ = inv(transform) * clip( (raw - 10633black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/> 10634At least in the simple case</p> 10635 </td> 10636 </tr> 10637 10638 10639 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10640 <!-- end of entry --> 10641 10642 10643 <tr class="entry" id="static_android.sensor.colorTransform2"> 10644 <td class="entry_name" rowspan="1"> 10645 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2 10646 </td> 10647 <td class="entry_type"> 10648 <span class="entry_type_name">rational</span> 10649 <span class="entry_type_container">x</span> 10650 10651 <span class="entry_type_array"> 10652 9 10653 </span> 10654 <span class="entry_type_visibility"> [system]</span> 10655 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 10656 10657 10658 </td> <!-- entry_type --> 10659 10660 <td class="entry_description"> 10661 <p>Linear mapping from XYZ (D50) color space to 10662reference linear sensor color,<wbr/> for second reference 10663illuminant</p> 10664 </td> 10665 10666 <td class="entry_units"> 10667 </td> 10668 10669 <td class="entry_range"> 10670 </td> 10671 10672 <td class="entry_tags"> 10673 <ul class="entry_tags"> 10674 <li><a href="#tag_DNG">DNG</a></li> 10675 </ul> 10676 </td> 10677 10678 </tr> 10679 10680 10681 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10682 <!-- end of entry --> 10683 10684 10685 <tr class="entry" id="static_android.sensor.forwardMatrix1"> 10686 <td class="entry_name" rowspan="1"> 10687 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1 10688 </td> 10689 <td class="entry_type"> 10690 <span class="entry_type_name">rational</span> 10691 <span class="entry_type_container">x</span> 10692 10693 <span class="entry_type_array"> 10694 9 10695 </span> 10696 <span class="entry_type_visibility"> [system]</span> 10697 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 10698 10699 10700 </td> <!-- entry_type --> 10701 10702 <td class="entry_description"> 10703 <p>Used by DNG for better WB 10704adaptation</p> 10705 </td> 10706 10707 <td class="entry_units"> 10708 </td> 10709 10710 <td class="entry_range"> 10711 </td> 10712 10713 <td class="entry_tags"> 10714 <ul class="entry_tags"> 10715 <li><a href="#tag_DNG">DNG</a></li> 10716 </ul> 10717 </td> 10718 10719 </tr> 10720 10721 10722 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10723 <!-- end of entry --> 10724 10725 10726 <tr class="entry" id="static_android.sensor.forwardMatrix2"> 10727 <td class="entry_name" rowspan="1"> 10728 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2 10729 </td> 10730 <td class="entry_type"> 10731 <span class="entry_type_name">rational</span> 10732 <span class="entry_type_container">x</span> 10733 10734 <span class="entry_type_array"> 10735 9 10736 </span> 10737 <span class="entry_type_visibility"> [system]</span> 10738 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 10739 10740 10741 </td> <!-- entry_type --> 10742 10743 <td class="entry_description"> 10744 <p>Used by DNG for better WB 10745adaptation</p> 10746 </td> 10747 10748 <td class="entry_units"> 10749 </td> 10750 10751 <td class="entry_range"> 10752 </td> 10753 10754 <td class="entry_tags"> 10755 <ul class="entry_tags"> 10756 <li><a href="#tag_DNG">DNG</a></li> 10757 </ul> 10758 </td> 10759 10760 </tr> 10761 10762 10763 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10764 <!-- end of entry --> 10765 10766 10767 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity"> 10768 <td class="entry_name" rowspan="3"> 10769 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity 10770 </td> 10771 <td class="entry_type"> 10772 <span class="entry_type_name">int32</span> 10773 10774 <span class="entry_type_visibility"> [public]</span> 10775 10776 10777 </td> <!-- entry_type --> 10778 10779 <td class="entry_description"> 10780 <p>Maximum sensitivity that is implemented 10781purely through analog gain</p> 10782 </td> 10783 10784 <td class="entry_units"> 10785 </td> 10786 10787 <td class="entry_range"> 10788 </td> 10789 10790 <td class="entry_tags"> 10791 <ul class="entry_tags"> 10792 <li><a href="#tag_V1">V1</a></li> 10793 <li><a href="#tag_FULL">FULL</a></li> 10794 </ul> 10795 </td> 10796 10797 </tr> 10798 <tr class="entries_header"> 10799 <th class="th_details" colspan="5">Details</th> 10800 </tr> 10801 <tr class="entry_cont"> 10802 <td class="entry_details" colspan="5"> 10803 <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or 10804equal to this,<wbr/> all applied gain must be analog.<wbr/> For 10805values above this,<wbr/> it can be a mix of analog and 10806digital</p> 10807 </td> 10808 </tr> 10809 10810 10811 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10812 <!-- end of entry --> 10813 10814 10815 <tr class="entry" id="static_android.sensor.noiseModelCoefficients"> 10816 <td class="entry_name" rowspan="3"> 10817 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients 10818 </td> 10819 <td class="entry_type"> 10820 <span class="entry_type_name">float</span> 10821 <span class="entry_type_container">x</span> 10822 10823 <span class="entry_type_array"> 10824 2 10825 </span> 10826 <span class="entry_type_visibility"> [system]</span> 10827 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div> 10828 10829 10830 </td> <!-- entry_type --> 10831 10832 <td class="entry_description"> 10833 <p>Estimation of sensor noise 10834characteristics</p> 10835 </td> 10836 10837 <td class="entry_units"> 10838 var(raw pixel value) = electrons * (baseGainFactor 10839 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 + 10840 B 10841 </td> 10842 10843 <td class="entry_range"> 10844 </td> 10845 10846 <td class="entry_tags"> 10847 <ul class="entry_tags"> 10848 <li><a href="#tag_V1">V1</a></li> 10849 </ul> 10850 </td> 10851 10852 </tr> 10853 <tr class="entries_header"> 10854 <th class="th_details" colspan="5">Details</th> 10855 </tr> 10856 <tr class="entry_cont"> 10857 <td class="entry_details" colspan="5"> 10858 <p>A represents sensor read noise before analog 10859amplification; B represents noise from A/<wbr/>D conversion and 10860other circuits after amplification.<wbr/> Both noise sources 10861are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary 10862across the sensor</p> 10863 </td> 10864 </tr> 10865 10866 10867 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10868 <!-- end of entry --> 10869 10870 10871 <tr class="entry" id="static_android.sensor.orientation"> 10872 <td class="entry_name" rowspan="1"> 10873 android.<wbr/>sensor.<wbr/>orientation 10874 </td> 10875 <td class="entry_type"> 10876 <span class="entry_type_name">int32</span> 10877 10878 <span class="entry_type_visibility"> [public]</span> 10879 10880 10881 </td> <!-- entry_type --> 10882 10883 <td class="entry_description"> 10884 <p>Clockwise angle through which the output 10885image needs to be rotated to be upright on the device 10886screen in its native orientation.<wbr/> Also defines the 10887direction of rolling shutter readout,<wbr/> which is from top 10888to bottom in the sensor's coordinate system</p> 10889 </td> 10890 10891 <td class="entry_units"> 10892 degrees clockwise rotation,<wbr/> only multiples of 10893 90 10894 </td> 10895 10896 <td class="entry_range"> 10897 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p> 10898 </td> 10899 10900 <td class="entry_tags"> 10901 <ul class="entry_tags"> 10902 <li><a href="#tag_BC">BC</a></li> 10903 </ul> 10904 </td> 10905 10906 </tr> 10907 10908 10909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 10910 <!-- end of entry --> 10911 10912 10913 <tr class="entry" id="static_android.sensor.referenceIlluminant1"> 10914 <td class="entry_name" rowspan="3"> 10915 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1 10916 </td> 10917 <td class="entry_type"> 10918 <span class="entry_type_name entry_type_name_enum">byte</span> 10919 10920 <span class="entry_type_visibility"> [system]</span> 10921 10922 <ul class="entry_type_enum"> 10923 <li> 10924 <span class="entry_type_enum_name">DAYLIGHT</span> 10925 <span class="entry_type_enum_value">1</span> 10926 </li> 10927 <li> 10928 <span class="entry_type_enum_name">FLUORESCENT</span> 10929 <span class="entry_type_enum_value">2</span> 10930 </li> 10931 <li> 10932 <span class="entry_type_enum_name">TUNGSTEN</span> 10933 <span class="entry_type_enum_value">3</span> 10934 <span class="entry_type_enum_notes"><p>Incandescent light</p></span> 10935 </li> 10936 <li> 10937 <span class="entry_type_enum_name">FLASH</span> 10938 <span class="entry_type_enum_value">4</span> 10939 </li> 10940 <li> 10941 <span class="entry_type_enum_name">FINE_WEATHER</span> 10942 <span class="entry_type_enum_value">9</span> 10943 </li> 10944 <li> 10945 <span class="entry_type_enum_name">CLOUDY_WEATHER</span> 10946 <span class="entry_type_enum_value">10</span> 10947 </li> 10948 <li> 10949 <span class="entry_type_enum_name">SHADE</span> 10950 <span class="entry_type_enum_value">11</span> 10951 </li> 10952 <li> 10953 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span> 10954 <span class="entry_type_enum_value">12</span> 10955 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span> 10956 </li> 10957 <li> 10958 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span> 10959 <span class="entry_type_enum_value">13</span> 10960 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span> 10961 </li> 10962 <li> 10963 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span> 10964 <span class="entry_type_enum_value">14</span> 10965 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span> 10966 </li> 10967 <li> 10968 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span> 10969 <span class="entry_type_enum_value">15</span> 10970 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span> 10971 </li> 10972 <li> 10973 <span class="entry_type_enum_name">STANDARD_A</span> 10974 <span class="entry_type_enum_value">17</span> 10975 </li> 10976 <li> 10977 <span class="entry_type_enum_name">STANDARD_B</span> 10978 <span class="entry_type_enum_value">18</span> 10979 </li> 10980 <li> 10981 <span class="entry_type_enum_name">STANDARD_C</span> 10982 <span class="entry_type_enum_value">19</span> 10983 </li> 10984 <li> 10985 <span class="entry_type_enum_name">D55</span> 10986 <span class="entry_type_enum_value">20</span> 10987 </li> 10988 <li> 10989 <span class="entry_type_enum_name">D65</span> 10990 <span class="entry_type_enum_value">21</span> 10991 </li> 10992 <li> 10993 <span class="entry_type_enum_name">D75</span> 10994 <span class="entry_type_enum_value">22</span> 10995 </li> 10996 <li> 10997 <span class="entry_type_enum_name">D50</span> 10998 <span class="entry_type_enum_value">23</span> 10999 </li> 11000 <li> 11001 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span> 11002 <span class="entry_type_enum_value">24</span> 11003 </li> 11004 </ul> 11005 11006 </td> <!-- entry_type --> 11007 11008 <td class="entry_description"> 11009 <p>Light source used to define transform 110101</p> 11011 </td> 11012 11013 <td class="entry_units"> 11014 </td> 11015 11016 <td class="entry_range"> 11017 </td> 11018 11019 <td class="entry_tags"> 11020 <ul class="entry_tags"> 11021 <li><a href="#tag_DNG">DNG</a></li> 11022 <li><a href="#tag_EXIF">EXIF</a></li> 11023 </ul> 11024 </td> 11025 11026 </tr> 11027 <tr class="entries_header"> 11028 <th class="th_details" colspan="5">Details</th> 11029 </tr> 11030 <tr class="entry_cont"> 11031 <td class="entry_details" colspan="5"> 11032 <p>[EXIF LightSource tag] Must all these be 11033supported? Need CCT for each!</p> 11034 </td> 11035 </tr> 11036 11037 11038 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11039 <!-- end of entry --> 11040 11041 11042 <tr class="entry" id="static_android.sensor.referenceIlluminant2"> 11043 <td class="entry_name" rowspan="1"> 11044 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2 11045 </td> 11046 <td class="entry_type"> 11047 <span class="entry_type_name">byte</span> 11048 11049 <span class="entry_type_visibility"> [system]</span> 11050 11051 11052 </td> <!-- entry_type --> 11053 11054 <td class="entry_description"> 11055 <p>Light source used to define transform 110562</p> 11057 </td> 11058 11059 <td class="entry_units"> 11060 Same as illuminant 1 11061 </td> 11062 11063 <td class="entry_range"> 11064 </td> 11065 11066 <td class="entry_tags"> 11067 </td> 11068 11069 </tr> 11070 11071 11072 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11073 <!-- end of entry --> 11074 11075 11076 11077 <!-- end of kind --> 11078 </tbody> 11079 <tr><td colspan="6" class="kind">dynamic</td></tr> 11080 11081 <thead class="entries_header"> 11082 <tr> 11083 <th class="th_name">Property Name</th> 11084 <th class="th_type">Type</th> 11085 <th class="th_description">Description</th> 11086 <th class="th_units">Units</th> 11087 <th class="th_range">Range</th> 11088 <th class="th_tags">Tags</th> 11089 </tr> 11090 </thead> 11091 11092 <tbody> 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 <tr class="entry" id="dynamic_android.sensor.exposureTime"> 11104 <td class="entry_name" rowspan="3"> 11105 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time 11106 </td> 11107 <td class="entry_type"> 11108 <span class="entry_type_name">int64</span> 11109 11110 <span class="entry_type_visibility"> [public]</span> 11111 11112 11113 </td> <!-- entry_type --> 11114 11115 <td class="entry_description"> 11116 <p>Duration each pixel is exposed to 11117light.<wbr/></p> 11118<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the 11119duration exposed to the nearest possible value (rather than expose longer).<wbr/></p> 11120 </td> 11121 11122 <td class="entry_units"> 11123 nanoseconds 11124 </td> 11125 11126 <td class="entry_range"> 11127 <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p> 11128 </td> 11129 11130 <td class="entry_tags"> 11131 <ul class="entry_tags"> 11132 <li><a href="#tag_V1">V1</a></li> 11133 </ul> 11134 </td> 11135 11136 </tr> 11137 <tr class="entries_header"> 11138 <th class="th_details" colspan="5">Details</th> 11139 </tr> 11140 <tr class="entry_cont"> 11141 <td class="entry_details" colspan="5"> 11142 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p> 11143 </td> 11144 </tr> 11145 11146 11147 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11148 <!-- end of entry --> 11149 11150 11151 <tr class="entry" id="dynamic_android.sensor.frameDuration"> 11152 <td class="entry_name" rowspan="3"> 11153 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration 11154 </td> 11155 <td class="entry_type"> 11156 <span class="entry_type_name">int64</span> 11157 11158 <span class="entry_type_visibility"> [public]</span> 11159 11160 11161 </td> <!-- entry_type --> 11162 11163 <td class="entry_description"> 11164 <p>Duration from start of frame exposure to 11165start of next frame exposure</p> 11166 </td> 11167 11168 <td class="entry_units"> 11169 nanoseconds 11170 </td> 11171 11172 <td class="entry_range"> 11173 <p>see <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/> 11174android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</p> 11175 </td> 11176 11177 <td class="entry_tags"> 11178 <ul class="entry_tags"> 11179 <li><a href="#tag_V1">V1</a></li> 11180 <li><a href="#tag_BC">BC</a></li> 11181 </ul> 11182 </td> 11183 11184 </tr> 11185 <tr class="entries_header"> 11186 <th class="th_details" colspan="5">Details</th> 11187 </tr> 11188 <tr class="entry_cont"> 11189 <td class="entry_details" colspan="5"> 11190 <p>Exposure time has priority,<wbr/> so duration is set to 11191max(duration,<wbr/> exposure time + overhead)</p> 11192 </td> 11193 </tr> 11194 11195 11196 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11197 <!-- end of entry --> 11198 11199 11200 <tr class="entry" id="dynamic_android.sensor.sensitivity"> 11201 <td class="entry_name" rowspan="3"> 11202 android.<wbr/>sensor.<wbr/>sensitivity 11203 </td> 11204 <td class="entry_type"> 11205 <span class="entry_type_name">int32</span> 11206 11207 <span class="entry_type_visibility"> [public]</span> 11208 11209 11210 </td> <!-- entry_type --> 11211 11212 <td class="entry_description"> 11213 <p>Gain applied to image data.<wbr/> Must be 11214implemented through analog gain only if set to values 11215below 'maximum analog sensitivity'.<wbr/></p> 11216<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the 11217gain to the nearest possible value (rather than gain more).<wbr/></p> 11218 </td> 11219 11220 <td class="entry_units"> 11221 ISO arithmetic units 11222 </td> 11223 11224 <td class="entry_range"> 11225 <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p> 11226 </td> 11227 11228 <td class="entry_tags"> 11229 <ul class="entry_tags"> 11230 <li><a href="#tag_V1">V1</a></li> 11231 </ul> 11232 </td> 11233 11234 </tr> 11235 <tr class="entries_header"> 11236 <th class="th_details" colspan="5">Details</th> 11237 </tr> 11238 <tr class="entry_cont"> 11239 <td class="entry_details" colspan="5"> 11240 <p>ISO 12232:2006 REI method</p> 11241 </td> 11242 </tr> 11243 11244 11245 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11246 <!-- end of entry --> 11247 11248 11249 <tr class="entry" id="dynamic_android.sensor.timestamp"> 11250 <td class="entry_name" rowspan="3"> 11251 android.<wbr/>sensor.<wbr/>timestamp 11252 </td> 11253 <td class="entry_type"> 11254 <span class="entry_type_name">int64</span> 11255 11256 <span class="entry_type_visibility"> [public]</span> 11257 11258 11259 </td> <!-- entry_type --> 11260 11261 <td class="entry_description"> 11262 <p>Time at start of exposure of first 11263row</p> 11264 </td> 11265 11266 <td class="entry_units"> 11267 nanoseconds 11268 </td> 11269 11270 <td class="entry_range"> 11271 <p>> 0</p> 11272 </td> 11273 11274 <td class="entry_tags"> 11275 <ul class="entry_tags"> 11276 <li><a href="#tag_BC">BC</a></li> 11277 </ul> 11278 </td> 11279 11280 </tr> 11281 <tr class="entries_header"> 11282 <th class="th_details" colspan="5">Details</th> 11283 </tr> 11284 <tr class="entry_cont"> 11285 <td class="entry_details" colspan="5"> 11286 <p>Monotonic,<wbr/> should be synced to other timestamps in 11287system</p> 11288 </td> 11289 </tr> 11290 11291 11292 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11293 <!-- end of entry --> 11294 11295 11296 <tr class="entry" id="dynamic_android.sensor.temperature"> 11297 <td class="entry_name" rowspan="1"> 11298 android.<wbr/>sensor.<wbr/>temperature 11299 </td> 11300 <td class="entry_type"> 11301 <span class="entry_type_name">float</span> 11302 11303 <span class="entry_type_visibility"> [public]</span> 11304 11305 11306 </td> <!-- entry_type --> 11307 11308 <td class="entry_description"> 11309 <p>The temperature of the sensor,<wbr/> sampled at the time 11310exposure began for this frame.<wbr/></p> 11311<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or 11312somewhere close to it.<wbr/></p> 11313 </td> 11314 11315 <td class="entry_units"> 11316 celsius 11317 </td> 11318 11319 <td class="entry_range"> 11320 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p> 11321 </td> 11322 11323 <td class="entry_tags"> 11324 <ul class="entry_tags"> 11325 <li><a href="#tag_FULL">FULL</a></li> 11326 </ul> 11327 </td> 11328 11329 </tr> 11330 11331 11332 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11333 <!-- end of entry --> 11334 11335 11336 11337 <!-- end of kind --> 11338 </tbody> 11339 11340 <!-- end of section --> 11341 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr> 11342 11343 11344 <tr><td colspan="6" class="kind">controls</td></tr> 11345 11346 <thead class="entries_header"> 11347 <tr> 11348 <th class="th_name">Property Name</th> 11349 <th class="th_type">Type</th> 11350 <th class="th_description">Description</th> 11351 <th class="th_units">Units</th> 11352 <th class="th_range">Range</th> 11353 <th class="th_tags">Tags</th> 11354 </tr> 11355 </thead> 11356 11357 <tbody> 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 <tr class="entry" id="controls_android.shading.mode"> 11369 <td class="entry_name" rowspan="1"> 11370 android.<wbr/>shading.<wbr/>mode 11371 </td> 11372 <td class="entry_type"> 11373 <span class="entry_type_name entry_type_name_enum">byte</span> 11374 11375 <span class="entry_type_visibility"> [system]</span> 11376 11377 <ul class="entry_type_enum"> 11378 <li> 11379 <span class="entry_type_enum_name">OFF</span> 11380 <span class="entry_type_enum_notes"><p>No shading correction is applied</p></span> 11381 </li> 11382 <li> 11383 <span class="entry_type_enum_name">FAST</span> 11384 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw 11385bayer output</p></span> 11386 </li> 11387 <li> 11388 <span class="entry_type_enum_name">HIGH_QUALITY</span> 11389 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 11390quality</p></span> 11391 </li> 11392 </ul> 11393 11394 </td> <!-- entry_type --> 11395 11396 <td class="entry_description"> 11397 <p>Quality of lens shading correction applied 11398to the image data</p> 11399 </td> 11400 11401 <td class="entry_units"> 11402 </td> 11403 11404 <td class="entry_range"> 11405 </td> 11406 11407 <td class="entry_tags"> 11408 </td> 11409 11410 </tr> 11411 11412 11413 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11414 <!-- end of entry --> 11415 11416 11417 <tr class="entry" id="controls_android.shading.strength"> 11418 <td class="entry_name" rowspan="1"> 11419 android.<wbr/>shading.<wbr/>strength 11420 </td> 11421 <td class="entry_type"> 11422 <span class="entry_type_name">byte</span> 11423 11424 <span class="entry_type_visibility"> [system]</span> 11425 11426 11427 </td> <!-- entry_type --> 11428 11429 <td class="entry_description"> 11430 <p>Control the amount of shading correction 11431applied to the images</p> 11432 </td> 11433 11434 <td class="entry_units"> 11435 unitless: 1-10; 10 is full shading 11436 compensation 11437 </td> 11438 11439 <td class="entry_range"> 11440 </td> 11441 11442 <td class="entry_tags"> 11443 <ul class="entry_tags"> 11444 <li><a href="#tag_ADV">ADV</a></li> 11445 </ul> 11446 </td> 11447 11448 </tr> 11449 11450 11451 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11452 <!-- end of entry --> 11453 11454 11455 11456 <!-- end of kind --> 11457 </tbody> 11458 <tr><td colspan="6" class="kind">dynamic</td></tr> 11459 11460 <thead class="entries_header"> 11461 <tr> 11462 <th class="th_name">Property Name</th> 11463 <th class="th_type">Type</th> 11464 <th class="th_description">Description</th> 11465 <th class="th_units">Units</th> 11466 <th class="th_range">Range</th> 11467 <th class="th_tags">Tags</th> 11468 </tr> 11469 </thead> 11470 11471 <tbody> 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 <tr class="entry" id="dynamic_android.shading.mode"> 11483 <td class="entry_name" rowspan="1"> 11484 android.<wbr/>shading.<wbr/>mode 11485 </td> 11486 <td class="entry_type"> 11487 <span class="entry_type_name entry_type_name_enum">byte</span> 11488 11489 <span class="entry_type_visibility"> [system]</span> 11490 11491 <ul class="entry_type_enum"> 11492 <li> 11493 <span class="entry_type_enum_name">OFF</span> 11494 <span class="entry_type_enum_notes"><p>No shading correction is applied</p></span> 11495 </li> 11496 <li> 11497 <span class="entry_type_enum_name">FAST</span> 11498 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw 11499bayer output</p></span> 11500 </li> 11501 <li> 11502 <span class="entry_type_enum_name">HIGH_QUALITY</span> 11503 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 11504quality</p></span> 11505 </li> 11506 </ul> 11507 11508 </td> <!-- entry_type --> 11509 11510 <td class="entry_description"> 11511 <p>Quality of lens shading correction applied 11512to the image data</p> 11513 </td> 11514 11515 <td class="entry_units"> 11516 </td> 11517 11518 <td class="entry_range"> 11519 </td> 11520 11521 <td class="entry_tags"> 11522 </td> 11523 11524 </tr> 11525 11526 11527 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11528 <!-- end of entry --> 11529 11530 11531 11532 <!-- end of kind --> 11533 </tbody> 11534 11535 <!-- end of section --> 11536 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr> 11537 11538 11539 <tr><td colspan="6" class="kind">controls</td></tr> 11540 11541 <thead class="entries_header"> 11542 <tr> 11543 <th class="th_name">Property Name</th> 11544 <th class="th_type">Type</th> 11545 <th class="th_description">Description</th> 11546 <th class="th_units">Units</th> 11547 <th class="th_range">Range</th> 11548 <th class="th_tags">Tags</th> 11549 </tr> 11550 </thead> 11551 11552 <tbody> 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 <tr class="entry" id="controls_android.statistics.faceDetectMode"> 11564 <td class="entry_name" rowspan="3"> 11565 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode 11566 </td> 11567 <td class="entry_type"> 11568 <span class="entry_type_name entry_type_name_enum">byte</span> 11569 11570 <span class="entry_type_visibility"> [public]</span> 11571 11572 <ul class="entry_type_enum"> 11573 <li> 11574 <span class="entry_type_enum_name">OFF</span> 11575 </li> 11576 <li> 11577 <span class="entry_type_enum_name">SIMPLE</span> 11578 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence 11579only</p></span> 11580 </li> 11581 <li> 11582 <span class="entry_type_enum_name">FULL</span> 11583 <span class="entry_type_enum_notes"><p>Optional Return all face 11584metadata</p></span> 11585 </li> 11586 </ul> 11587 11588 </td> <!-- entry_type --> 11589 11590 <td class="entry_description"> 11591 <p>State of the face detector 11592unit</p> 11593 </td> 11594 11595 <td class="entry_units"> 11596 </td> 11597 11598 <td class="entry_range"> 11599 <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p> 11600 </td> 11601 11602 <td class="entry_tags"> 11603 <ul class="entry_tags"> 11604 <li><a href="#tag_BC">BC</a></li> 11605 </ul> 11606 </td> 11607 11608 </tr> 11609 <tr class="entries_header"> 11610 <th class="th_details" colspan="5">Details</th> 11611 </tr> 11612 <tr class="entry_cont"> 11613 <td class="entry_details" colspan="5"> 11614 <p>Whether face detection is enabled,<wbr/> and whether it 11615should output just the basic fields or the full set of 11616fields.<wbr/> Value must be one of the 11617<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p> 11618 </td> 11619 </tr> 11620 11621 11622 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11623 <!-- end of entry --> 11624 11625 11626 <tr class="entry" id="controls_android.statistics.histogramMode"> 11627 <td class="entry_name" rowspan="1"> 11628 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode 11629 </td> 11630 <td class="entry_type"> 11631 <span class="entry_type_name entry_type_name_enum">byte</span> 11632 11633 <span class="entry_type_visibility"> [system as boolean]</span> 11634 11635 <ul class="entry_type_enum"> 11636 <li> 11637 <span class="entry_type_enum_name">OFF</span> 11638 </li> 11639 <li> 11640 <span class="entry_type_enum_name">ON</span> 11641 </li> 11642 </ul> 11643 11644 </td> <!-- entry_type --> 11645 11646 <td class="entry_description"> 11647 <p>Operating mode for histogram 11648generation</p> 11649 </td> 11650 11651 <td class="entry_units"> 11652 </td> 11653 11654 <td class="entry_range"> 11655 </td> 11656 11657 <td class="entry_tags"> 11658 <ul class="entry_tags"> 11659 <li><a href="#tag_V1">V1</a></li> 11660 </ul> 11661 </td> 11662 11663 </tr> 11664 11665 11666 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11667 <!-- end of entry --> 11668 11669 11670 <tr class="entry" id="controls_android.statistics.sharpnessMapMode"> 11671 <td class="entry_name" rowspan="1"> 11672 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode 11673 </td> 11674 <td class="entry_type"> 11675 <span class="entry_type_name entry_type_name_enum">byte</span> 11676 11677 <span class="entry_type_visibility"> [system as boolean]</span> 11678 11679 <ul class="entry_type_enum"> 11680 <li> 11681 <span class="entry_type_enum_name">OFF</span> 11682 </li> 11683 <li> 11684 <span class="entry_type_enum_name">ON</span> 11685 </li> 11686 </ul> 11687 11688 </td> <!-- entry_type --> 11689 11690 <td class="entry_description"> 11691 <p>Operating mode for sharpness map 11692generation</p> 11693 </td> 11694 11695 <td class="entry_units"> 11696 </td> 11697 11698 <td class="entry_range"> 11699 </td> 11700 11701 <td class="entry_tags"> 11702 <ul class="entry_tags"> 11703 <li><a href="#tag_V1">V1</a></li> 11704 </ul> 11705 </td> 11706 11707 </tr> 11708 11709 11710 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11711 <!-- end of entry --> 11712 11713 11714 <tr class="entry" id="controls_android.statistics.lensShadingMapMode"> 11715 <td class="entry_name" rowspan="3"> 11716 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode 11717 </td> 11718 <td class="entry_type"> 11719 <span class="entry_type_name entry_type_name_enum">byte</span> 11720 11721 <span class="entry_type_visibility"> [public]</span> 11722 11723 <ul class="entry_type_enum"> 11724 <li> 11725 <span class="entry_type_enum_name">OFF</span> 11726 </li> 11727 <li> 11728 <span class="entry_type_enum_name">ON</span> 11729 </li> 11730 </ul> 11731 11732 </td> <!-- entry_type --> 11733 11734 <td class="entry_description"> 11735 <p>Whether the HAL needs to output the lens 11736shading map in output result metadata</p> 11737 </td> 11738 11739 <td class="entry_units"> 11740 </td> 11741 11742 <td class="entry_range"> 11743 </td> 11744 11745 <td class="entry_tags"> 11746 </td> 11747 11748 </tr> 11749 <tr class="entries_header"> 11750 <th class="th_details" colspan="5">Details</th> 11751 </tr> 11752 <tr class="entry_cont"> 11753 <td class="entry_details" colspan="5"> 11754 <p>When set to ON,<wbr/> 11755<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> must be provided in 11756the output result metadata.<wbr/></p> 11757 </td> 11758 </tr> 11759 11760 11761 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11762 <!-- end of entry --> 11763 11764 11765 11766 <!-- end of kind --> 11767 </tbody> 11768 <tr><td colspan="6" class="kind">static</td></tr> 11769 11770 <thead class="entries_header"> 11771 <tr> 11772 <th class="th_name">Property Name</th> 11773 <th class="th_type">Type</th> 11774 <th class="th_description">Description</th> 11775 <th class="th_units">Units</th> 11776 <th class="th_range">Range</th> 11777 <th class="th_tags">Tags</th> 11778 </tr> 11779 </thead> 11780 11781 <tbody> 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes"> 11795 <td class="entry_name" rowspan="3"> 11796 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes 11797 </td> 11798 <td class="entry_type"> 11799 <span class="entry_type_name">byte</span> 11800 <span class="entry_type_container">x</span> 11801 11802 <span class="entry_type_array"> 11803 n 11804 </span> 11805 <span class="entry_type_visibility"> [public]</span> 11806 <div class="entry_type_notes">List of enums from android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</div> 11807 11808 11809 </td> <!-- entry_type --> 11810 11811 <td class="entry_description"> 11812 <p>Which face detection modes are available,<wbr/> 11813if any</p> 11814 </td> 11815 11816 <td class="entry_units"> 11817 List of enum: 11818 OFF 11819 SIMPLE 11820 FULL 11821 </td> 11822 11823 <td class="entry_range"> 11824 </td> 11825 11826 <td class="entry_tags"> 11827 </td> 11828 11829 </tr> 11830 <tr class="entries_header"> 11831 <th class="th_details" colspan="5">Details</th> 11832 </tr> 11833 <tr class="entry_cont"> 11834 <td class="entry_details" colspan="5"> 11835 <p>OFF means face detection is disabled,<wbr/> it must 11836be included in the list.<wbr/></p> 11837<p>SIMPLE means the device supports the 11838<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and 11839<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p> 11840<p>FULL means the device additionally supports the 11841<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and 11842<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p> 11843 </td> 11844 </tr> 11845 11846 11847 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11848 <!-- end of entry --> 11849 11850 11851 <tr class="entry" id="static_android.statistics.info.histogramBucketCount"> 11852 <td class="entry_name" rowspan="1"> 11853 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count 11854 </td> 11855 <td class="entry_type"> 11856 <span class="entry_type_name">int32</span> 11857 11858 <span class="entry_type_visibility"> [system]</span> 11859 11860 11861 </td> <!-- entry_type --> 11862 11863 <td class="entry_description"> 11864 <p>Number of histogram buckets 11865supported</p> 11866 </td> 11867 11868 <td class="entry_units"> 11869 </td> 11870 11871 <td class="entry_range"> 11872 <p>>= 64</p> 11873 </td> 11874 11875 <td class="entry_tags"> 11876 </td> 11877 11878 </tr> 11879 11880 11881 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11882 <!-- end of entry --> 11883 11884 11885 <tr class="entry" id="static_android.statistics.info.maxFaceCount"> 11886 <td class="entry_name" rowspan="1"> 11887 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count 11888 </td> 11889 <td class="entry_type"> 11890 <span class="entry_type_name">int32</span> 11891 11892 <span class="entry_type_visibility"> [public]</span> 11893 11894 11895 </td> <!-- entry_type --> 11896 11897 <td class="entry_description"> 11898 <p>Maximum number of simultaneously detectable 11899faces</p> 11900 </td> 11901 11902 <td class="entry_units"> 11903 </td> 11904 11905 <td class="entry_range"> 11906 <p>>= 4 if availableFaceDetectionModes lists 11907modes besides OFF,<wbr/> otherwise 0</p> 11908 </td> 11909 11910 <td class="entry_tags"> 11911 </td> 11912 11913 </tr> 11914 11915 11916 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11917 <!-- end of entry --> 11918 11919 11920 <tr class="entry" id="static_android.statistics.info.maxHistogramCount"> 11921 <td class="entry_name" rowspan="1"> 11922 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count 11923 </td> 11924 <td class="entry_type"> 11925 <span class="entry_type_name">int32</span> 11926 11927 <span class="entry_type_visibility"> [system]</span> 11928 11929 11930 </td> <!-- entry_type --> 11931 11932 <td class="entry_description"> 11933 <p>Maximum value possible for a histogram 11934bucket</p> 11935 </td> 11936 11937 <td class="entry_units"> 11938 </td> 11939 11940 <td class="entry_range"> 11941 </td> 11942 11943 <td class="entry_tags"> 11944 </td> 11945 11946 </tr> 11947 11948 11949 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11950 <!-- end of entry --> 11951 11952 11953 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue"> 11954 <td class="entry_name" rowspan="1"> 11955 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value 11956 </td> 11957 <td class="entry_type"> 11958 <span class="entry_type_name">int32</span> 11959 11960 <span class="entry_type_visibility"> [system]</span> 11961 11962 11963 </td> <!-- entry_type --> 11964 11965 <td class="entry_description"> 11966 <p>Maximum value possible for a sharpness map 11967region.<wbr/></p> 11968 </td> 11969 11970 <td class="entry_units"> 11971 </td> 11972 11973 <td class="entry_range"> 11974 </td> 11975 11976 <td class="entry_tags"> 11977 </td> 11978 11979 </tr> 11980 11981 11982 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 11983 <!-- end of entry --> 11984 11985 11986 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize"> 11987 <td class="entry_name" rowspan="1"> 11988 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size 11989 </td> 11990 <td class="entry_type"> 11991 <span class="entry_type_name">int32</span> 11992 <span class="entry_type_container">x</span> 11993 11994 <span class="entry_type_array"> 11995 2 11996 </span> 11997 <span class="entry_type_visibility"> [system as size]</span> 11998 <div class="entry_type_notes">width x height</div> 11999 12000 12001 </td> <!-- entry_type --> 12002 12003 <td class="entry_description"> 12004 <p>Dimensions of the sharpness 12005map</p> 12006 </td> 12007 12008 <td class="entry_units"> 12009 </td> 12010 12011 <td class="entry_range"> 12012 <p>Must be at least 32 x 32</p> 12013 </td> 12014 12015 <td class="entry_tags"> 12016 </td> 12017 12018 </tr> 12019 12020 12021 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12022 <!-- end of entry --> 12023 12024 12025 12026 12027 12028 12029 <!-- end of kind --> 12030 </tbody> 12031 <tr><td colspan="6" class="kind">dynamic</td></tr> 12032 12033 <thead class="entries_header"> 12034 <tr> 12035 <th class="th_name">Property Name</th> 12036 <th class="th_type">Type</th> 12037 <th class="th_description">Description</th> 12038 <th class="th_units">Units</th> 12039 <th class="th_range">Range</th> 12040 <th class="th_tags">Tags</th> 12041 </tr> 12042 </thead> 12043 12044 <tbody> 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 <tr class="entry" id="dynamic_android.statistics.faceDetectMode"> 12056 <td class="entry_name" rowspan="3"> 12057 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode 12058 </td> 12059 <td class="entry_type"> 12060 <span class="entry_type_name entry_type_name_enum">byte</span> 12061 12062 <span class="entry_type_visibility"> [public]</span> 12063 12064 <ul class="entry_type_enum"> 12065 <li> 12066 <span class="entry_type_enum_name">OFF</span> 12067 </li> 12068 <li> 12069 <span class="entry_type_enum_name">SIMPLE</span> 12070 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence 12071only</p></span> 12072 </li> 12073 <li> 12074 <span class="entry_type_enum_name">FULL</span> 12075 <span class="entry_type_enum_notes"><p>Optional Return all face 12076metadata</p></span> 12077 </li> 12078 </ul> 12079 12080 </td> <!-- entry_type --> 12081 12082 <td class="entry_description"> 12083 <p>State of the face detector 12084unit</p> 12085 </td> 12086 12087 <td class="entry_units"> 12088 </td> 12089 12090 <td class="entry_range"> 12091 <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p> 12092 </td> 12093 12094 <td class="entry_tags"> 12095 <ul class="entry_tags"> 12096 <li><a href="#tag_BC">BC</a></li> 12097 </ul> 12098 </td> 12099 12100 </tr> 12101 <tr class="entries_header"> 12102 <th class="th_details" colspan="5">Details</th> 12103 </tr> 12104 <tr class="entry_cont"> 12105 <td class="entry_details" colspan="5"> 12106 <p>Whether face detection is enabled,<wbr/> and whether it 12107should output just the basic fields or the full set of 12108fields.<wbr/> Value must be one of the 12109<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p> 12110 </td> 12111 </tr> 12112 12113 12114 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12115 <!-- end of entry --> 12116 12117 12118 <tr class="entry" id="dynamic_android.statistics.faceIds"> 12119 <td class="entry_name" rowspan="3"> 12120 android.<wbr/>statistics.<wbr/>face<wbr/>Ids 12121 </td> 12122 <td class="entry_type"> 12123 <span class="entry_type_name">int32</span> 12124 <span class="entry_type_container">x</span> 12125 12126 <span class="entry_type_array"> 12127 n 12128 </span> 12129 <span class="entry_type_visibility"> [hidden]</span> 12130 12131 12132 </td> <!-- entry_type --> 12133 12134 <td class="entry_description"> 12135 <p>List of unique IDs for detected 12136faces</p> 12137 </td> 12138 12139 <td class="entry_units"> 12140 </td> 12141 12142 <td class="entry_range"> 12143 </td> 12144 12145 <td class="entry_tags"> 12146 <ul class="entry_tags"> 12147 <li><a href="#tag_BC">BC</a></li> 12148 </ul> 12149 </td> 12150 12151 </tr> 12152 <tr class="entries_header"> 12153 <th class="th_details" colspan="5">Details</th> 12154 </tr> 12155 <tr class="entry_cont"> 12156 <td class="entry_details" colspan="5"> 12157 <p>Only available if faceDetectMode == FULL</p> 12158 </td> 12159 </tr> 12160 12161 12162 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12163 <!-- end of entry --> 12164 12165 12166 <tr class="entry" id="dynamic_android.statistics.faceLandmarks"> 12167 <td class="entry_name" rowspan="3"> 12168 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks 12169 </td> 12170 <td class="entry_type"> 12171 <span class="entry_type_name">int32</span> 12172 <span class="entry_type_container">x</span> 12173 12174 <span class="entry_type_array"> 12175 n x 6 12176 </span> 12177 <span class="entry_type_visibility"> [hidden]</span> 12178 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div> 12179 12180 12181 </td> <!-- entry_type --> 12182 12183 <td class="entry_description"> 12184 <p>List of landmarks for detected 12185faces</p> 12186 </td> 12187 12188 <td class="entry_units"> 12189 </td> 12190 12191 <td class="entry_range"> 12192 </td> 12193 12194 <td class="entry_tags"> 12195 <ul class="entry_tags"> 12196 <li><a href="#tag_BC">BC</a></li> 12197 </ul> 12198 </td> 12199 12200 </tr> 12201 <tr class="entries_header"> 12202 <th class="th_details" colspan="5">Details</th> 12203 </tr> 12204 <tr class="entry_cont"> 12205 <td class="entry_details" colspan="5"> 12206 <p>Only available if faceDetectMode == FULL</p> 12207 </td> 12208 </tr> 12209 12210 12211 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12212 <!-- end of entry --> 12213 12214 12215 <tr class="entry" id="dynamic_android.statistics.faceRectangles"> 12216 <td class="entry_name" rowspan="3"> 12217 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles 12218 </td> 12219 <td class="entry_type"> 12220 <span class="entry_type_name">int32</span> 12221 <span class="entry_type_container">x</span> 12222 12223 <span class="entry_type_array"> 12224 n x 4 12225 </span> 12226 <span class="entry_type_visibility"> [hidden as rectangle]</span> 12227 <div class="entry_type_notes">(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax).<wbr/> (0,<wbr/>0) is top-left of active pixel area</div> 12228 12229 12230 </td> <!-- entry_type --> 12231 12232 <td class="entry_description"> 12233 <p>List of the bounding rectangles for detected 12234faces</p> 12235 </td> 12236 12237 <td class="entry_units"> 12238 </td> 12239 12240 <td class="entry_range"> 12241 </td> 12242 12243 <td class="entry_tags"> 12244 <ul class="entry_tags"> 12245 <li><a href="#tag_BC">BC</a></li> 12246 </ul> 12247 </td> 12248 12249 </tr> 12250 <tr class="entries_header"> 12251 <th class="th_details" colspan="5">Details</th> 12252 </tr> 12253 <tr class="entry_cont"> 12254 <td class="entry_details" colspan="5"> 12255 <p>Only available if faceDetectMode != OFF</p> 12256 </td> 12257 </tr> 12258 12259 12260 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12261 <!-- end of entry --> 12262 12263 12264 <tr class="entry" id="dynamic_android.statistics.faceScores"> 12265 <td class="entry_name" rowspan="3"> 12266 android.<wbr/>statistics.<wbr/>face<wbr/>Scores 12267 </td> 12268 <td class="entry_type"> 12269 <span class="entry_type_name">byte</span> 12270 <span class="entry_type_container">x</span> 12271 12272 <span class="entry_type_array"> 12273 n 12274 </span> 12275 <span class="entry_type_visibility"> [hidden]</span> 12276 12277 12278 </td> <!-- entry_type --> 12279 12280 <td class="entry_description"> 12281 <p>List of the face confidence scores for 12282detected faces</p> 12283 </td> 12284 12285 <td class="entry_units"> 12286 </td> 12287 12288 <td class="entry_range"> 12289 <p>1-100</p> 12290 </td> 12291 12292 <td class="entry_tags"> 12293 <ul class="entry_tags"> 12294 <li><a href="#tag_BC">BC</a></li> 12295 </ul> 12296 </td> 12297 12298 </tr> 12299 <tr class="entries_header"> 12300 <th class="th_details" colspan="5">Details</th> 12301 </tr> 12302 <tr class="entry_cont"> 12303 <td class="entry_details" colspan="5"> 12304 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be 12305meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p> 12306 </td> 12307 </tr> 12308 12309 12310 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12311 <!-- end of entry --> 12312 12313 12314 <tr class="entry" id="dynamic_android.statistics.histogram"> 12315 <td class="entry_name" rowspan="3"> 12316 android.<wbr/>statistics.<wbr/>histogram 12317 </td> 12318 <td class="entry_type"> 12319 <span class="entry_type_name">int32</span> 12320 <span class="entry_type_container">x</span> 12321 12322 <span class="entry_type_array"> 12323 n x 3 12324 </span> 12325 <span class="entry_type_visibility"> [system]</span> 12326 <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> 12327 12328 12329 </td> <!-- entry_type --> 12330 12331 <td class="entry_description"> 12332 <p>A 3-channel histogram based on the raw 12333sensor data</p> 12334 </td> 12335 12336 <td class="entry_units"> 12337 </td> 12338 12339 <td class="entry_range"> 12340 </td> 12341 12342 <td class="entry_tags"> 12343 <ul class="entry_tags"> 12344 <li><a href="#tag_V1">V1</a></li> 12345 </ul> 12346 </td> 12347 12348 </tr> 12349 <tr class="entries_header"> 12350 <th class="th_details" colspan="5">Details</th> 12351 </tr> 12352 <tr class="entry_cont"> 12353 <td class="entry_details" colspan="5"> 12354 <p>The k'th bucket (0-based) covers the input range 12355(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/> 12356(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is 12357supported,<wbr/> all channels should have the same data</p> 12358 </td> 12359 </tr> 12360 12361 12362 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12363 <!-- end of entry --> 12364 12365 12366 <tr class="entry" id="dynamic_android.statistics.histogramMode"> 12367 <td class="entry_name" rowspan="1"> 12368 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode 12369 </td> 12370 <td class="entry_type"> 12371 <span class="entry_type_name entry_type_name_enum">byte</span> 12372 12373 <span class="entry_type_visibility"> [system as boolean]</span> 12374 12375 <ul class="entry_type_enum"> 12376 <li> 12377 <span class="entry_type_enum_name">OFF</span> 12378 </li> 12379 <li> 12380 <span class="entry_type_enum_name">ON</span> 12381 </li> 12382 </ul> 12383 12384 </td> <!-- entry_type --> 12385 12386 <td class="entry_description"> 12387 <p>Operating mode for histogram 12388generation</p> 12389 </td> 12390 12391 <td class="entry_units"> 12392 </td> 12393 12394 <td class="entry_range"> 12395 </td> 12396 12397 <td class="entry_tags"> 12398 <ul class="entry_tags"> 12399 <li><a href="#tag_V1">V1</a></li> 12400 </ul> 12401 </td> 12402 12403 </tr> 12404 12405 12406 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12407 <!-- end of entry --> 12408 12409 12410 <tr class="entry" id="dynamic_android.statistics.sharpnessMap"> 12411 <td class="entry_name" rowspan="3"> 12412 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map 12413 </td> 12414 <td class="entry_type"> 12415 <span class="entry_type_name">int32</span> 12416 <span class="entry_type_container">x</span> 12417 12418 <span class="entry_type_array"> 12419 n x m x 3 12420 </span> 12421 <span class="entry_type_visibility"> [system]</span> 12422 <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> 12423 12424 12425 </td> <!-- entry_type --> 12426 12427 <td class="entry_description"> 12428 <p>A 3-channel sharpness map,<wbr/> based on the raw 12429sensor data</p> 12430 </td> 12431 12432 <td class="entry_units"> 12433 </td> 12434 12435 <td class="entry_range"> 12436 </td> 12437 12438 <td class="entry_tags"> 12439 <ul class="entry_tags"> 12440 <li><a href="#tag_V1">V1</a></li> 12441 </ul> 12442 </td> 12443 12444 </tr> 12445 <tr class="entries_header"> 12446 <th class="th_details" colspan="5">Details</th> 12447 </tr> 12448 <tr class="entry_cont"> 12449 <td class="entry_details" colspan="5"> 12450 <p>If only a monochrome sharpness map is supported,<wbr/> 12451all channels should have the same data</p> 12452 </td> 12453 </tr> 12454 12455 12456 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12457 <!-- end of entry --> 12458 12459 12460 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode"> 12461 <td class="entry_name" rowspan="1"> 12462 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode 12463 </td> 12464 <td class="entry_type"> 12465 <span class="entry_type_name entry_type_name_enum">byte</span> 12466 12467 <span class="entry_type_visibility"> [system as boolean]</span> 12468 12469 <ul class="entry_type_enum"> 12470 <li> 12471 <span class="entry_type_enum_name">OFF</span> 12472 </li> 12473 <li> 12474 <span class="entry_type_enum_name">ON</span> 12475 </li> 12476 </ul> 12477 12478 </td> <!-- entry_type --> 12479 12480 <td class="entry_description"> 12481 <p>Operating mode for sharpness map 12482generation</p> 12483 </td> 12484 12485 <td class="entry_units"> 12486 </td> 12487 12488 <td class="entry_range"> 12489 </td> 12490 12491 <td class="entry_tags"> 12492 <ul class="entry_tags"> 12493 <li><a href="#tag_V1">V1</a></li> 12494 </ul> 12495 </td> 12496 12497 </tr> 12498 12499 12500 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12501 <!-- end of entry --> 12502 12503 12504 <tr class="entry" id="dynamic_android.statistics.lensShadingMap"> 12505 <td class="entry_name" rowspan="3"> 12506 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map 12507 </td> 12508 <td class="entry_type"> 12509 <span class="entry_type_name">float</span> 12510 <span class="entry_type_container">x</span> 12511 12512 <span class="entry_type_array"> 12513 4 x n x m 12514 </span> 12515 <span class="entry_type_visibility"> [public]</span> 12516 <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</div> 12517 12518 12519 </td> <!-- entry_type --> 12520 12521 <td class="entry_description"> 12522 <p>The shading map is a low-resolution floating-point map 12523that lists the coefficients used to correct for vignetting,<wbr/> for each 12524Bayer color channel.<wbr/></p> 12525 </td> 12526 12527 <td class="entry_units"> 12528 </td> 12529 12530 <td class="entry_range"> 12531 <p>Each gain factor is >= 1</p> 12532 </td> 12533 12534 <td class="entry_tags"> 12535 </td> 12536 12537 </tr> 12538 <tr class="entries_header"> 12539 <th class="th_details" colspan="5">Details</th> 12540 </tr> 12541 <tr class="entry_cont"> 12542 <td class="entry_details" colspan="5"> 12543 <p>The least shaded section of the image should have a gain factor 12544of 1; all other sections should have gains above 1.<wbr/></p> 12545<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map 12546must take into account the colorCorrection settings.<wbr/></p> 12547<p>The shading map is for the entire active pixel array,<wbr/> and is not 12548affected by the crop region specified in the request.<wbr/> Each shading map 12549entry is the value of the shading compensation map over a specific 12550pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading 12551map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry 12552(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at 12553pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/> 12554The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p> 12555<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green 12556channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/> 12557The shading map is stored in a fully interleaved format,<wbr/> and its size 12558is 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> 12559<p>The shading map should have on the order of 30-40 rows and columns,<wbr/> 12560and must be smaller than 64x64.<wbr/></p> 12561<p>As an example,<wbr/> given a very small map defined as:</p> 12562<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ] 12563<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> = 12564[ 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/> 12565 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/> 12566 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/> 12567 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/> 12568 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/> 12569 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 ] 12570</code></pre> 12571<p>The low-resolution scaling map images for each channel are 12572(displayed using nearest-neighbor interpolation):</p> 12573<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/> 12574<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/> 12575<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/> 12576<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p> 12577<p>As a visualization only,<wbr/> inverting the full-color map to recover an 12578image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p> 12579<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p> 12580 </td> 12581 </tr> 12582 12583 12584 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12585 <!-- end of entry --> 12586 12587 12588 <tr class="entry" id="dynamic_android.statistics.predictedColorGains"> 12589 <td class="entry_name" rowspan="3"> 12590 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains 12591 </td> 12592 <td class="entry_type"> 12593 <span class="entry_type_name">float</span> 12594 <span class="entry_type_container">x</span> 12595 12596 <span class="entry_type_array"> 12597 4 12598 </span> 12599 <span class="entry_type_visibility"> [hidden]</span> 12600 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div> 12601 12602 12603 </td> <!-- entry_type --> 12604 12605 <td class="entry_description"> 12606 <p>The best-fit color channel gains calculated 12607by the HAL's statistics units for the current output frame</p> 12608 </td> 12609 12610 <td class="entry_units"> 12611 </td> 12612 12613 <td class="entry_range"> 12614 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p> 12615 </td> 12616 12617 <td class="entry_tags"> 12618 </td> 12619 12620 </tr> 12621 <tr class="entries_header"> 12622 <th class="th_details" colspan="5">Details</th> 12623 </tr> 12624 <tr class="entry_cont"> 12625 <td class="entry_details" colspan="5"> 12626 <p>This may be different than the gains used for this frame,<wbr/> 12627since statistics processing on data from a new frame 12628typically completes after the transform has already been 12629applied to that frame.<wbr/></p> 12630<p>The 4 channel gains are defined in Bayer domain,<wbr/> 12631see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p> 12632<p>This value should always be calculated by the AWB block,<wbr/> 12633regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p> 12634 </td> 12635 </tr> 12636 12637 12638 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12639 <!-- end of entry --> 12640 12641 12642 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform"> 12643 <td class="entry_name" rowspan="3"> 12644 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform 12645 </td> 12646 <td class="entry_type"> 12647 <span class="entry_type_name">rational</span> 12648 <span class="entry_type_container">x</span> 12649 12650 <span class="entry_type_array"> 12651 3 x 3 12652 </span> 12653 <span class="entry_type_visibility"> [hidden]</span> 12654 <div class="entry_type_notes">3x3 rational matrix in row-major order</div> 12655 12656 12657 </td> <!-- entry_type --> 12658 12659 <td class="entry_description"> 12660 <p>The best-fit color transform matrix estimate 12661calculated by the HAL's statistics units for the current 12662output frame</p> 12663 </td> 12664 12665 <td class="entry_units"> 12666 </td> 12667 12668 <td class="entry_range"> 12669 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p> 12670 </td> 12671 12672 <td class="entry_tags"> 12673 </td> 12674 12675 </tr> 12676 <tr class="entries_header"> 12677 <th class="th_details" colspan="5">Details</th> 12678 </tr> 12679 <tr class="entry_cont"> 12680 <td class="entry_details" colspan="5"> 12681 <p>The HAL must provide the estimate from its 12682statistics unit on the white balance transforms to use 12683for the next frame.<wbr/> These are the values the HAL believes 12684are the best fit for the current output frame.<wbr/> This may 12685be different than the transform used for this frame,<wbr/> since 12686statistics processing on data from a new frame typically 12687completes after the transform has already been applied to 12688that frame.<wbr/></p> 12689<p>These estimates must be provided for all frames,<wbr/> even if 12690capture settings and color transforms are set by the application.<wbr/></p> 12691<p>This value should always be calculated by the AWB block,<wbr/> 12692regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p> 12693 </td> 12694 </tr> 12695 12696 12697 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12698 <!-- end of entry --> 12699 12700 12701 <tr class="entry" id="dynamic_android.statistics.sceneFlicker"> 12702 <td class="entry_name" rowspan="3"> 12703 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker 12704 </td> 12705 <td class="entry_type"> 12706 <span class="entry_type_name entry_type_name_enum">byte</span> 12707 12708 <span class="entry_type_visibility"> [public]</span> 12709 12710 <ul class="entry_type_enum"> 12711 <li> 12712 <span class="entry_type_enum_name">NONE</span> 12713 </li> 12714 <li> 12715 <span class="entry_type_enum_name">50HZ</span> 12716 </li> 12717 <li> 12718 <span class="entry_type_enum_name">60HZ</span> 12719 </li> 12720 </ul> 12721 12722 </td> <!-- entry_type --> 12723 12724 <td class="entry_description"> 12725 <p>The HAL estimated scene illumination lighting 12726frequency</p> 12727 </td> 12728 12729 <td class="entry_units"> 12730 </td> 12731 12732 <td class="entry_range"> 12733 </td> 12734 12735 <td class="entry_tags"> 12736 </td> 12737 12738 </tr> 12739 <tr class="entries_header"> 12740 <th class="th_details" colspan="5">Details</th> 12741 </tr> 12742 <tr class="entry_cont"> 12743 <td class="entry_details" colspan="5"> 12744 <p>Report NONE if there doesn't appear to be flickering 12745illumination</p> 12746 </td> 12747 </tr> 12748 12749 12750 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12751 <!-- end of entry --> 12752 12753 12754 12755 <!-- end of kind --> 12756 </tbody> 12757 12758 <!-- end of section --> 12759 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr> 12760 12761 12762 <tr><td colspan="6" class="kind">controls</td></tr> 12763 12764 <thead class="entries_header"> 12765 <tr> 12766 <th class="th_name">Property Name</th> 12767 <th class="th_type">Type</th> 12768 <th class="th_description">Description</th> 12769 <th class="th_units">Units</th> 12770 <th class="th_range">Range</th> 12771 <th class="th_tags">Tags</th> 12772 </tr> 12773 </thead> 12774 12775 <tbody> 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 <tr class="entry" id="controls_android.tonemap.curveBlue"> 12787 <td class="entry_name" rowspan="3"> 12788 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue 12789 </td> 12790 <td class="entry_type"> 12791 <span class="entry_type_name">float</span> 12792 <span class="entry_type_container">x</span> 12793 12794 <span class="entry_type_array"> 12795 n x 2 12796 </span> 12797 <span class="entry_type_visibility"> [public]</span> 12798 <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> 12799 12800 12801 </td> <!-- entry_type --> 12802 12803 <td class="entry_description"> 12804 <p>Table mapping blue input values to output 12805values</p> 12806 </td> 12807 12808 <td class="entry_units"> 12809 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red 12810 </td> 12811 12812 <td class="entry_range"> 12813 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p> 12814 </td> 12815 12816 <td class="entry_tags"> 12817 </td> 12818 12819 </tr> 12820 <tr class="entries_header"> 12821 <th class="th_details" colspan="5">Details</th> 12822 </tr> 12823 <tr class="entry_cont"> 12824 <td class="entry_details" colspan="5"> 12825 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue 12826channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p> 12827<p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p> 12828 </td> 12829 </tr> 12830 12831 12832 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12833 <!-- end of entry --> 12834 12835 12836 <tr class="entry" id="controls_android.tonemap.curveGreen"> 12837 <td class="entry_name" rowspan="3"> 12838 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green 12839 </td> 12840 <td class="entry_type"> 12841 <span class="entry_type_name">float</span> 12842 <span class="entry_type_container">x</span> 12843 12844 <span class="entry_type_array"> 12845 n x 2 12846 </span> 12847 <span class="entry_type_visibility"> [public]</span> 12848 <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> 12849 12850 12851 </td> <!-- entry_type --> 12852 12853 <td class="entry_description"> 12854 <p>Table mapping green input values to output 12855values</p> 12856 </td> 12857 12858 <td class="entry_units"> 12859 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red 12860 </td> 12861 12862 <td class="entry_range"> 12863 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p> 12864 </td> 12865 12866 <td class="entry_tags"> 12867 </td> 12868 12869 </tr> 12870 <tr class="entries_header"> 12871 <th class="th_details" colspan="5">Details</th> 12872 </tr> 12873 <tr class="entry_cont"> 12874 <td class="entry_details" colspan="5"> 12875 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green 12876channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p> 12877<p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p> 12878 </td> 12879 </tr> 12880 12881 12882 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12883 <!-- end of entry --> 12884 12885 12886 <tr class="entry" id="controls_android.tonemap.curveRed"> 12887 <td class="entry_name" rowspan="3"> 12888 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red 12889 </td> 12890 <td class="entry_type"> 12891 <span class="entry_type_name">float</span> 12892 <span class="entry_type_container">x</span> 12893 12894 <span class="entry_type_array"> 12895 n x 2 12896 </span> 12897 <span class="entry_type_visibility"> [public]</span> 12898 <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> 12899 12900 12901 </td> <!-- entry_type --> 12902 12903 <td class="entry_description"> 12904 <p>Table mapping red input values to output 12905values</p> 12906 </td> 12907 12908 <td class="entry_units"> 12909 </td> 12910 12911 <td class="entry_range"> 12912 <p>0-1 on input and output coordinates.<wbr/></p> 12913 </td> 12914 12915 <td class="entry_tags"> 12916 <ul class="entry_tags"> 12917 <li><a href="#tag_DNG">DNG</a></li> 12918 </ul> 12919 </td> 12920 12921 </tr> 12922 <tr class="entries_header"> 12923 <th class="th_details" colspan="5">Details</th> 12924 </tr> 12925 <tr class="entry_cont"> 12926 <td class="entry_details" colspan="5"> 12927 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red 12928channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p> 12929<p>Since the input and output ranges may vary depending on 12930the camera pipeline,<wbr/> the input and output pixel values 12931are represented by normalized floating-point values 12932between 0 and 1,<wbr/> with 0 == black and 1 == white.<wbr/></p> 12933<p>The curve should be linearly interpolated between the 12934defined points.<wbr/> The points will be listed in increasing 12935order of P_<wbr/>IN.<wbr/> For example,<wbr/> if the array is: [0.<wbr/>0,<wbr/> 0.<wbr/>0,<wbr/> 129360.<wbr/>3,<wbr/> 0.<wbr/>5,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/> then the input->output mapping 12937for a few sample points would be: 0 -> 0,<wbr/> 0.<wbr/>15 -> 129380.<wbr/>25,<wbr/> 0.<wbr/>3 -> 0.<wbr/>5,<wbr/> 0.<wbr/>5 -> 0.<wbr/>64</p> 12939 </td> 12940 </tr> 12941 12942 12943 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12944 <!-- end of entry --> 12945 12946 12947 <tr class="entry" id="controls_android.tonemap.mode"> 12948 <td class="entry_name" rowspan="1"> 12949 android.<wbr/>tonemap.<wbr/>mode 12950 </td> 12951 <td class="entry_type"> 12952 <span class="entry_type_name entry_type_name_enum">byte</span> 12953 12954 <span class="entry_type_visibility"> [public]</span> 12955 12956 <ul class="entry_type_enum"> 12957 <li> 12958 <span class="entry_type_enum_name">CONTRAST_CURVE</span> 12959 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in 12960android.<wbr/>tonemap.<wbr/>curve</p></span> 12961 </li> 12962 <li> 12963 <span class="entry_type_enum_name">FAST</span> 12964 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw 12965bayer output</p></span> 12966 </li> 12967 <li> 12968 <span class="entry_type_enum_name">HIGH_QUALITY</span> 12969 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 12970quality</p></span> 12971 </li> 12972 </ul> 12973 12974 </td> <!-- entry_type --> 12975 12976 <td class="entry_description"> 12977 </td> 12978 12979 <td class="entry_units"> 12980 </td> 12981 12982 <td class="entry_range"> 12983 </td> 12984 12985 <td class="entry_tags"> 12986 </td> 12987 12988 </tr> 12989 12990 12991 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 12992 <!-- end of entry --> 12993 12994 12995 12996 <!-- end of kind --> 12997 </tbody> 12998 <tr><td colspan="6" class="kind">static</td></tr> 12999 13000 <thead class="entries_header"> 13001 <tr> 13002 <th class="th_name">Property Name</th> 13003 <th class="th_type">Type</th> 13004 <th class="th_description">Description</th> 13005 <th class="th_units">Units</th> 13006 <th class="th_range">Range</th> 13007 <th class="th_tags">Tags</th> 13008 </tr> 13009 </thead> 13010 13011 <tbody> 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 <tr class="entry" id="static_android.tonemap.maxCurvePoints"> 13023 <td class="entry_name" rowspan="1"> 13024 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points 13025 </td> 13026 <td class="entry_type"> 13027 <span class="entry_type_name">int32</span> 13028 13029 <span class="entry_type_visibility"> [public]</span> 13030 13031 13032 </td> <!-- entry_type --> 13033 13034 <td class="entry_description"> 13035 <p>Maximum number of supported points in the 13036tonemap curve</p> 13037 </td> 13038 13039 <td class="entry_units"> 13040 </td> 13041 13042 <td class="entry_range"> 13043 <p>>= 128</p> 13044 </td> 13045 13046 <td class="entry_tags"> 13047 </td> 13048 13049 </tr> 13050 13051 13052 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13053 <!-- end of entry --> 13054 13055 13056 13057 <!-- end of kind --> 13058 </tbody> 13059 <tr><td colspan="6" class="kind">dynamic</td></tr> 13060 13061 <thead class="entries_header"> 13062 <tr> 13063 <th class="th_name">Property Name</th> 13064 <th class="th_type">Type</th> 13065 <th class="th_description">Description</th> 13066 <th class="th_units">Units</th> 13067 <th class="th_range">Range</th> 13068 <th class="th_tags">Tags</th> 13069 </tr> 13070 </thead> 13071 13072 <tbody> 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 <tr class="entry" id="dynamic_android.tonemap.curveBlue"> 13084 <td class="entry_name" rowspan="3"> 13085 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue 13086 </td> 13087 <td class="entry_type"> 13088 <span class="entry_type_name">float</span> 13089 <span class="entry_type_container">x</span> 13090 13091 <span class="entry_type_array"> 13092 n x 2 13093 </span> 13094 <span class="entry_type_visibility"> [public]</span> 13095 <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> 13096 13097 13098 </td> <!-- entry_type --> 13099 13100 <td class="entry_description"> 13101 <p>Table mapping blue input values to output 13102values</p> 13103 </td> 13104 13105 <td class="entry_units"> 13106 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red 13107 </td> 13108 13109 <td class="entry_range"> 13110 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p> 13111 </td> 13112 13113 <td class="entry_tags"> 13114 </td> 13115 13116 </tr> 13117 <tr class="entries_header"> 13118 <th class="th_details" colspan="5">Details</th> 13119 </tr> 13120 <tr class="entry_cont"> 13121 <td class="entry_details" colspan="5"> 13122 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue 13123channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p> 13124<p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p> 13125 </td> 13126 </tr> 13127 13128 13129 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13130 <!-- end of entry --> 13131 13132 13133 <tr class="entry" id="dynamic_android.tonemap.curveGreen"> 13134 <td class="entry_name" rowspan="3"> 13135 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green 13136 </td> 13137 <td class="entry_type"> 13138 <span class="entry_type_name">float</span> 13139 <span class="entry_type_container">x</span> 13140 13141 <span class="entry_type_array"> 13142 n x 2 13143 </span> 13144 <span class="entry_type_visibility"> [public]</span> 13145 <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> 13146 13147 13148 </td> <!-- entry_type --> 13149 13150 <td class="entry_description"> 13151 <p>Table mapping green input values to output 13152values</p> 13153 </td> 13154 13155 <td class="entry_units"> 13156 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red 13157 </td> 13158 13159 <td class="entry_range"> 13160 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p> 13161 </td> 13162 13163 <td class="entry_tags"> 13164 </td> 13165 13166 </tr> 13167 <tr class="entries_header"> 13168 <th class="th_details" colspan="5">Details</th> 13169 </tr> 13170 <tr class="entry_cont"> 13171 <td class="entry_details" colspan="5"> 13172 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green 13173channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p> 13174<p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p> 13175 </td> 13176 </tr> 13177 13178 13179 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13180 <!-- end of entry --> 13181 13182 13183 <tr class="entry" id="dynamic_android.tonemap.curveRed"> 13184 <td class="entry_name" rowspan="3"> 13185 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red 13186 </td> 13187 <td class="entry_type"> 13188 <span class="entry_type_name">float</span> 13189 <span class="entry_type_container">x</span> 13190 13191 <span class="entry_type_array"> 13192 n x 2 13193 </span> 13194 <span class="entry_type_visibility"> [public]</span> 13195 <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> 13196 13197 13198 </td> <!-- entry_type --> 13199 13200 <td class="entry_description"> 13201 <p>Table mapping red input values to output 13202values</p> 13203 </td> 13204 13205 <td class="entry_units"> 13206 </td> 13207 13208 <td class="entry_range"> 13209 <p>0-1 on input and output coordinates.<wbr/></p> 13210 </td> 13211 13212 <td class="entry_tags"> 13213 <ul class="entry_tags"> 13214 <li><a href="#tag_DNG">DNG</a></li> 13215 </ul> 13216 </td> 13217 13218 </tr> 13219 <tr class="entries_header"> 13220 <th class="th_details" colspan="5">Details</th> 13221 </tr> 13222 <tr class="entry_cont"> 13223 <td class="entry_details" colspan="5"> 13224 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red 13225channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p> 13226<p>Since the input and output ranges may vary depending on 13227the camera pipeline,<wbr/> the input and output pixel values 13228are represented by normalized floating-point values 13229between 0 and 1,<wbr/> with 0 == black and 1 == white.<wbr/></p> 13230<p>The curve should be linearly interpolated between the 13231defined points.<wbr/> The points will be listed in increasing 13232order of P_<wbr/>IN.<wbr/> For example,<wbr/> if the array is: [0.<wbr/>0,<wbr/> 0.<wbr/>0,<wbr/> 132330.<wbr/>3,<wbr/> 0.<wbr/>5,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/> then the input->output mapping 13234for a few sample points would be: 0 -> 0,<wbr/> 0.<wbr/>15 -> 132350.<wbr/>25,<wbr/> 0.<wbr/>3 -> 0.<wbr/>5,<wbr/> 0.<wbr/>5 -> 0.<wbr/>64</p> 13236 </td> 13237 </tr> 13238 13239 13240 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13241 <!-- end of entry --> 13242 13243 13244 <tr class="entry" id="dynamic_android.tonemap.mode"> 13245 <td class="entry_name" rowspan="1"> 13246 android.<wbr/>tonemap.<wbr/>mode 13247 </td> 13248 <td class="entry_type"> 13249 <span class="entry_type_name entry_type_name_enum">byte</span> 13250 13251 <span class="entry_type_visibility"> [public]</span> 13252 13253 <ul class="entry_type_enum"> 13254 <li> 13255 <span class="entry_type_enum_name">CONTRAST_CURVE</span> 13256 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in 13257android.<wbr/>tonemap.<wbr/>curve</p></span> 13258 </li> 13259 <li> 13260 <span class="entry_type_enum_name">FAST</span> 13261 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw 13262bayer output</p></span> 13263 </li> 13264 <li> 13265 <span class="entry_type_enum_name">HIGH_QUALITY</span> 13266 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high 13267quality</p></span> 13268 </li> 13269 </ul> 13270 13271 </td> <!-- entry_type --> 13272 13273 <td class="entry_description"> 13274 </td> 13275 13276 <td class="entry_units"> 13277 </td> 13278 13279 <td class="entry_range"> 13280 </td> 13281 13282 <td class="entry_tags"> 13283 </td> 13284 13285 </tr> 13286 13287 13288 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13289 <!-- end of entry --> 13290 13291 13292 13293 <!-- end of kind --> 13294 </tbody> 13295 13296 <!-- end of section --> 13297 <tr><td colspan="6" id="section_led" class="section">led</td></tr> 13298 13299 13300 <tr><td colspan="6" class="kind">controls</td></tr> 13301 13302 <thead class="entries_header"> 13303 <tr> 13304 <th class="th_name">Property Name</th> 13305 <th class="th_type">Type</th> 13306 <th class="th_description">Description</th> 13307 <th class="th_units">Units</th> 13308 <th class="th_range">Range</th> 13309 <th class="th_tags">Tags</th> 13310 </tr> 13311 </thead> 13312 13313 <tbody> 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 <tr class="entry" id="controls_android.led.transmit"> 13325 <td class="entry_name" rowspan="1"> 13326 android.<wbr/>led.<wbr/>transmit 13327 </td> 13328 <td class="entry_type"> 13329 <span class="entry_type_name entry_type_name_enum">byte</span> 13330 13331 <span class="entry_type_visibility"> [hidden as boolean]</span> 13332 13333 <ul class="entry_type_enum"> 13334 <li> 13335 <span class="entry_type_enum_name">OFF</span> 13336 </li> 13337 <li> 13338 <span class="entry_type_enum_name">ON</span> 13339 </li> 13340 </ul> 13341 13342 </td> <!-- entry_type --> 13343 13344 <td class="entry_description"> 13345 <p>This LED is nominally used to indicate to the user 13346that the camera is powered on and may be streaming images back to the 13347Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may 13348disable this when video is processed locally and not transmitted to 13349any untrusted applications.<wbr/></p> 13350<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be 13351transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever 13352data is stored locally on the device.<wbr/></p> 13353<p>The LED <em>may</em> be off if a trusted application is using the data that 13354doesn't violate the above rules.<wbr/></p> 13355 </td> 13356 13357 <td class="entry_units"> 13358 </td> 13359 13360 <td class="entry_range"> 13361 </td> 13362 13363 <td class="entry_tags"> 13364 </td> 13365 13366 </tr> 13367 13368 13369 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13370 <!-- end of entry --> 13371 13372 13373 13374 <!-- end of kind --> 13375 </tbody> 13376 <tr><td colspan="6" class="kind">dynamic</td></tr> 13377 13378 <thead class="entries_header"> 13379 <tr> 13380 <th class="th_name">Property Name</th> 13381 <th class="th_type">Type</th> 13382 <th class="th_description">Description</th> 13383 <th class="th_units">Units</th> 13384 <th class="th_range">Range</th> 13385 <th class="th_tags">Tags</th> 13386 </tr> 13387 </thead> 13388 13389 <tbody> 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 <tr class="entry" id="dynamic_android.led.transmit"> 13401 <td class="entry_name" rowspan="1"> 13402 android.<wbr/>led.<wbr/>transmit 13403 </td> 13404 <td class="entry_type"> 13405 <span class="entry_type_name entry_type_name_enum">byte</span> 13406 13407 <span class="entry_type_visibility"> [hidden as boolean]</span> 13408 13409 <ul class="entry_type_enum"> 13410 <li> 13411 <span class="entry_type_enum_name">OFF</span> 13412 </li> 13413 <li> 13414 <span class="entry_type_enum_name">ON</span> 13415 </li> 13416 </ul> 13417 13418 </td> <!-- entry_type --> 13419 13420 <td class="entry_description"> 13421 <p>This LED is nominally used to indicate to the user 13422that the camera is powered on and may be streaming images back to the 13423Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may 13424disable this when video is processed locally and not transmitted to 13425any untrusted applications.<wbr/></p> 13426<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be 13427transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever 13428data is stored locally on the device.<wbr/></p> 13429<p>The LED <em>may</em> be off if a trusted application is using the data that 13430doesn't violate the above rules.<wbr/></p> 13431 </td> 13432 13433 <td class="entry_units"> 13434 </td> 13435 13436 <td class="entry_range"> 13437 </td> 13438 13439 <td class="entry_tags"> 13440 </td> 13441 13442 </tr> 13443 13444 13445 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13446 <!-- end of entry --> 13447 13448 13449 13450 <!-- end of kind --> 13451 </tbody> 13452 <tr><td colspan="6" class="kind">static</td></tr> 13453 13454 <thead class="entries_header"> 13455 <tr> 13456 <th class="th_name">Property Name</th> 13457 <th class="th_type">Type</th> 13458 <th class="th_description">Description</th> 13459 <th class="th_units">Units</th> 13460 <th class="th_range">Range</th> 13461 <th class="th_tags">Tags</th> 13462 </tr> 13463 </thead> 13464 13465 <tbody> 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 <tr class="entry" id="static_android.led.availableLeds"> 13477 <td class="entry_name" rowspan="1"> 13478 android.<wbr/>led.<wbr/>available<wbr/>Leds 13479 </td> 13480 <td class="entry_type"> 13481 <span class="entry_type_name entry_type_name_enum">byte</span> 13482 <span class="entry_type_container">x</span> 13483 13484 <span class="entry_type_array"> 13485 n 13486 </span> 13487 <span class="entry_type_visibility"> [hidden]</span> 13488 13489 <ul class="entry_type_enum"> 13490 <li> 13491 <span class="entry_type_enum_name">TRANSMIT</span> 13492 <span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used</p></span> 13493 </li> 13494 </ul> 13495 13496 </td> <!-- entry_type --> 13497 13498 <td class="entry_description"> 13499 <p>A list of camera LEDs that are available on this system.<wbr/></p> 13500 </td> 13501 13502 <td class="entry_units"> 13503 </td> 13504 13505 <td class="entry_range"> 13506 </td> 13507 13508 <td class="entry_tags"> 13509 </td> 13510 13511 </tr> 13512 13513 13514 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13515 <!-- end of entry --> 13516 13517 13518 13519 <!-- end of kind --> 13520 </tbody> 13521 13522 <!-- end of section --> 13523 <tr><td colspan="6" id="section_info" class="section">info</td></tr> 13524 13525 13526 <tr><td colspan="6" class="kind">static</td></tr> 13527 13528 <thead class="entries_header"> 13529 <tr> 13530 <th class="th_name">Property Name</th> 13531 <th class="th_type">Type</th> 13532 <th class="th_description">Description</th> 13533 <th class="th_units">Units</th> 13534 <th class="th_range">Range</th> 13535 <th class="th_tags">Tags</th> 13536 </tr> 13537 </thead> 13538 13539 <tbody> 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 <tr class="entry" id="static_android.info.supportedHardwareLevel"> 13551 <td class="entry_name" rowspan="1"> 13552 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level 13553 </td> 13554 <td class="entry_type"> 13555 <span class="entry_type_name entry_type_name_enum">byte</span> 13556 13557 <span class="entry_type_visibility"> [public]</span> 13558 13559 <ul class="entry_type_enum"> 13560 <li> 13561 <span class="entry_type_enum_name">LIMITED</span> 13562 </li> 13563 <li> 13564 <span class="entry_type_enum_name">FULL</span> 13565 </li> 13566 </ul> 13567 13568 </td> <!-- entry_type --> 13569 13570 <td class="entry_description"> 13571 <p>The camera 3 HAL device can implement one of two possible 13572operational modes; limited and full.<wbr/> Full support is 13573expected from new higher-end devices.<wbr/> Limited mode has 13574hardware requirements roughly in line with those for a 13575camera HAL device v1 implementation,<wbr/> and is expected from 13576older or inexpensive devices.<wbr/> Full is a strict superset of 13577limited,<wbr/> and they share the same essential operational flow.<wbr/></p> 13578<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p> 13579 </td> 13580 13581 <td class="entry_units"> 13582 </td> 13583 13584 <td class="entry_range"> 13585 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p> 13586 </td> 13587 13588 <td class="entry_tags"> 13589 </td> 13590 13591 </tr> 13592 13593 13594 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13595 <!-- end of entry --> 13596 13597 13598 13599 <!-- end of kind --> 13600 </tbody> 13601 13602 <!-- end of section --> 13603 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr> 13604 13605 13606 <tr><td colspan="6" class="kind">controls</td></tr> 13607 13608 <thead class="entries_header"> 13609 <tr> 13610 <th class="th_name">Property Name</th> 13611 <th class="th_type">Type</th> 13612 <th class="th_description">Description</th> 13613 <th class="th_units">Units</th> 13614 <th class="th_range">Range</th> 13615 <th class="th_tags">Tags</th> 13616 </tr> 13617 </thead> 13618 13619 <tbody> 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 <tr class="entry" id="controls_android.blackLevel.lock"> 13631 <td class="entry_name" rowspan="5"> 13632 android.<wbr/>black<wbr/>Level.<wbr/>lock 13633 </td> 13634 <td class="entry_type"> 13635 <span class="entry_type_name entry_type_name_enum">byte</span> 13636 13637 <span class="entry_type_visibility"> [public as boolean]</span> 13638 13639 <ul class="entry_type_enum"> 13640 <li> 13641 <span class="entry_type_enum_name">OFF</span> 13642 </li> 13643 <li> 13644 <span class="entry_type_enum_name">ON</span> 13645 </li> 13646 </ul> 13647 13648 </td> <!-- entry_type --> 13649 13650 <td class="entry_description"> 13651 <p>Whether black-level compensation is locked 13652to its current values,<wbr/> or is free to vary.<wbr/></p> 13653 </td> 13654 13655 <td class="entry_units"> 13656 </td> 13657 13658 <td class="entry_range"> 13659 </td> 13660 13661 <td class="entry_tags"> 13662 <ul class="entry_tags"> 13663 <li><a href="#tag_HAL2">HAL2</a></li> 13664 </ul> 13665 </td> 13666 13667 </tr> 13668 <tr class="entries_header"> 13669 <th class="th_details" colspan="5">Details</th> 13670 </tr> 13671 <tr class="entry_cont"> 13672 <td class="entry_details" colspan="5"> 13673 <p>When set to ON,<wbr/> the values used for black-level 13674compensation will not change until the lock is set to 13675OFF.<wbr/></p> 13676<p>Since changes to certain capture parameters (such as 13677exposure time) may require resetting of black level 13678compensation,<wbr/> the camera device must report whether setting 13679the black level lock was successful in the output result 13680metadata.<wbr/></p> 13681<p>For example,<wbr/> if a sequence of requests is as follows:</p> 13682<ul> 13683<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li> 13684<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li> 13685<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li> 13686<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li> 13687<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li> 13688<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li> 13689</ul> 13690<p>And the exposure change in Request 4 requires the camera 13691device to reset the black level offsets,<wbr/> then the output 13692result metadata is expected to be:</p> 13693<ul> 13694<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li> 13695<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li> 13696<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li> 13697<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li> 13698<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li> 13699<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li> 13700</ul> 13701<p>This indicates to the application that on frame 4,<wbr/> black 13702levels were reset due to exposure value changes,<wbr/> and pixel 13703values may not be consistent across captures.<wbr/></p> 13704<p>The camera device will maintain the lock to the extent 13705possible,<wbr/> only overriding the lock to OFF when changes to 13706other request parameters require a black level recalculation 13707or reset.<wbr/></p> 13708 </td> 13709 </tr> 13710 13711 <tr class="entries_header"> 13712 <th class="th_details" colspan="5">HAL Implementation Details</th> 13713 </tr> 13714 <tr class="entry_cont"> 13715 <td class="entry_details" colspan="5"> 13716 <p>If for some reason black level locking is no longer possible 13717(for example,<wbr/> the analog gain has changed,<wbr/> which forces 13718black level offsets to be recalculated),<wbr/> then the HAL must 13719override this request (and it must report 'OFF' when this 13720does happen) until the next capture for which locking is 13721possible again.<wbr/></p> 13722 </td> 13723 </tr> 13724 13725 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13726 <!-- end of entry --> 13727 13728 13729 13730 <!-- end of kind --> 13731 </tbody> 13732 <tr><td colspan="6" class="kind">dynamic</td></tr> 13733 13734 <thead class="entries_header"> 13735 <tr> 13736 <th class="th_name">Property Name</th> 13737 <th class="th_type">Type</th> 13738 <th class="th_description">Description</th> 13739 <th class="th_units">Units</th> 13740 <th class="th_range">Range</th> 13741 <th class="th_tags">Tags</th> 13742 </tr> 13743 </thead> 13744 13745 <tbody> 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 <tr class="entry" id="dynamic_android.blackLevel.lock"> 13757 <td class="entry_name" rowspan="5"> 13758 android.<wbr/>black<wbr/>Level.<wbr/>lock 13759 </td> 13760 <td class="entry_type"> 13761 <span class="entry_type_name entry_type_name_enum">byte</span> 13762 13763 <span class="entry_type_visibility"> [public as boolean]</span> 13764 13765 <ul class="entry_type_enum"> 13766 <li> 13767 <span class="entry_type_enum_name">OFF</span> 13768 </li> 13769 <li> 13770 <span class="entry_type_enum_name">ON</span> 13771 </li> 13772 </ul> 13773 13774 </td> <!-- entry_type --> 13775 13776 <td class="entry_description"> 13777 <p>Whether black-level compensation is locked 13778to its current values,<wbr/> or is free to vary.<wbr/></p> 13779 </td> 13780 13781 <td class="entry_units"> 13782 </td> 13783 13784 <td class="entry_range"> 13785 </td> 13786 13787 <td class="entry_tags"> 13788 <ul class="entry_tags"> 13789 <li><a href="#tag_HAL2">HAL2</a></li> 13790 </ul> 13791 </td> 13792 13793 </tr> 13794 <tr class="entries_header"> 13795 <th class="th_details" colspan="5">Details</th> 13796 </tr> 13797 <tr class="entry_cont"> 13798 <td class="entry_details" colspan="5"> 13799 <p>Whether the black level offset was locked for this frame.<wbr/> Should be 13800ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless 13801a change in other capture settings forced the camera device to 13802perform a black level reset.<wbr/></p> 13803 </td> 13804 </tr> 13805 13806 <tr class="entries_header"> 13807 <th class="th_details" colspan="5">HAL Implementation Details</th> 13808 </tr> 13809 <tr class="entry_cont"> 13810 <td class="entry_details" colspan="5"> 13811 <p>If for some reason black level locking is no longer possible 13812(for example,<wbr/> the analog gain has changed,<wbr/> which forces 13813black level offsets to be recalculated),<wbr/> then the HAL must 13814override this request (and it must report 'OFF' when this 13815does happen) until the next capture for which locking is 13816possible again.<wbr/></p> 13817 </td> 13818 </tr> 13819 13820 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr> 13821 <!-- end of entry --> 13822 13823 13824 13825 <!-- end of kind --> 13826 </tbody> 13827 13828 <!-- end of section --> 13829<!-- </namespace> --> 13830 </table> 13831 13832 <div class="tags" id="tag_index"> 13833 <h2>Tags</h2> 13834 <ul> 13835 <li id="tag_AWB">AWB - 13836 Needed for auto white balance 13837 13838 <ul class="tags_entries"> 13839 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li> 13840 </ul> 13841 </li> <!-- tag_AWB --> 13842 <li id="tag_BC">BC - 13843 Needed for backwards compatibility with old Java API 13844 13845 <ul class="tags_entries"> 13846 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li> 13847 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li> 13848 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li> 13849 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li> 13850 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li> 13851 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li> 13852 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li> 13853 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li> 13854 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li> 13855 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li> 13856 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li> 13857 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li> 13858 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li> 13859 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li> 13860 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li> 13861 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li> 13862 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li> 13863 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li> 13864 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li> 13865 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li> 13866 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li> 13867 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li> 13868 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li> 13869 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li> 13870 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li> 13871 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li> 13872 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li> 13873 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li> 13874 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li> 13875 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li> 13876 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li> 13877 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li> 13878 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li> 13879 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li> 13880 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li> 13881 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li> 13882 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li> 13883 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li> 13884 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li> 13885 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li> 13886 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li> 13887 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li> 13888 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li> 13889 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li> 13890 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li> 13891 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li> 13892 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li> 13893 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li> 13894 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li> 13895 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li> 13896 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li> 13897 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li> 13898 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li> 13899 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li> 13900 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li> 13901 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li> 13902 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li> 13903 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li> 13904 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li> 13905 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li> 13906 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li> 13907 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li> 13908 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li> 13909 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li> 13910 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li> 13911 </ul> 13912 </li> <!-- tag_BC --> 13913 <li id="tag_V1">V1 - 13914 New features for first camera 2 release (API1) 13915 13916 <ul class="tags_entries"> 13917 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li> 13918 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li> 13919 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li> 13920 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li> 13921 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li> 13922 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li> 13923 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li> 13924 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li> 13925 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li> 13926 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li> 13927 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li> 13928 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li> 13929 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li> 13930 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li> 13931 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li> 13932 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li> 13933 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li> 13934 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li> 13935 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li> 13936 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li> 13937 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li> 13938 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li> 13939 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li> 13940 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li> 13941 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li> 13942 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li> 13943 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li> 13944 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li> 13945 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li> 13946 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li> 13947 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li> 13948 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li> 13949 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li> 13950 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li> 13951 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li> 13952 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li> 13953 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li> 13954 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li> 13955 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li> 13956 </ul> 13957 </li> <!-- tag_V1 --> 13958 <li id="tag_ADV">ADV - None 13959 <ul class="tags_entries"> 13960 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li> 13961 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li> 13962 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li> 13963 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li> 13964 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li> 13965 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li> 13966 </ul> 13967 </li> <!-- tag_ADV --> 13968 <li id="tag_DNG">DNG - 13969 Needed for DNG file support 13970 13971 <ul class="tags_entries"> 13972 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li> 13973 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li> 13974 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li> 13975 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li> 13976 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li> 13977 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li> 13978 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li> 13979 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li> 13980 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li> 13981 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li> 13982 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li> 13983 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li> 13984 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li> 13985 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li> 13986 </ul> 13987 </li> <!-- tag_DNG --> 13988 <li id="tag_EXIF">EXIF - None 13989 <ul class="tags_entries"> 13990 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li> 13991 </ul> 13992 </li> <!-- tag_EXIF --> 13993 <li id="tag_HAL2">HAL2 - 13994 Entry is only used by camera device HAL 2.x 13995 13996 <ul class="tags_entries"> 13997 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li> 13998 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li> 13999 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li> 14000 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li> 14001 </ul> 14002 </li> <!-- tag_HAL2 --> 14003 <li id="tag_FULL">FULL - 14004 Entry is required for full hardware level devices, and optional for other hardware levels 14005 14006 <ul class="tags_entries"> 14007 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li> 14008 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li> 14009 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li> 14010 </ul> 14011 </li> <!-- tag_FULL --> 14012 </ul> 14013 </div> 14014 14015 [ <a href="#">top</a> ] 14016 14017</body> 14018</html> 14019