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 HAL2.0 Properties</title> 21 <style type="text/css"> 22 .section { font-size: 1.5em; font-weight: bold; background-color: beige; padding: 0.5em 0em 0.5em 0.1em } 23 .kind { font-size: 1.2em; font-weight: bold; padding-left: 0.5em; background-color: gray } 24 .entry { background-color: burlywood } 25 26 /* table column sizes */ 27 table { table-layout: fixed; width: 100%; word-wrap: break-word } 28 td,th { border: 1px solid; } 29 .th_name { width: 20% } 30 .th_units { width: 10% } 31 .th_tags { width: 5% } 32 .th_notes { width: 30% } 33 .th_type { width: 20% } 34 td { font-size: 0.9em; } 35 36 /* hide the first thead, we need it there only to enforce column sizes */ 37 .thead_dummy { visibility: hidden; } 38 39 /* Entry flair */ 40 .entry_name { font-family: monospace; font-style: italic; } 41 42 /* Entry type flair */ 43 .entry_type_name { color: darkgreen; font-weight: bold; } 44 .entry_type_name_enum:after { color: darkgreen; font-weight: bold; content:" (enum)" } 45 .entry_type_enum_name { font-family: monospace; font-weight: bolder; } 46 .entry_type_enum_notes:before { content:" - " } 47 .entry_type_enum_value:before { content:" = " } 48 .entry_type_enum_value { font-family: monospace; } 49 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; } 50 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;} 51 52 /* Entry tags flair */ 53 .entry_tags ul { list-style-type: none; } 54 55 56 /* TODO: generate abbr element for each tag link? */ 57 /* TODO for each x.y.z try to link it to the entry */ 58 59 </style> 60 61 <style> 62 63 { 64 /* broken... 65 supposedly there is a bug in chrome that it lays out tables before 66 it knows its being printed, so the page-break-* styles are ignored 67 */ 68 tr { page-break-after: always; page-break-inside: avoid; } 69 } 70 71 </style> 72 </head> 73 74 75 76 77 <body> 78 <h1>Android Camera HAL2.0 Properties</h1> 79 80 <h2>Table of Contents</h2> 81 <ul class="toc"> 82 <li><a href="#tag_index">Tags</a></li> 83 84 85 <li><p class="toc_section"><a href="#section_colorCorrection">colorCorrection</a></p> 86 <ul class="toc_section"> 87 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a> (controls)</li> 88 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a> (controls)</li> 89 <li><a href="#dynamic_android.colorCorrection.mode">android.colorCorrection.mode</a> (dynamic)</li> 90 </ul> 91 </li> <!-- toc_section --> 92 <li><p class="toc_section"><a href="#section_control">control</a></p> 93 <ul class="toc_section"> 94 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li> 95 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li> 96 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li> 97 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li> 98 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li> 99 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li> 100 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li> 101 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li> 102 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li> 103 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li> 104 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li> 105 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li> 106 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li> 107 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li> 108 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li> 109 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li> 110 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li> 111 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li> 112 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a> (static)</li> 113 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li> 114 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a> (static)</li> 115 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li> 116 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li> 117 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li> 118 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li> 119 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li> 120 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li> 121 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li> 122 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li> 123 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li> 124 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a> (dynamic)</li> 125 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a> (dynamic)</li> 126 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a> (dynamic)</li> 127 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a> (dynamic)</li> 128 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a> (dynamic)</li> 129 <li><a href="#dynamic_android.control.afState">android.control.afState</a> (dynamic)</li> 130 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a> (dynamic)</li> 131 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a> (dynamic)</li> 132 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a> (dynamic)</li> 133 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a> (dynamic)</li> 134 <li><a href="#dynamic_android.control.mode">android.control.mode</a> (dynamic)</li> 135 </ul> 136 </li> <!-- toc_section --> 137 <li><p class="toc_section"><a href="#section_demosaic">demosaic</a></p> 138 <ul class="toc_section"> 139 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li> 140 </ul> 141 </li> <!-- toc_section --> 142 <li><p class="toc_section"><a href="#section_edge">edge</a></p> 143 <ul class="toc_section"> 144 <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li> 145 <li><a href="#controls_android.edge.strength">android.edge.strength</a> (controls)</li> 146 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li> 147 </ul> 148 </li> <!-- toc_section --> 149 <li><p class="toc_section"><a href="#section_flash">flash</a></p> 150 <ul class="toc_section"> 151 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li> 152 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li> 153 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li> 154 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li> 155 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li> 156 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li> 157 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li> 158 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a> (dynamic)</li> 159 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a> (dynamic)</li> 160 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a> (dynamic)</li> 161 <li><a href="#dynamic_android.flash.state">android.flash.state</a> (dynamic)</li> 162 </ul> 163 </li> <!-- toc_section --> 164 <li><p class="toc_section"><a href="#section_geometric">geometric</a></p> 165 <ul class="toc_section"> 166 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a> (controls)</li> 167 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li> 168 </ul> 169 </li> <!-- toc_section --> 170 <li><p class="toc_section"><a href="#section_hotPixel">hotPixel</a></p> 171 <ul class="toc_section"> 172 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li> 173 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li> 174 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li> 175 </ul> 176 </li> <!-- toc_section --> 177 <li><p class="toc_section"><a href="#section_jpeg">jpeg</a></p> 178 <ul class="toc_section"> 179 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li> 180 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li> 181 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li> 182 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li> 183 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li> 184 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li> 185 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li> 186 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li> 187 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a> (static)</li> 188 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (dynamic)</li> 189 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (dynamic)</li> 190 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (dynamic)</li> 191 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a> (dynamic)</li> 192 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a> (dynamic)</li> 193 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a> (dynamic)</li> 194 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (dynamic)</li> 195 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (dynamic)</li> 196 </ul> 197 </li> <!-- toc_section --> 198 <li><p class="toc_section"><a href="#section_lens">lens</a></p> 199 <ul class="toc_section"> 200 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li> 201 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li> 202 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li> 203 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li> 204 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li> 205 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li> 206 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li> 207 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li> 208 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li> 209 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li> 210 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li> 211 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li> 212 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li> 213 <li><a href="#static_android.lens.info.shadingMap">android.lens.info.shadingMap</a> (static)</li> 214 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li> 215 <li><a href="#static_android.lens.facing">android.lens.facing</a> (static)</li> 216 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li> 217 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li> 218 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li> 219 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li> 220 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li> 221 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li> 222 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li> 223 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li> 224 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li> 225 </ul> 226 </li> <!-- toc_section --> 227 <li><p class="toc_section"><a href="#section_noiseReduction">noiseReduction</a></p> 228 <ul class="toc_section"> 229 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li> 230 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a> (controls)</li> 231 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li> 232 </ul> 233 </li> <!-- toc_section --> 234 <li><p class="toc_section"><a href="#section_quirks">quirks</a></p> 235 <ul class="toc_section"> 236 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a> (static)</li> 237 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a> (static)</li> 238 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a> (static)</li> 239 </ul> 240 </li> <!-- toc_section --> 241 <li><p class="toc_section"><a href="#section_request">request</a></p> 242 <ul class="toc_section"> 243 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a> (controls)</li> 244 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li> 245 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li> 246 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a> (controls)</li> 247 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li> 248 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li> 249 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li> 250 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li> 251 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a> (dynamic)</li> 252 <li><a href="#dynamic_android.request.id">android.request.id</a> (dynamic)</li> 253 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a> (dynamic)</li> 254 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a> (dynamic)</li> 255 </ul> 256 </li> <!-- toc_section --> 257 <li><p class="toc_section"><a href="#section_scaler">scaler</a></p> 258 <ul class="toc_section"> 259 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li> 260 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li> 261 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li> 262 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li> 263 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li> 264 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li> 265 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li> 266 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li> 267 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a> (static)</li> 268 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a> (dynamic)</li> 269 </ul> 270 </li> <!-- toc_section --> 271 <li><p class="toc_section"><a href="#section_sensor">sensor</a></p> 272 <ul class="toc_section"> 273 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li> 274 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li> 275 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li> 276 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li> 277 <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</a> (static)</li> 278 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li> 279 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li> 280 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li> 281 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li> 282 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li> 283 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li> 284 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li> 285 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li> 286 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li> 287 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li> 288 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li> 289 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li> 290 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li> 291 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li> 292 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li> 293 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li> 294 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li> 295 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li> 296 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a> (static)</li> 297 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a> (dynamic)</li> 298 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a> (dynamic)</li> 299 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a> (dynamic)</li> 300 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li> 301 </ul> 302 </li> <!-- toc_section --> 303 <li><p class="toc_section"><a href="#section_shading">shading</a></p> 304 <ul class="toc_section"> 305 <li><a href="#controls_android.shading.mode">android.shading.mode</a> (controls)</li> 306 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li> 307 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a> (dynamic)</li> 308 </ul> 309 </li> <!-- toc_section --> 310 <li><p class="toc_section"><a href="#section_statistics">statistics</a></p> 311 <ul class="toc_section"> 312 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li> 313 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li> 314 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li> 315 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a> (static)</li> 316 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a> (static)</li> 317 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a> (static)</li> 318 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a> (static)</li> 319 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a> (static)</li> 320 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a> (static)</li> 321 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (dynamic)</li> 322 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li> 323 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li> 324 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li> 325 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li> 326 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li> 327 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a> (dynamic)</li> 328 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li> 329 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (dynamic)</li> 330 </ul> 331 </li> <!-- toc_section --> 332 <li><p class="toc_section"><a href="#section_tonemap">tonemap</a></p> 333 <ul class="toc_section"> 334 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a> (controls)</li> 335 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a> (controls)</li> 336 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li> 337 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a> (controls)</li> 338 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a> (static)</li> 339 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a> (dynamic)</li> 340 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a> (dynamic)</li> 341 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a> (dynamic)</li> 342 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a> (dynamic)</li> 343 </ul> 344 </li> <!-- toc_section --> 345 <li><p class="toc_section"><a href="#section_led">led</a></p> 346 <ul class="toc_section"> 347 <li><a href="#controls_android.led.transmit">android.led.transmit</a> (controls)</li> 348 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a> (dynamic)</li> 349 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a> (static)</li> 350 </ul> 351 </li> <!-- toc_section --> 352 <li><p class="toc_section"><a href="#section_info">info</a></p> 353 <ul class="toc_section"> 354 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a> (static)</li> 355 </ul> 356 </li> <!-- toc_section --> 357 </ul> 358 359 <h1>Properties</h1> 360 <table class="properties"> 361 362 <thead class="thead_dummy"> 363 <tr> 364 <th class="th_name">Property Name</th> 365 <th class="th_type">Type</th> 366 <th class="th_description">Description</th> 367 <th class="th_units">Units</th> 368 <th class="th_range">Range</th> 369 <th class="th_notes">Notes</th> 370 <th class="th_tags">Tags</th> 371 </tr> 372 </thead> <!-- so that the first occurrence of thead is not 373 above the first occurrence of tr --> 374 <!-- <namespace name="android"> --> 375 <tr><td colspan="7" id="section_colorCorrection" class="section">colorCorrection</td></tr> 376 377 378 <tr><td colspan="7" class="kind">controls</td></tr> 379 380 <thead> 381 <tr> 382 <th class="th_name">Property Name</th> 383 <th class="th_type">Type</th> 384 <th class="th_description">Description</th> 385 <th class="th_units">Units</th> 386 <th class="th_range">Range</th> 387 <th class="th_notes">Notes</th> 388 <th class="th_tags">Tags</th> 389 </tr> 390 </thead> 391 392 <tbody> 393 394 395 396 397 398 399 400 401 402 403 <tr class="entry" id="controls_android.colorCorrection.mode"> 404 <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>mode</td> 405 <td class="entry_type"> 406 <span class="entry_type_name entry_type_name_enum">byte</span> 407 408 409 410 <ul class="entry_type_enum"> 411 <li> 412 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span> 413 <span class="entry_type_enum_notes">Use the android.<wbr>color<wbr>Correction.<wbr>transform matrix 414 to do color conversion</span> 415 </li> 416 <li> 417 <span class="entry_type_enum_name">FAST</span> 418 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 419 bayer output</span> 420 </li> 421 <li> 422 <span class="entry_type_enum_name">HIGH_QUALITY</span> 423 <span class="entry_type_enum_notes">Frame rate may be reduced by high 424 quality</span> 425 </li> 426 </ul> 427 428 </td> <!-- entry_type --> 429 430 <td class="entry_description"> 431 </td> 432 433 <td class="entry_units"> 434 </td> 435 436 <td class="entry_range"> 437 </td> 438 439 <td class="entry_notes"> 440 </td> 441 442 <td class="entry_tags"> 443 </td> 444 445 </tr> <!-- end of entry --> 446 447 448 <tr class="entry" id="controls_android.colorCorrection.transform"> 449 <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>transform</td> 450 <td class="entry_type"> 451 <span class="entry_type_name">float</span> 452 <span class="entry_type_container">x</span> 453 454 <span class="entry_type_array"> 455 3 x 3 456 </span> 457 458 <div class="entry_type_notes">3x3 float matrix in row-major order</div> 459 460 461 </td> <!-- entry_type --> 462 463 <td class="entry_description"> 464 A transform matrix to chromatically adapt 465 pixels in the CIE XYZ (1931) color space from the scene 466 illuminant to the sRGB-standard 467 D65-illuminant 468 </td> 469 470 <td class="entry_units"> 471 </td> 472 473 <td class="entry_range"> 474 Output values are expected to be in the range 475 (0,<wbr>1) 476 </td> 477 478 <td class="entry_notes"> 479 Values outside (0,<wbr>1) should be clamped.<wbr> Need to 480 provide utilities to go from CCT (+hue?),<wbr> or (x,<wbr>y) white 481 point,<wbr> (or AWB mode) to matrix; use linear Bradford 482 algorithm.<wbr> 483 </td> 484 485 <td class="entry_tags"> 486 </td> 487 488 </tr> <!-- end of entry --> 489 490 491 492 <!-- end of kind --> 493 </tbody> 494 <tr><td colspan="7" class="kind">dynamic</td></tr> 495 496 <thead> 497 <tr> 498 <th class="th_name">Property Name</th> 499 <th class="th_type">Type</th> 500 <th class="th_description">Description</th> 501 <th class="th_units">Units</th> 502 <th class="th_range">Range</th> 503 <th class="th_notes">Notes</th> 504 <th class="th_tags">Tags</th> 505 </tr> 506 </thead> 507 508 <tbody> 509 510 511 512 513 514 515 516 517 518 519 <tr class="entry" id="dynamic_android.colorCorrection.mode"> 520 <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>mode</td> 521 <td class="entry_type"> 522 <span class="entry_type_name entry_type_name_enum">byte</span> 523 524 525 526 <ul class="entry_type_enum"> 527 <li> 528 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span> 529 <span class="entry_type_enum_notes">Use the android.<wbr>color<wbr>Correction.<wbr>transform matrix 530 to do color conversion</span> 531 </li> 532 <li> 533 <span class="entry_type_enum_name">FAST</span> 534 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 535 bayer output</span> 536 </li> 537 <li> 538 <span class="entry_type_enum_name">HIGH_QUALITY</span> 539 <span class="entry_type_enum_notes">Frame rate may be reduced by high 540 quality</span> 541 </li> 542 </ul> 543 544 </td> <!-- entry_type --> 545 546 <td class="entry_description"> 547 </td> 548 549 <td class="entry_units"> 550 </td> 551 552 <td class="entry_range"> 553 </td> 554 555 <td class="entry_notes"> 556 </td> 557 558 <td class="entry_tags"> 559 </td> 560 561 </tr> <!-- end of entry --> 562 563 564 565 <!-- end of kind --> 566 </tbody> 567 568 <!-- end of section --> 569 <tr><td colspan="7" id="section_control" class="section">control</td></tr> 570 571 572 <tr><td colspan="7" class="kind">controls</td></tr> 573 574 <thead> 575 <tr> 576 <th class="th_name">Property Name</th> 577 <th class="th_type">Type</th> 578 <th class="th_description">Description</th> 579 <th class="th_units">Units</th> 580 <th class="th_range">Range</th> 581 <th class="th_notes">Notes</th> 582 <th class="th_tags">Tags</th> 583 </tr> 584 </thead> 585 586 <tbody> 587 588 589 590 591 592 593 594 595 596 597 <tr class="entry" id="controls_android.control.aeAntibandingMode"> 598 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Antibanding<wbr>Mode</td> 599 <td class="entry_type"> 600 <span class="entry_type_name entry_type_name_enum">byte</span> 601 602 603 604 <ul class="entry_type_enum"> 605 <li> 606 <span class="entry_type_enum_name">OFF</span> 607 </li> 608 <li> 609 <span class="entry_type_enum_name">50HZ</span> 610 </li> 611 <li> 612 <span class="entry_type_enum_name">60HZ</span> 613 </li> 614 <li> 615 <span class="entry_type_enum_name">AUTO</span> 616 </li> 617 </ul> 618 619 </td> <!-- entry_type --> 620 621 <td class="entry_description"> 622 Enum for controlling 623 antibanding 624 </td> 625 626 <td class="entry_units"> 627 </td> 628 629 <td class="entry_range"> 630 631 android.<wbr>control.<wbr>ae<wbr>Available<wbr>Antibanding<wbr>Modes 632 </td> 633 634 <td class="entry_notes"> 635 </td> 636 637 <td class="entry_tags"> 638 </td> 639 640 </tr> <!-- end of entry --> 641 642 643 <tr class="entry" id="controls_android.control.aeExposureCompensation"> 644 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Exposure<wbr>Compensation</td> 645 <td class="entry_type"> 646 <span class="entry_type_name">int32</span> 647 648 649 650 651 </td> <!-- entry_type --> 652 653 <td class="entry_description"> 654 Adjustment to AE target image 655 brightness 656 </td> 657 658 <td class="entry_units"> 659 count of positive/<wbr>negative EV steps 660 </td> 661 662 <td class="entry_range"> 663 </td> 664 665 <td class="entry_notes"> 666 For example,<wbr> if EV step is 0.<wbr>333,<wbr> '6' will mean an 667 exposure compensation of +2 EV; -3 will mean an exposure 668 compensation of -1 669 </td> 670 671 <td class="entry_tags"> 672 <ul class="entry_tags"> 673 <li><a href="#tag_BC">BC</a></li> 674 </ul> 675 </td> 676 677 </tr> <!-- end of entry --> 678 679 680 <tr class="entry" id="controls_android.control.aeLock"> 681 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Lock</td> 682 <td class="entry_type"> 683 <span class="entry_type_name entry_type_name_enum">byte</span> 684 685 686 687 <ul class="entry_type_enum"> 688 <li> 689 <span class="entry_type_enum_name">OFF</span> 690 <span class="entry_type_enum_notes">Autoexposure lock is disabled; the AE algorithm 691 is free to update its parameters.<wbr></span> 692 </li> 693 <li> 694 <span class="entry_type_enum_name">ON</span> 695 <span class="entry_type_enum_notes">Autoexposure lock is enabled; the AE algorithm 696 must not update the exposure and sensitivity parameters 697 while the lock is active</span> 698 </li> 699 </ul> 700 701 </td> <!-- entry_type --> 702 703 <td class="entry_description"> 704 Whether AE is currently locked to its latest 705 calculated values 706 </td> 707 708 <td class="entry_units"> 709 </td> 710 711 <td class="entry_range"> 712 </td> 713 714 <td class="entry_notes"> 715 Note that even when AE is locked,<wbr> the flash may be 716 fired if the AE mode is ON_<wbr>AUTO_<wbr>FLASH /<wbr> ON_<wbr>ALWAYS_<wbr>FLASH /<wbr> 717 ON_<wbr>AUTO_<wbr>FLASH_<wbr>REDEYE.<wbr> 718 </td> 719 720 <td class="entry_tags"> 721 <ul class="entry_tags"> 722 <li><a href="#tag_BC">BC</a></li> 723 </ul> 724 </td> 725 726 </tr> <!-- end of entry --> 727 728 729 <tr class="entry" id="controls_android.control.aeMode"> 730 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Mode</td> 731 <td class="entry_type"> 732 <span class="entry_type_name entry_type_name_enum">byte</span> 733 734 735 736 <ul class="entry_type_enum"> 737 <li> 738 <span class="entry_type_enum_name">OFF</span> 739 <span class="entry_type_enum_notes">Autoexposure is disabled; sensor.<wbr>exposureTime 740 and sensor.<wbr>sensitivity are used</span> 741 </li> 742 <li> 743 <span class="entry_type_enum_name">ON</span> 744 <span class="entry_type_enum_notes">Autoexposure is active,<wbr> no flash 745 control</span> 746 </li> 747 <li> 748 <span class="entry_type_enum_name">ON_AUTO_FLASH</span> 749 <span class="entry_type_enum_notes">if flash exists Autoexposure is active,<wbr> auto 750 flash control; flash may be fired when precapture 751 trigger is activated,<wbr> and for captures for which 752 captureIntent = STILL_<wbr>CAPTURE</span> 753 </li> 754 <li> 755 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span> 756 <span class="entry_type_enum_notes">if flash exists Autoexposure is active,<wbr> auto 757 flash control for precapture trigger and always flash 758 when captureIntent = STILL_<wbr>CAPTURE</span> 759 </li> 760 <li> 761 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span> 762 <span class="entry_type_enum_notes">optional Automatic red eye reduction with flash.<wbr> 763 If deemed necessary,<wbr> red eye reduction sequence should 764 fire when precapture trigger is activated,<wbr> and final 765 flash should fire when captureIntent = 766 STILL_<wbr>CAPTURE</span> 767 </li> 768 </ul> 769 770 </td> <!-- entry_type --> 771 772 <td class="entry_description"> 773 Whether AE is currently updating the sensor 774 exposure and sensitivity fields 775 </td> 776 777 <td class="entry_units"> 778 </td> 779 780 <td class="entry_range"> 781 android.<wbr>control.<wbr>ae<wbr>Available<wbr>Modes 782 </td> 783 784 <td class="entry_notes"> 785 Only effective if android.<wbr>control.<wbr>mode = 786 AUTO 787 </td> 788 789 <td class="entry_tags"> 790 <ul class="entry_tags"> 791 <li><a href="#tag_BC">BC</a></li> 792 </ul> 793 </td> 794 795 </tr> <!-- end of entry --> 796 797 798 <tr class="entry" id="controls_android.control.aeRegions"> 799 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Regions</td> 800 <td class="entry_type"> 801 <span class="entry_type_name">int32</span> 802 <span class="entry_type_container">x</span> 803 804 <span class="entry_type_array"> 805 5 x area_count 806 </span> 807 808 809 810 </td> <!-- entry_type --> 811 812 <td class="entry_description"> 813 List of areas to use for 814 metering 815 </td> 816 817 <td class="entry_units"> 818 </td> 819 820 <td class="entry_range"> 821 </td> 822 823 <td class="entry_notes"> 824 Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> 825 xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the 826 active pixel array,<wbr> with (0,<wbr>0) being the top-left of the 827 active pixel array,<wbr> and 828 (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> 829 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the 830 bottom-right point of the active pixel array.<wbr> The weight 831 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then 832 no specific metering area needs to be used by the HAL.<wbr> If 833 the metering region is outside the current 834 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the 835 sections outside the region and output the used sections 836 in the frame metadata 837 </td> 838 839 <td class="entry_tags"> 840 <ul class="entry_tags"> 841 <li><a href="#tag_BC">BC</a></li> 842 </ul> 843 </td> 844 845 </tr> <!-- end of entry --> 846 847 848 <tr class="entry" id="controls_android.control.aeTargetFpsRange"> 849 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Target<wbr>Fps<wbr>Range</td> 850 <td class="entry_type"> 851 <span class="entry_type_name">int32</span> 852 <span class="entry_type_container">x</span> 853 854 <span class="entry_type_array"> 855 2 856 </span> 857 858 859 860 </td> <!-- entry_type --> 861 862 <td class="entry_description"> 863 Range over which fps can be adjusted to 864 maintain exposure 865 </td> 866 867 <td class="entry_units"> 868 </td> 869 870 <td class="entry_range"> 871 android.<wbr>control.<wbr>ae<wbr>Available<wbr>Target<wbr>Fps<wbr>Ranges 872 </td> 873 874 <td class="entry_notes"> 875 Only constrains AE algorithm,<wbr> not manual control 876 of android.<wbr>sensor.<wbr>exposure<wbr>Time 877 </td> 878 879 <td class="entry_tags"> 880 <ul class="entry_tags"> 881 <li><a href="#tag_BC">BC</a></li> 882 </ul> 883 </td> 884 885 </tr> <!-- end of entry --> 886 887 888 <tr class="entry" id="controls_android.control.aePrecaptureTrigger"> 889 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Precapture<wbr>Trigger</td> 890 <td class="entry_type"> 891 <span class="entry_type_name entry_type_name_enum">byte</span> 892 893 894 895 <ul class="entry_type_enum"> 896 <li> 897 <span class="entry_type_enum_name">IDLE</span> 898 <span class="entry_type_enum_notes">The trigger is idle.<wbr></span> 899 </li> 900 <li> 901 <span class="entry_type_enum_name">START</span> 902 <span class="entry_type_enum_notes">The precapture metering sequence 903 must be started.<wbr> The exact effect of the precapture 904 trigger depends on the current AE mode and 905 state.<wbr></span> 906 </li> 907 </ul> 908 909 </td> <!-- entry_type --> 910 911 <td class="entry_description"> 912 Whether the HAL must trigger precapture 913 metering.<wbr> 914 </td> 915 916 <td class="entry_units"> 917 </td> 918 919 <td class="entry_range"> 920 </td> 921 922 <td class="entry_notes"> 923 This entry is normally set to IDLE,<wbr> or is not 924 included at all in the request settings.<wbr> When included and 925 set to START,<wbr> the HAL must trigger the autoexposure 926 precapture metering sequence.<wbr> The effect of AE precapture 927 trigger depends on the current AE mode and state; see the 928 camera HAL device v3 header for details.<wbr> 929 </td> 930 931 <td class="entry_tags"> 932 <ul class="entry_tags"> 933 <li><a href="#tag_BC">BC</a></li> 934 </ul> 935 </td> 936 937 </tr> <!-- end of entry --> 938 939 940 <tr class="entry" id="controls_android.control.afMode"> 941 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Mode</td> 942 <td class="entry_type"> 943 <span class="entry_type_name entry_type_name_enum">byte</span> 944 945 946 947 <ul class="entry_type_enum"> 948 <li> 949 <span class="entry_type_enum_name">OFF</span> 950 <span class="entry_type_enum_notes">The 3A routines do not control the lens; 951 android.<wbr>lens.<wbr>focus<wbr>Position is controlled by the 952 application</span> 953 </li> 954 <li> 955 <span class="entry_type_enum_name">AUTO</span> 956 <span class="entry_type_enum_notes">if lens is not fixed focus.<wbr> Use 957 android.<wbr>lens.<wbr>minimum<wbr>Focus<wbr>Distance to determine if lens 958 is fixed focus In this mode,<wbr> the lens does not move 959 unless the autofocus trigger action is called.<wbr> When 960 that trigger is activated,<wbr> AF must transition to 961 ACTIVE_<wbr>SCAN,<wbr> then to the outcome of the scan (FOCUSED 962 or NOT_<wbr>FOCUSED).<wbr> Triggering cancel AF resets the lens 963 position to default,<wbr> and sets the AF state to 964 INACTIVE.<wbr></span> 965 </li> 966 <li> 967 <span class="entry_type_enum_name">MACRO</span> 968 <span class="entry_type_enum_notes">In this mode,<wbr> the lens does not move unless the 969 autofocus trigger action is called.<wbr> When that trigger 970 is activated,<wbr> AF must transition to ACTIVE_<wbr>SCAN,<wbr> then 971 to the outcome of the scan (FOCUSED or NOT_<wbr>FOCUSED).<wbr> 972 Triggering cancel AF resets the lens position to 973 default,<wbr> and sets the AF state to 974 INACTIVE.<wbr></span> 975 </li> 976 <li> 977 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span> 978 <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens 979 position continually to attempt to provide a 980 constantly-in-focus image stream.<wbr> The focusing behavior 981 should be suitable for good quality video recording; 982 typically this means slower focus movement and no 983 overshoots.<wbr> When the AF trigger is not involved,<wbr> the AF 984 algorithm should start in INACTIVE state,<wbr> and then 985 transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states 986 as appropriate.<wbr> When the AF trigger is activated,<wbr> the 987 algorithm should immediately transition into AF_<wbr>FOCUSED 988 or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the lens 989 position until a cancel AF trigger is received.<wbr> Once 990 cancel is received,<wbr> the algorithm should transition 991 back to INACTIVE and resume passive scan.<wbr> Note that 992 this behavior is not identical to CONTINUOUS_<wbr>PICTURE,<wbr> 993 since an ongoing PASSIVE_<wbr>SCAN must immediately be 994 canceled.<wbr></span> 995 </li> 996 <li> 997 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span> 998 <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens 999 position continually to attempt to provide a 1000 constantly-in-focus image stream.<wbr> The focusing behavior 1001 should be suitable for still image capture; typically 1002 this means focusing as fast as possible.<wbr> When the AF 1003 trigger is not involved,<wbr> the AF algorithm should start 1004 in INACTIVE state,<wbr> and then transition into 1005 PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states as appropriate 1006 as it attempts to maintain focus.<wbr> When the AF trigger 1007 is activated,<wbr> the algorithm should finish its 1008 PASSIVE_<wbr>SCAN if active,<wbr> and then transition into 1009 AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock 1010 the lens position until a cancel AF trigger is 1011 received.<wbr> When the AF cancel trigger is activated,<wbr> the 1012 algorithm should transition back to INACTIVE and then 1013 act as if it has just been started.<wbr></span> 1014 </li> 1015 <li> 1016 <span class="entry_type_enum_name">EDOF</span> 1017 <span class="entry_type_enum_notes">Extended depth of field (digital focus).<wbr> AF 1018 trigger is ignored,<wbr> AF state should always be 1019 INACTIVE.<wbr></span> 1020 </li> 1021 </ul> 1022 1023 </td> <!-- entry_type --> 1024 1025 <td class="entry_description"> 1026 Whether AF is currently enabled,<wbr> and what 1027 mode it is set to 1028 </td> 1029 1030 <td class="entry_units"> 1031 </td> 1032 1033 <td class="entry_range"> 1034 </td> 1035 1036 <td class="entry_notes"> 1037 </td> 1038 1039 <td class="entry_tags"> 1040 <ul class="entry_tags"> 1041 <li><a href="#tag_BC">BC</a></li> 1042 </ul> 1043 </td> 1044 1045 </tr> <!-- end of entry --> 1046 1047 1048 <tr class="entry" id="controls_android.control.afRegions"> 1049 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Regions</td> 1050 <td class="entry_type"> 1051 <span class="entry_type_name">int32</span> 1052 <span class="entry_type_container">x</span> 1053 1054 <span class="entry_type_array"> 1055 5 x area_count 1056 </span> 1057 1058 1059 1060 </td> <!-- entry_type --> 1061 1062 <td class="entry_description"> 1063 List of areas to use for focus 1064 estimation 1065 </td> 1066 1067 <td class="entry_units"> 1068 </td> 1069 1070 <td class="entry_range"> 1071 </td> 1072 1073 <td class="entry_notes"> 1074 Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> 1075 xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the 1076 active pixel array,<wbr> with (0,<wbr>0) being the top-left of the 1077 active pixel array,<wbr> and 1078 (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> 1079 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the 1080 bottom-right point of the active pixel array.<wbr> The weight 1081 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then 1082 no specific focus area needs to be used by the HAL.<wbr> If 1083 the focusing region is outside the current 1084 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the 1085 sections outside the region and output the used sections 1086 in the frame metadata 1087 </td> 1088 1089 <td class="entry_tags"> 1090 <ul class="entry_tags"> 1091 <li><a href="#tag_BC">BC</a></li> 1092 </ul> 1093 </td> 1094 1095 </tr> <!-- end of entry --> 1096 1097 1098 <tr class="entry" id="controls_android.control.afTrigger"> 1099 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Trigger</td> 1100 <td class="entry_type"> 1101 <span class="entry_type_name entry_type_name_enum">byte</span> 1102 1103 1104 1105 <ul class="entry_type_enum"> 1106 <li> 1107 <span class="entry_type_enum_name">IDLE</span> 1108 <span class="entry_type_enum_notes">The trigger is idle.<wbr></span> 1109 </li> 1110 <li> 1111 <span class="entry_type_enum_name">START</span> 1112 <span class="entry_type_enum_notes">Autofocus must trigger now.<wbr></span> 1113 </li> 1114 <li> 1115 <span class="entry_type_enum_name">CANCEL</span> 1116 <span class="entry_type_enum_notes">Autofocus must return to initial 1117 state,<wbr> and cancel any active trigger.<wbr></span> 1118 </li> 1119 </ul> 1120 1121 </td> <!-- entry_type --> 1122 1123 <td class="entry_description"> 1124 Whether the HAL must trigger autofocus.<wbr> 1125 </td> 1126 1127 <td class="entry_units"> 1128 </td> 1129 1130 <td class="entry_range"> 1131 </td> 1132 1133 <td class="entry_notes"> 1134 This entry is normally set to IDLE,<wbr> or is not 1135 included at all in the request settings.<wbr> When included and 1136 set to START,<wbr> the HAL must trigger the autofocus 1137 algorithm.<wbr> The effect of AF trigger depends on the current 1138 AF mode and state; see the camera HAL device v3 header for 1139 details.<wbr> When set to CANCEL,<wbr> the HAL must cancel any active 1140 trigger,<wbr> and return to initial AF state.<wbr> 1141 </td> 1142 1143 <td class="entry_tags"> 1144 <ul class="entry_tags"> 1145 <li><a href="#tag_BC">BC</a></li> 1146 </ul> 1147 </td> 1148 1149 </tr> <!-- end of entry --> 1150 1151 1152 <tr class="entry" id="controls_android.control.awbLock"> 1153 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Lock</td> 1154 <td class="entry_type"> 1155 <span class="entry_type_name entry_type_name_enum">byte</span> 1156 1157 1158 1159 <ul class="entry_type_enum"> 1160 <li> 1161 <span class="entry_type_enum_name">OFF</span> 1162 <span class="entry_type_enum_notes">Auto-whitebalance lock is disabled; the AWB 1163 algorithm is free to update its parameters if in AUTO 1164 mode.<wbr></span> 1165 </li> 1166 <li> 1167 <span class="entry_type_enum_name">ON</span> 1168 <span class="entry_type_enum_notes">Auto-whitebalance lock is enabled; the AWB 1169 algorithm must not update the exposure and sensitivity 1170 parameters while the lock is active</span> 1171 </li> 1172 </ul> 1173 1174 </td> <!-- entry_type --> 1175 1176 <td class="entry_description"> 1177 Whether AWB is currently locked to its 1178 latest calculated values 1179 </td> 1180 1181 <td class="entry_units"> 1182 </td> 1183 1184 <td class="entry_range"> 1185 </td> 1186 1187 <td class="entry_notes"> 1188 Note that AWB lock is only meaningful for AUTO 1189 mode; in other modes,<wbr> AWB is already fixed to a specific 1190 setting 1191 </td> 1192 1193 <td class="entry_tags"> 1194 <ul class="entry_tags"> 1195 <li><a href="#tag_BC">BC</a></li> 1196 </ul> 1197 </td> 1198 1199 </tr> <!-- end of entry --> 1200 1201 1202 <tr class="entry" id="controls_android.control.awbMode"> 1203 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Mode</td> 1204 <td class="entry_type"> 1205 <span class="entry_type_name entry_type_name_enum">byte</span> 1206 1207 1208 1209 <ul class="entry_type_enum"> 1210 <li> 1211 <span class="entry_type_enum_name">OFF</span> 1212 </li> 1213 <li> 1214 <span class="entry_type_enum_name">AUTO</span> 1215 </li> 1216 <li> 1217 <span class="entry_type_enum_name">INCANDESCENT</span> 1218 </li> 1219 <li> 1220 <span class="entry_type_enum_name">FLUORESCENT</span> 1221 </li> 1222 <li> 1223 <span class="entry_type_enum_name">WARM_FLUORESCENT</span> 1224 </li> 1225 <li> 1226 <span class="entry_type_enum_name">DAYLIGHT</span> 1227 </li> 1228 <li> 1229 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span> 1230 </li> 1231 <li> 1232 <span class="entry_type_enum_name">TWILIGHT</span> 1233 </li> 1234 <li> 1235 <span class="entry_type_enum_name">SHADE</span> 1236 </li> 1237 </ul> 1238 1239 </td> <!-- entry_type --> 1240 1241 <td class="entry_description"> 1242 Whether AWB is currently setting the color 1243 transform fields,<wbr> and what its illumination target 1244 is 1245 </td> 1246 1247 <td class="entry_units"> 1248 </td> 1249 1250 <td class="entry_range"> 1251 </td> 1252 1253 <td class="entry_notes"> 1254 [BC - AWB lock,<wbr>AWB modes] 1255 </td> 1256 1257 <td class="entry_tags"> 1258 <ul class="entry_tags"> 1259 <li><a href="#tag_BC">BC</a></li> 1260 <li><a href="#tag_AWB">AWB</a></li> 1261 </ul> 1262 </td> 1263 1264 </tr> <!-- end of entry --> 1265 1266 1267 <tr class="entry" id="controls_android.control.awbRegions"> 1268 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Regions</td> 1269 <td class="entry_type"> 1270 <span class="entry_type_name">int32</span> 1271 <span class="entry_type_container">x</span> 1272 1273 <span class="entry_type_array"> 1274 5 x area_count 1275 </span> 1276 1277 1278 1279 </td> <!-- entry_type --> 1280 1281 <td class="entry_description"> 1282 List of areas to use for illuminant 1283 estimation 1284 </td> 1285 1286 <td class="entry_units"> 1287 </td> 1288 1289 <td class="entry_range"> 1290 </td> 1291 1292 <td class="entry_notes"> 1293 Only used in AUTO mode.<wbr> Each area is a rectangle 1294 plus weight: xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax,<wbr> weight.<wbr> The 1295 coordinate system is based on the active pixel array,<wbr> 1296 with (0,<wbr>0) being the top-left of the active pixel array,<wbr> 1297 and (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> 1298 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the 1299 bottom-right point of the active pixel array.<wbr> The weight 1300 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then 1301 no specific metering area needs to be used by the HAL.<wbr> If 1302 the metering region is outside the current 1303 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the 1304 sections outside the region and output the used sections 1305 in the frame metadata 1306 </td> 1307 1308 <td class="entry_tags"> 1309 <ul class="entry_tags"> 1310 <li><a href="#tag_BC">BC</a></li> 1311 </ul> 1312 </td> 1313 1314 </tr> <!-- end of entry --> 1315 1316 1317 <tr class="entry" id="controls_android.control.captureIntent"> 1318 <td class="entry_name">android.<wbr>control.<wbr>capture<wbr>Intent</td> 1319 <td class="entry_type"> 1320 <span class="entry_type_name entry_type_name_enum">byte</span> 1321 1322 1323 1324 <ul class="entry_type_enum"> 1325 <li> 1326 <span class="entry_type_enum_name">CUSTOM</span> 1327 <span class="entry_type_enum_notes">This request doesn't fall into the other 1328 categories.<wbr> Default to preview-like 1329 behavior.<wbr></span> 1330 </li> 1331 <li> 1332 <span class="entry_type_enum_name">PREVIEW</span> 1333 <span class="entry_type_enum_notes">This request is for a preview-like usecase.<wbr> The 1334 precapture trigger may be used to start off a metering 1335 w/<wbr>flash sequence</span> 1336 </li> 1337 <li> 1338 <span class="entry_type_enum_name">STILL_CAPTURE</span> 1339 <span class="entry_type_enum_notes">This request is for a still capture-type 1340 usecase.<wbr></span> 1341 </li> 1342 <li> 1343 <span class="entry_type_enum_name">VIDEO_RECORD</span> 1344 <span class="entry_type_enum_notes">This request is for a video recording 1345 usecase.<wbr></span> 1346 </li> 1347 <li> 1348 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span> 1349 <span class="entry_type_enum_notes">This request is for a video snapshot (still 1350 image while recording video) usecase</span> 1351 </li> 1352 <li> 1353 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span> 1354 <span class="entry_type_enum_notes">This request is for a ZSL usecase; the 1355 application will stream full-resolution images and 1356 reprocess one or several later for a final 1357 capture</span> 1358 </li> 1359 </ul> 1360 1361 </td> <!-- entry_type --> 1362 1363 <td class="entry_description"> 1364 Information to 3A routines about the purpose 1365 of this capture,<wbr> to help decide optimal 3A 1366 strategy 1367 </td> 1368 1369 <td class="entry_units"> 1370 </td> 1371 1372 <td class="entry_range"> 1373 all must be supported 1374 </td> 1375 1376 <td class="entry_notes"> 1377 Only used if android.<wbr>control.<wbr>mode != OFF.<wbr> 1378 </td> 1379 1380 <td class="entry_tags"> 1381 <ul class="entry_tags"> 1382 <li><a href="#tag_BC">BC</a></li> 1383 </ul> 1384 </td> 1385 1386 </tr> <!-- end of entry --> 1387 1388 1389 <tr class="entry" id="controls_android.control.effectMode"> 1390 <td class="entry_name">android.<wbr>control.<wbr>effect<wbr>Mode</td> 1391 <td class="entry_type"> 1392 <span class="entry_type_name entry_type_name_enum">byte</span> 1393 1394 1395 1396 <ul class="entry_type_enum"> 1397 <li> 1398 <span class="entry_type_enum_name">OFF</span> 1399 </li> 1400 <li> 1401 <span class="entry_type_enum_name">MONO</span> 1402 <span class="entry_type_enum_optional">optional</span> 1403 </li> 1404 <li> 1405 <span class="entry_type_enum_name">NEGATIVE</span> 1406 <span class="entry_type_enum_optional">optional</span> 1407 </li> 1408 <li> 1409 <span class="entry_type_enum_name">SOLARIZE</span> 1410 <span class="entry_type_enum_optional">optional</span> 1411 </li> 1412 <li> 1413 <span class="entry_type_enum_name">SEPIA</span> 1414 <span class="entry_type_enum_optional">optional</span> 1415 </li> 1416 <li> 1417 <span class="entry_type_enum_name">POSTERIZE</span> 1418 <span class="entry_type_enum_optional">optional</span> 1419 </li> 1420 <li> 1421 <span class="entry_type_enum_name">WHITEBOARD</span> 1422 <span class="entry_type_enum_optional">optional</span> 1423 </li> 1424 <li> 1425 <span class="entry_type_enum_name">BLACKBOARD</span> 1426 <span class="entry_type_enum_optional">optional</span> 1427 </li> 1428 <li> 1429 <span class="entry_type_enum_name">AQUA</span> 1430 <span class="entry_type_enum_optional">optional</span> 1431 </li> 1432 </ul> 1433 1434 </td> <!-- entry_type --> 1435 1436 <td class="entry_description"> 1437 Whether any special color effect is in use.<wbr> 1438 Only used if android.<wbr>control.<wbr>mode != OFF 1439 </td> 1440 1441 <td class="entry_units"> 1442 </td> 1443 1444 <td class="entry_range"> 1445 android.<wbr>control.<wbr>available<wbr>Effects 1446 </td> 1447 1448 <td class="entry_notes"> 1449 </td> 1450 1451 <td class="entry_tags"> 1452 <ul class="entry_tags"> 1453 <li><a href="#tag_BC">BC</a></li> 1454 </ul> 1455 </td> 1456 1457 </tr> <!-- end of entry --> 1458 1459 1460 <tr class="entry" id="controls_android.control.mode"> 1461 <td class="entry_name">android.<wbr>control.<wbr>mode</td> 1462 <td class="entry_type"> 1463 <span class="entry_type_name entry_type_name_enum">byte</span> 1464 1465 1466 1467 <ul class="entry_type_enum"> 1468 <li> 1469 <span class="entry_type_enum_name">OFF</span> 1470 <span class="entry_type_enum_notes">Full application control of pipeline.<wbr> All 3A 1471 routines are disabled,<wbr> no other settings in 1472 android.<wbr>control.<wbr>* have any effect</span> 1473 </li> 1474 <li> 1475 <span class="entry_type_enum_name">AUTO</span> 1476 <span class="entry_type_enum_notes">Use settings for each individual 3A routine.<wbr> 1477 Manual control of capture parameters is disabled.<wbr> All 1478 controls in android.<wbr>control.<wbr>* besides sceneMode take 1479 effect</span> 1480 </li> 1481 <li> 1482 <span class="entry_type_enum_name">USE_SCENE_MODE</span> 1483 <span class="entry_type_enum_notes">Use specific scene mode.<wbr> Enabling this disables 1484 control.<wbr>aeMode,<wbr> control.<wbr>awbMode and control.<wbr>afMode 1485 controls; the HAL must ignore those settings while 1486 USE_<wbr>SCENE_<wbr>MODE is active (except for FACE_<wbr>PRIORITY 1487 scene mode).<wbr> Other control entries are still active.<wbr> 1488 This setting can only be used if availableSceneModes != 1489 UNSUPPORTED</span> 1490 </li> 1491 </ul> 1492 1493 </td> <!-- entry_type --> 1494 1495 <td class="entry_description"> 1496 Overall mode of 3A control 1497 routines 1498 </td> 1499 1500 <td class="entry_units"> 1501 </td> 1502 1503 <td class="entry_range"> 1504 all must be supported 1505 </td> 1506 1507 <td class="entry_notes"> 1508 </td> 1509 1510 <td class="entry_tags"> 1511 <ul class="entry_tags"> 1512 <li><a href="#tag_BC">BC</a></li> 1513 </ul> 1514 </td> 1515 1516 </tr> <!-- end of entry --> 1517 1518 1519 <tr class="entry" id="controls_android.control.sceneMode"> 1520 <td class="entry_name">android.<wbr>control.<wbr>scene<wbr>Mode</td> 1521 <td class="entry_type"> 1522 <span class="entry_type_name entry_type_name_enum">byte</span> 1523 1524 1525 1526 <ul class="entry_type_enum"> 1527 <li> 1528 <span class="entry_type_enum_name">UNSUPPORTED</span> 1529 <span class="entry_type_enum_value">0</span> 1530 </li> 1531 <li> 1532 <span class="entry_type_enum_name">FACE_PRIORITY</span> 1533 <span class="entry_type_enum_notes">if face detection support exists Use face 1534 detection data to drive 3A routines.<wbr> If face detection 1535 statistics are disabled,<wbr> should still operate correctly 1536 (but not return face detection statistics to the 1537 framework).<wbr> Unlike the other scene modes,<wbr> aeMode,<wbr> 1538 awbMode,<wbr> and afMode remain active when FACE_<wbr>PRIORITY is 1539 set.<wbr> This is due to compatibility concerns with the old 1540 camera API</span> 1541 </li> 1542 <li> 1543 <span class="entry_type_enum_name">ACTION</span> 1544 <span class="entry_type_enum_optional">optional</span> 1545 </li> 1546 <li> 1547 <span class="entry_type_enum_name">PORTRAIT</span> 1548 <span class="entry_type_enum_optional">optional</span> 1549 </li> 1550 <li> 1551 <span class="entry_type_enum_name">LANDSCAPE</span> 1552 <span class="entry_type_enum_optional">optional</span> 1553 </li> 1554 <li> 1555 <span class="entry_type_enum_name">NIGHT</span> 1556 <span class="entry_type_enum_optional">optional</span> 1557 </li> 1558 <li> 1559 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span> 1560 <span class="entry_type_enum_optional">optional</span> 1561 </li> 1562 <li> 1563 <span class="entry_type_enum_name">THEATRE</span> 1564 <span class="entry_type_enum_optional">optional</span> 1565 </li> 1566 <li> 1567 <span class="entry_type_enum_name">BEACH</span> 1568 <span class="entry_type_enum_optional">optional</span> 1569 </li> 1570 <li> 1571 <span class="entry_type_enum_name">SNOW</span> 1572 <span class="entry_type_enum_optional">optional</span> 1573 </li> 1574 <li> 1575 <span class="entry_type_enum_name">SUNSET</span> 1576 <span class="entry_type_enum_optional">optional</span> 1577 </li> 1578 <li> 1579 <span class="entry_type_enum_name">STEADYPHOTO</span> 1580 <span class="entry_type_enum_optional">optional</span> 1581 </li> 1582 <li> 1583 <span class="entry_type_enum_name">FIREWORKS</span> 1584 <span class="entry_type_enum_optional">optional</span> 1585 </li> 1586 <li> 1587 <span class="entry_type_enum_name">SPORTS</span> 1588 <span class="entry_type_enum_optional">optional</span> 1589 </li> 1590 <li> 1591 <span class="entry_type_enum_name">PARTY</span> 1592 <span class="entry_type_enum_optional">optional</span> 1593 </li> 1594 <li> 1595 <span class="entry_type_enum_name">CANDLELIGHT</span> 1596 <span class="entry_type_enum_optional">optional</span> 1597 </li> 1598 <li> 1599 <span class="entry_type_enum_name">BARCODE</span> 1600 <span class="entry_type_enum_optional">optional</span> 1601 </li> 1602 </ul> 1603 1604 </td> <!-- entry_type --> 1605 1606 <td class="entry_description"> 1607 Which scene mode is active when 1608 android.<wbr>control.<wbr>mode = SCENE_<wbr>MODE 1609 </td> 1610 1611 <td class="entry_units"> 1612 </td> 1613 1614 <td class="entry_range"> 1615 android.<wbr>control.<wbr>available<wbr>Scene<wbr>Modes 1616 </td> 1617 1618 <td class="entry_notes"> 1619 </td> 1620 1621 <td class="entry_tags"> 1622 <ul class="entry_tags"> 1623 <li><a href="#tag_BC">BC</a></li> 1624 </ul> 1625 </td> 1626 1627 </tr> <!-- end of entry --> 1628 1629 1630 <tr class="entry" id="controls_android.control.videoStabilizationMode"> 1631 <td class="entry_name">android.<wbr>control.<wbr>video<wbr>Stabilization<wbr>Mode</td> 1632 <td class="entry_type"> 1633 <span class="entry_type_name entry_type_name_enum">byte</span> 1634 1635 1636 1637 <ul class="entry_type_enum"> 1638 <li> 1639 <span class="entry_type_enum_name">OFF</span> 1640 </li> 1641 <li> 1642 <span class="entry_type_enum_name">ON</span> 1643 </li> 1644 </ul> 1645 1646 </td> <!-- entry_type --> 1647 1648 <td class="entry_description"> 1649 Whether video stabilization is 1650 active 1651 </td> 1652 1653 <td class="entry_units"> 1654 </td> 1655 1656 <td class="entry_range"> 1657 </td> 1658 1659 <td class="entry_notes"> 1660 If enabled,<wbr> video stabilization can modify the 1661 android.<wbr>scaler.<wbr>crop<wbr>Region to keep the video stream 1662 stabilized 1663 </td> 1664 1665 <td class="entry_tags"> 1666 <ul class="entry_tags"> 1667 <li><a href="#tag_BC">BC</a></li> 1668 </ul> 1669 </td> 1670 1671 </tr> <!-- end of entry --> 1672 1673 1674 1675 <!-- end of kind --> 1676 </tbody> 1677 <tr><td colspan="7" class="kind">static</td></tr> 1678 1679 <thead> 1680 <tr> 1681 <th class="th_name">Property Name</th> 1682 <th class="th_type">Type</th> 1683 <th class="th_description">Description</th> 1684 <th class="th_units">Units</th> 1685 <th class="th_range">Range</th> 1686 <th class="th_notes">Notes</th> 1687 <th class="th_tags">Tags</th> 1688 </tr> 1689 </thead> 1690 1691 <tbody> 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes"> 1703 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Antibanding<wbr>Modes</td> 1704 <td class="entry_type"> 1705 <span class="entry_type_name">byte</span> 1706 <span class="entry_type_container">x</span> 1707 1708 <span class="entry_type_array"> 1709 n 1710 </span> 1711 1712 <div class="entry_type_notes">list of enums</div> 1713 1714 1715 </td> <!-- entry_type --> 1716 1717 <td class="entry_description"> 1718 Which set of antibanding modes are 1719 supported 1720 </td> 1721 1722 <td class="entry_units"> 1723 </td> 1724 1725 <td class="entry_range"> 1726 </td> 1727 1728 <td class="entry_notes"> 1729 </td> 1730 1731 <td class="entry_tags"> 1732 </td> 1733 1734 </tr> <!-- end of entry --> 1735 1736 1737 <tr class="entry" id="static_android.control.aeAvailableModes"> 1738 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Modes</td> 1739 <td class="entry_type"> 1740 <span class="entry_type_name">byte</span> 1741 <span class="entry_type_container">x</span> 1742 1743 <span class="entry_type_array"> 1744 n 1745 </span> 1746 1747 <div class="entry_type_notes">list of enums</div> 1748 1749 1750 </td> <!-- entry_type --> 1751 1752 <td class="entry_description"> 1753 Which subset of AE modes is 1754 supported 1755 </td> 1756 1757 <td class="entry_units"> 1758 </td> 1759 1760 <td class="entry_range"> 1761 OFF,<wbr> ON must be supported.<wbr> 1762 ON_<wbr>AUTO_<wbr>FLASH/<wbr>ON_<wbr>ALWAYS_<wbr>FLASH must be supported if flash 1763 unit is available 1764 </td> 1765 1766 <td class="entry_notes"> 1767 </td> 1768 1769 <td class="entry_tags"> 1770 </td> 1771 1772 </tr> <!-- end of entry --> 1773 1774 1775 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges"> 1776 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Target<wbr>Fps<wbr>Ranges</td> 1777 <td class="entry_type"> 1778 <span class="entry_type_name">int32</span> 1779 <span class="entry_type_container">x</span> 1780 1781 <span class="entry_type_array"> 1782 2 x n 1783 </span> 1784 1785 <div class="entry_type_notes">list of pairs of frame rates</div> 1786 1787 1788 </td> <!-- entry_type --> 1789 1790 <td class="entry_description"> 1791 List of frame rate ranges supported by the 1792 AE algorithm/<wbr>hardware 1793 </td> 1794 1795 <td class="entry_units"> 1796 </td> 1797 1798 <td class="entry_range"> 1799 </td> 1800 1801 <td class="entry_notes"> 1802 </td> 1803 1804 <td class="entry_tags"> 1805 </td> 1806 1807 </tr> <!-- end of entry --> 1808 1809 1810 <tr class="entry" id="static_android.control.aeCompensationRange"> 1811 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Range</td> 1812 <td class="entry_type"> 1813 <span class="entry_type_name">int32</span> 1814 <span class="entry_type_container">x</span> 1815 1816 <span class="entry_type_array"> 1817 2 1818 </span> 1819 1820 1821 1822 </td> <!-- entry_type --> 1823 1824 <td class="entry_description"> 1825 Maximum and minimum exposure compensation 1826 setting,<wbr> in counts of 1827 android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Step<wbr>Size 1828 </td> 1829 1830 <td class="entry_units"> 1831 </td> 1832 1833 <td class="entry_range"> 1834 At least (-2,<wbr>2)/<wbr>(exp compensation step 1835 size) 1836 </td> 1837 1838 <td class="entry_notes"> 1839 </td> 1840 1841 <td class="entry_tags"> 1842 <ul class="entry_tags"> 1843 <li><a href="#tag_BC">BC</a></li> 1844 </ul> 1845 </td> 1846 1847 </tr> <!-- end of entry --> 1848 1849 1850 <tr class="entry" id="static_android.control.aeCompensationStep"> 1851 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Step</td> 1852 <td class="entry_type"> 1853 <span class="entry_type_name">rational</span> 1854 1855 1856 1857 1858 </td> <!-- entry_type --> 1859 1860 <td class="entry_description"> 1861 Smallest step by which exposure compensation 1862 can be changed 1863 </td> 1864 1865 <td class="entry_units"> 1866 </td> 1867 1868 <td class="entry_range"> 1869 <= 1/<wbr>2 1870 </td> 1871 1872 <td class="entry_notes"> 1873 </td> 1874 1875 <td class="entry_tags"> 1876 <ul class="entry_tags"> 1877 <li><a href="#tag_BC">BC</a></li> 1878 </ul> 1879 </td> 1880 1881 </tr> <!-- end of entry --> 1882 1883 1884 <tr class="entry" id="static_android.control.afAvailableModes"> 1885 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Available<wbr>Modes</td> 1886 <td class="entry_type"> 1887 <span class="entry_type_name">byte</span> 1888 <span class="entry_type_container">x</span> 1889 1890 <span class="entry_type_array"> 1891 n 1892 </span> 1893 1894 <div class="entry_type_notes">List of enums</div> 1895 1896 1897 </td> <!-- entry_type --> 1898 1899 <td class="entry_description"> 1900 List of AF modes that can be 1901 selected 1902 </td> 1903 1904 <td class="entry_units"> 1905 </td> 1906 1907 <td class="entry_range"> 1908 OFF must be included.<wbr> AUTO must be supported if 1909 lens allows for changing focus 1910 </td> 1911 1912 <td class="entry_notes"> 1913 </td> 1914 1915 <td class="entry_tags"> 1916 <ul class="entry_tags"> 1917 <li><a href="#tag_BC">BC</a></li> 1918 </ul> 1919 </td> 1920 1921 </tr> <!-- end of entry --> 1922 1923 1924 <tr class="entry" id="static_android.control.availableEffects"> 1925 <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Effects</td> 1926 <td class="entry_type"> 1927 <span class="entry_type_name">byte</span> 1928 <span class="entry_type_container">x</span> 1929 1930 <span class="entry_type_array"> 1931 n 1932 </span> 1933 1934 <div class="entry_type_notes">list of enums</div> 1935 1936 1937 </td> <!-- entry_type --> 1938 1939 <td class="entry_description"> 1940 what subset of the full color effect enum 1941 list is supported 1942 </td> 1943 1944 <td class="entry_units"> 1945 </td> 1946 1947 <td class="entry_range"> 1948 OFF must be listed 1949 </td> 1950 1951 <td class="entry_notes"> 1952 </td> 1953 1954 <td class="entry_tags"> 1955 <ul class="entry_tags"> 1956 <li><a href="#tag_BC">BC</a></li> 1957 </ul> 1958 </td> 1959 1960 </tr> <!-- end of entry --> 1961 1962 1963 <tr class="entry" id="static_android.control.availableSceneModes"> 1964 <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Scene<wbr>Modes</td> 1965 <td class="entry_type"> 1966 <span class="entry_type_name">byte</span> 1967 <span class="entry_type_container">x</span> 1968 1969 <span class="entry_type_array"> 1970 n 1971 </span> 1972 1973 <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> 1974 1975 1976 </td> <!-- entry_type --> 1977 1978 <td class="entry_description"> 1979 what subset of the scene mode enum list is 1980 supported.<wbr> 1981 </td> 1982 1983 <td class="entry_units"> 1984 </td> 1985 1986 <td class="entry_range"> 1987 SCENE_<wbr>MODE_<wbr>FACE_<wbr>PRIORITY must be supported if face 1988 detection is supported 1989 </td> 1990 1991 <td class="entry_notes"> 1992 </td> 1993 1994 <td class="entry_tags"> 1995 <ul class="entry_tags"> 1996 <li><a href="#tag_BC">BC</a></li> 1997 </ul> 1998 </td> 1999 2000 </tr> <!-- end of entry --> 2001 2002 2003 <tr class="entry" id="static_android.control.availableVideoStabilizationModes"> 2004 <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Video<wbr>Stabilization<wbr>Modes</td> 2005 <td class="entry_type"> 2006 <span class="entry_type_name">byte</span> 2007 <span class="entry_type_container">x</span> 2008 2009 <span class="entry_type_array"> 2010 n 2011 </span> 2012 2013 <div class="entry_type_notes">List of enums.<wbr></div> 2014 2015 2016 </td> <!-- entry_type --> 2017 2018 <td class="entry_description"> 2019 List of video stabilization modes that can 2020 be supported 2021 </td> 2022 2023 <td class="entry_units"> 2024 </td> 2025 2026 <td class="entry_range"> 2027 OFF must be included 2028 </td> 2029 2030 <td class="entry_notes"> 2031 </td> 2032 2033 <td class="entry_tags"> 2034 <ul class="entry_tags"> 2035 <li><a href="#tag_BC">BC</a></li> 2036 </ul> 2037 </td> 2038 2039 </tr> <!-- end of entry --> 2040 2041 2042 <tr class="entry" id="static_android.control.awbAvailableModes"> 2043 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Available<wbr>Modes</td> 2044 <td class="entry_type"> 2045 <span class="entry_type_name">byte</span> 2046 <span class="entry_type_container">x</span> 2047 2048 <span class="entry_type_array"> 2049 n 2050 </span> 2051 2052 <div class="entry_type_notes">List of enums (android.<wbr>control.<wbr>awb<wbr>Mode)</div> 2053 2054 2055 </td> <!-- entry_type --> 2056 2057 <td class="entry_description"> 2058 </td> 2059 2060 <td class="entry_units"> 2061 </td> 2062 2063 <td class="entry_range"> 2064 OFF,<wbr> AUTO must be included 2065 </td> 2066 2067 <td class="entry_notes"> 2068 </td> 2069 2070 <td class="entry_tags"> 2071 <ul class="entry_tags"> 2072 <li><a href="#tag_BC">BC</a></li> 2073 </ul> 2074 </td> 2075 2076 </tr> <!-- end of entry --> 2077 2078 2079 <tr class="entry" id="static_android.control.maxRegions"> 2080 <td class="entry_name">android.<wbr>control.<wbr>max<wbr>Regions</td> 2081 <td class="entry_type"> 2082 <span class="entry_type_name">int32</span> 2083 2084 2085 2086 2087 </td> <!-- entry_type --> 2088 2089 <td class="entry_description"> 2090 For AE,<wbr> AWB,<wbr> and AF,<wbr> how many individual 2091 regions can be listed for metering? 2092 </td> 2093 2094 <td class="entry_units"> 2095 </td> 2096 2097 <td class="entry_range"> 2098 >= 1 2099 </td> 2100 2101 <td class="entry_notes"> 2102 </td> 2103 2104 <td class="entry_tags"> 2105 <ul class="entry_tags"> 2106 <li><a href="#tag_BC">BC</a></li> 2107 </ul> 2108 </td> 2109 2110 </tr> <!-- end of entry --> 2111 2112 2113 <tr class="entry" id="static_android.control.sceneModeOverrides"> 2114 <td class="entry_name">android.<wbr>control.<wbr>scene<wbr>Mode<wbr>Overrides</td> 2115 <td class="entry_type"> 2116 <span class="entry_type_name">byte</span> 2117 <span class="entry_type_container">x</span> 2118 2119 <span class="entry_type_array"> 2120 3 x lengthavailablescenemodes 2121 </span> 2122 2123 2124 2125 </td> <!-- entry_type --> 2126 2127 <td class="entry_description"> 2128 List of AE,<wbr> AWB,<wbr> and AF modes to use for 2129 each available scene mode 2130 </td> 2131 2132 <td class="entry_units"> 2133 </td> 2134 2135 <td class="entry_range"> 2136 For each listed scene mode,<wbr> lists the aeMode,<wbr> 2137 awbMode,<wbr> and afMode that the HAL wants to use for that 2138 scene mode.<wbr> For each entry,<wbr> the order is {aeMode,<wbr> 2139 awbMode,<wbr> afMode} in order of increasing index 2140 </td> 2141 2142 <td class="entry_notes"> 2143 When a scene mode is enabled,<wbr> the HAL is expected 2144 to override aeMode,<wbr> awbMode,<wbr> and afMode with its 2145 preferred settings for that scene mode.<wbr> To simplify 2146 communication with old camera API applications,<wbr> the 2147 service wants this override list in the static metadata.<wbr> 2148 The order of this list matches that of 2149 availableSceneModes,<wbr> with 3 entires for each scene mode.<wbr> 2150 The overrides listed for SCENE_<wbr>MODE_<wbr>FACE_<wbr>PRIORITY are 2151 ignored,<wbr> since for that mode,<wbr> the application-set aeMode,<wbr> 2152 awbMode,<wbr> and afMode are used instead,<wbr> like they are when 2153 android.<wbr>control.<wbr>mode is AUTO.<wbr> It is recommended that for 2154 FACE_<wbr>PRIORITY,<wbr> the overrides should be set to 0.<wbr> As an 2155 example,<wbr> if availableSceneModes is { FACE_<wbr>PRIORITY,<wbr> 2156 ACTION,<wbr> NIGHT },<wbr> then the service expects this field to 2157 have 9 entries; for example { 0 ,<wbr> 0,<wbr> 0,<wbr> ON_<wbr>AUTO_<wbr>FLASH,<wbr> 2158 AUTO,<wbr> CONTINUOUS_<wbr>PICTURE,<wbr> ON_<wbr>AUTO_<wbr>FLASH,<wbr> INCANDESCENT,<wbr> 2159 AUTO } 2160 </td> 2161 2162 <td class="entry_tags"> 2163 <ul class="entry_tags"> 2164 <li><a href="#tag_BC">BC</a></li> 2165 </ul> 2166 </td> 2167 2168 </tr> <!-- end of entry --> 2169 2170 2171 2172 <!-- end of kind --> 2173 </tbody> 2174 <tr><td colspan="7" class="kind">dynamic</td></tr> 2175 2176 <thead> 2177 <tr> 2178 <th class="th_name">Property Name</th> 2179 <th class="th_type">Type</th> 2180 <th class="th_description">Description</th> 2181 <th class="th_units">Units</th> 2182 <th class="th_range">Range</th> 2183 <th class="th_notes">Notes</th> 2184 <th class="th_tags">Tags</th> 2185 </tr> 2186 </thead> 2187 2188 <tbody> 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 <tr class="entry" id="dynamic_android.control.aePrecaptureId"> 2200 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Precapture<wbr>Id</td> 2201 <td class="entry_type"> 2202 <span class="entry_type_name">int32</span> 2203 2204 2205 2206 2207 </td> <!-- entry_type --> 2208 2209 <td class="entry_description"> 2210 The ID sent with the latest 2211 CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING call 2212 </td> 2213 2214 <td class="entry_units"> 2215 </td> 2216 2217 <td class="entry_range"> 2218 </td> 2219 2220 <td class="entry_notes"> 2221 Must be 0 if no 2222 CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING trigger received yet 2223 by HAL.<wbr> Always updated even if AE algorithm ignores the 2224 trigger 2225 </td> 2226 2227 <td class="entry_tags"> 2228 </td> 2229 2230 </tr> <!-- end of entry --> 2231 2232 2233 <tr class="entry" id="dynamic_android.control.aeRegions"> 2234 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Regions</td> 2235 <td class="entry_type"> 2236 <span class="entry_type_name">int32</span> 2237 <span class="entry_type_container">x</span> 2238 2239 <span class="entry_type_array"> 2240 5 x area_count 2241 </span> 2242 2243 2244 2245 </td> <!-- entry_type --> 2246 2247 <td class="entry_description"> 2248 List of areas to use for 2249 metering 2250 </td> 2251 2252 <td class="entry_units"> 2253 </td> 2254 2255 <td class="entry_range"> 2256 </td> 2257 2258 <td class="entry_notes"> 2259 Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> 2260 xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the 2261 active pixel array,<wbr> with (0,<wbr>0) being the top-left of the 2262 active pixel array,<wbr> and 2263 (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> 2264 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the 2265 bottom-right point of the active pixel array.<wbr> The weight 2266 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then 2267 no specific metering area needs to be used by the HAL.<wbr> If 2268 the metering region is outside the current 2269 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the 2270 sections outside the region and output the used sections 2271 in the frame metadata 2272 </td> 2273 2274 <td class="entry_tags"> 2275 <ul class="entry_tags"> 2276 <li><a href="#tag_BC">BC</a></li> 2277 </ul> 2278 </td> 2279 2280 </tr> <!-- end of entry --> 2281 2282 2283 <tr class="entry" id="dynamic_android.control.aeState"> 2284 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>State</td> 2285 <td class="entry_type"> 2286 <span class="entry_type_name entry_type_name_enum">byte</span> 2287 2288 2289 2290 <ul class="entry_type_enum"> 2291 <li> 2292 <span class="entry_type_enum_name">INACTIVE</span> 2293 <span class="entry_type_enum_notes">AE is off.<wbr> When a camera device is opened,<wbr> it starts in 2294 this state.<wbr></span> 2295 </li> 2296 <li> 2297 <span class="entry_type_enum_name">SEARCHING</span> 2298 <span class="entry_type_enum_notes">AE doesn't yet have a good set of control values 2299 for the current scene</span> 2300 </li> 2301 <li> 2302 <span class="entry_type_enum_name">CONVERGED</span> 2303 <span class="entry_type_enum_notes">AE has a good set of control values for the 2304 current scene</span> 2305 </li> 2306 <li> 2307 <span class="entry_type_enum_name">LOCKED</span> 2308 <span class="entry_type_enum_notes">AE has been locked (aeMode = 2309 LOCKED)</span> 2310 </li> 2311 <li> 2312 <span class="entry_type_enum_name">FLASH_REQUIRED</span> 2313 <span class="entry_type_enum_notes">AE has a good set of control values,<wbr> but flash 2314 needs to be fired for good quality still 2315 capture</span> 2316 </li> 2317 <li> 2318 <span class="entry_type_enum_name">PRECAPTURE</span> 2319 <span class="entry_type_enum_notes">AE has been asked to do a precapture sequence 2320 (through the 2321 trigger_<wbr>action(CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING) 2322 call),<wbr> and is currently executing it.<wbr> Once PRECAPTURE 2323 completes,<wbr> AE will transition to CONVERGED or 2324 FLASH_<wbr>REQUIRED as appropriate</span> 2325 </li> 2326 </ul> 2327 2328 </td> <!-- entry_type --> 2329 2330 <td class="entry_description"> 2331 Current state of AE algorithm 2332 </td> 2333 2334 <td class="entry_units"> 2335 </td> 2336 2337 <td class="entry_range"> 2338 </td> 2339 2340 <td class="entry_notes"> 2341 Whenever the AE algorithm state changes,<wbr> a 2342 MSG_<wbr>AUTOEXPOSURE notification must be send if a 2343 notification callback is registered.<wbr> 2344 </td> 2345 2346 <td class="entry_tags"> 2347 </td> 2348 2349 </tr> <!-- end of entry --> 2350 2351 2352 <tr class="entry" id="dynamic_android.control.afMode"> 2353 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Mode</td> 2354 <td class="entry_type"> 2355 <span class="entry_type_name entry_type_name_enum">byte</span> 2356 2357 2358 2359 <ul class="entry_type_enum"> 2360 <li> 2361 <span class="entry_type_enum_name">OFF</span> 2362 <span class="entry_type_enum_notes">The 3A routines do not control the lens; 2363 android.<wbr>lens.<wbr>focus<wbr>Position is controlled by the 2364 application</span> 2365 </li> 2366 <li> 2367 <span class="entry_type_enum_name">AUTO</span> 2368 <span class="entry_type_enum_notes">if lens is not fixed focus.<wbr> Use 2369 android.<wbr>lens.<wbr>minimum<wbr>Focus<wbr>Distance to determine if lens 2370 is fixed focus In this mode,<wbr> the lens does not move 2371 unless the autofocus trigger action is called.<wbr> When 2372 that trigger is activated,<wbr> AF must transition to 2373 ACTIVE_<wbr>SCAN,<wbr> then to the outcome of the scan (FOCUSED 2374 or NOT_<wbr>FOCUSED).<wbr> Triggering cancel AF resets the lens 2375 position to default,<wbr> and sets the AF state to 2376 INACTIVE.<wbr></span> 2377 </li> 2378 <li> 2379 <span class="entry_type_enum_name">MACRO</span> 2380 <span class="entry_type_enum_notes">In this mode,<wbr> the lens does not move unless the 2381 autofocus trigger action is called.<wbr> When that trigger 2382 is activated,<wbr> AF must transition to ACTIVE_<wbr>SCAN,<wbr> then 2383 to the outcome of the scan (FOCUSED or NOT_<wbr>FOCUSED).<wbr> 2384 Triggering cancel AF resets the lens position to 2385 default,<wbr> and sets the AF state to 2386 INACTIVE.<wbr></span> 2387 </li> 2388 <li> 2389 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span> 2390 <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens 2391 position continually to attempt to provide a 2392 constantly-in-focus image stream.<wbr> The focusing behavior 2393 should be suitable for good quality video recording; 2394 typically this means slower focus movement and no 2395 overshoots.<wbr> When the AF trigger is not involved,<wbr> the AF 2396 algorithm should start in INACTIVE state,<wbr> and then 2397 transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states 2398 as appropriate.<wbr> When the AF trigger is activated,<wbr> the 2399 algorithm should immediately transition into AF_<wbr>FOCUSED 2400 or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the lens 2401 position until a cancel AF trigger is received.<wbr> Once 2402 cancel is received,<wbr> the algorithm should transition 2403 back to INACTIVE and resume passive scan.<wbr> Note that 2404 this behavior is not identical to CONTINUOUS_<wbr>PICTURE,<wbr> 2405 since an ongoing PASSIVE_<wbr>SCAN must immediately be 2406 canceled.<wbr></span> 2407 </li> 2408 <li> 2409 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span> 2410 <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens 2411 position continually to attempt to provide a 2412 constantly-in-focus image stream.<wbr> The focusing behavior 2413 should be suitable for still image capture; typically 2414 this means focusing as fast as possible.<wbr> When the AF 2415 trigger is not involved,<wbr> the AF algorithm should start 2416 in INACTIVE state,<wbr> and then transition into 2417 PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states as appropriate 2418 as it attempts to maintain focus.<wbr> When the AF trigger 2419 is activated,<wbr> the algorithm should finish its 2420 PASSIVE_<wbr>SCAN if active,<wbr> and then transition into 2421 AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock 2422 the lens position until a cancel AF trigger is 2423 received.<wbr> When the AF cancel trigger is activated,<wbr> the 2424 algorithm should transition back to INACTIVE and then 2425 act as if it has just been started.<wbr></span> 2426 </li> 2427 <li> 2428 <span class="entry_type_enum_name">EDOF</span> 2429 <span class="entry_type_enum_notes">Extended depth of field (digital focus).<wbr> AF 2430 trigger is ignored,<wbr> AF state should always be 2431 INACTIVE.<wbr></span> 2432 </li> 2433 </ul> 2434 2435 </td> <!-- entry_type --> 2436 2437 <td class="entry_description"> 2438 Whether AF is currently enabled,<wbr> and what 2439 mode it is set to 2440 </td> 2441 2442 <td class="entry_units"> 2443 </td> 2444 2445 <td class="entry_range"> 2446 </td> 2447 2448 <td class="entry_notes"> 2449 </td> 2450 2451 <td class="entry_tags"> 2452 <ul class="entry_tags"> 2453 <li><a href="#tag_BC">BC</a></li> 2454 </ul> 2455 </td> 2456 2457 </tr> <!-- end of entry --> 2458 2459 2460 <tr class="entry" id="dynamic_android.control.afRegions"> 2461 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Regions</td> 2462 <td class="entry_type"> 2463 <span class="entry_type_name">int32</span> 2464 <span class="entry_type_container">x</span> 2465 2466 <span class="entry_type_array"> 2467 5 x area_count 2468 </span> 2469 2470 2471 2472 </td> <!-- entry_type --> 2473 2474 <td class="entry_description"> 2475 List of areas to use for focus 2476 estimation 2477 </td> 2478 2479 <td class="entry_units"> 2480 </td> 2481 2482 <td class="entry_range"> 2483 </td> 2484 2485 <td class="entry_notes"> 2486 Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> 2487 xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the 2488 active pixel array,<wbr> with (0,<wbr>0) being the top-left of the 2489 active pixel array,<wbr> and 2490 (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> 2491 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the 2492 bottom-right point of the active pixel array.<wbr> The weight 2493 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then 2494 no specific focus area needs to be used by the HAL.<wbr> If 2495 the focusing region is outside the current 2496 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the 2497 sections outside the region and output the used sections 2498 in the frame metadata 2499 </td> 2500 2501 <td class="entry_tags"> 2502 <ul class="entry_tags"> 2503 <li><a href="#tag_BC">BC</a></li> 2504 </ul> 2505 </td> 2506 2507 </tr> <!-- end of entry --> 2508 2509 2510 <tr class="entry" id="dynamic_android.control.afState"> 2511 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>State</td> 2512 <td class="entry_type"> 2513 <span class="entry_type_name entry_type_name_enum">byte</span> 2514 2515 2516 2517 <ul class="entry_type_enum"> 2518 <li> 2519 <span class="entry_type_enum_name">INACTIVE</span> 2520 <span class="entry_type_enum_notes">AF off or has not yet tried to scan/<wbr>been asked 2521 to scan.<wbr> When a camera device is opened,<wbr> it starts in 2522 this state.<wbr></span> 2523 </li> 2524 <li> 2525 <span class="entry_type_enum_name">PASSIVE_SCAN</span> 2526 <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported AF is 2527 currently doing an AF scan initiated by a continuous 2528 autofocus mode</span> 2529 </li> 2530 <li> 2531 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span> 2532 <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported AF currently 2533 believes it is in focus,<wbr> but may restart scanning at 2534 any time.<wbr></span> 2535 </li> 2536 <li> 2537 <span class="entry_type_enum_name">ACTIVE_SCAN</span> 2538 <span class="entry_type_enum_notes">if AUTO or MACRO modes are supported AF is doing 2539 an AF scan because it was triggered by AF 2540 trigger</span> 2541 </li> 2542 <li> 2543 <span class="entry_type_enum_name">FOCUSED_LOCKED</span> 2544 <span class="entry_type_enum_notes">if any AF mode besides OFF is supported AF 2545 believes it is focused correctly and is 2546 locked</span> 2547 </li> 2548 <li> 2549 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span> 2550 <span class="entry_type_enum_notes">if any AF mode besides OFF is supported AF has 2551 failed to focus successfully and is 2552 locked</span> 2553 </li> 2554 </ul> 2555 2556 </td> <!-- entry_type --> 2557 2558 <td class="entry_description"> 2559 Current state of AF algorithm 2560 </td> 2561 2562 <td class="entry_units"> 2563 </td> 2564 2565 <td class="entry_range"> 2566 </td> 2567 2568 <td class="entry_notes"> 2569 Whenever the AF algorithm state changes,<wbr> a 2570 MSG_<wbr>AUTOFOCUS notification must be send if a notification 2571 callback is registered.<wbr> 2572 </td> 2573 2574 <td class="entry_tags"> 2575 </td> 2576 2577 </tr> <!-- end of entry --> 2578 2579 2580 <tr class="entry" id="dynamic_android.control.afTriggerId"> 2581 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Trigger<wbr>Id</td> 2582 <td class="entry_type"> 2583 <span class="entry_type_name">int32</span> 2584 2585 2586 2587 2588 </td> <!-- entry_type --> 2589 2590 <td class="entry_description"> 2591 The ID sent with the latest 2592 CAMERA2_<wbr>TRIGGER_<wbr>AUTOFOCUS call 2593 </td> 2594 2595 <td class="entry_units"> 2596 </td> 2597 2598 <td class="entry_range"> 2599 </td> 2600 2601 <td class="entry_notes"> 2602 Must be 0 if no CAMERA2_<wbr>TRIGGER_<wbr>AUTOFOCUS trigger 2603 received yet by HAL.<wbr> Always updated even if AF algorithm 2604 ignores the trigger 2605 </td> 2606 2607 <td class="entry_tags"> 2608 </td> 2609 2610 </tr> <!-- end of entry --> 2611 2612 2613 <tr class="entry" id="dynamic_android.control.awbMode"> 2614 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Mode</td> 2615 <td class="entry_type"> 2616 <span class="entry_type_name entry_type_name_enum">byte</span> 2617 2618 2619 2620 <ul class="entry_type_enum"> 2621 <li> 2622 <span class="entry_type_enum_name">OFF</span> 2623 </li> 2624 <li> 2625 <span class="entry_type_enum_name">AUTO</span> 2626 </li> 2627 <li> 2628 <span class="entry_type_enum_name">INCANDESCENT</span> 2629 </li> 2630 <li> 2631 <span class="entry_type_enum_name">FLUORESCENT</span> 2632 </li> 2633 <li> 2634 <span class="entry_type_enum_name">WARM_FLUORESCENT</span> 2635 </li> 2636 <li> 2637 <span class="entry_type_enum_name">DAYLIGHT</span> 2638 </li> 2639 <li> 2640 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span> 2641 </li> 2642 <li> 2643 <span class="entry_type_enum_name">TWILIGHT</span> 2644 </li> 2645 <li> 2646 <span class="entry_type_enum_name">SHADE</span> 2647 </li> 2648 </ul> 2649 2650 </td> <!-- entry_type --> 2651 2652 <td class="entry_description"> 2653 Whether AWB is currently setting the color 2654 transform fields,<wbr> and what its illumination target 2655 is 2656 </td> 2657 2658 <td class="entry_units"> 2659 </td> 2660 2661 <td class="entry_range"> 2662 </td> 2663 2664 <td class="entry_notes"> 2665 [BC - AWB lock,<wbr>AWB modes] 2666 </td> 2667 2668 <td class="entry_tags"> 2669 <ul class="entry_tags"> 2670 <li><a href="#tag_BC">BC</a></li> 2671 <li><a href="#tag_AWB">AWB</a></li> 2672 </ul> 2673 </td> 2674 2675 </tr> <!-- end of entry --> 2676 2677 2678 <tr class="entry" id="dynamic_android.control.awbRegions"> 2679 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Regions</td> 2680 <td class="entry_type"> 2681 <span class="entry_type_name">int32</span> 2682 <span class="entry_type_container">x</span> 2683 2684 <span class="entry_type_array"> 2685 5 x area_count 2686 </span> 2687 2688 2689 2690 </td> <!-- entry_type --> 2691 2692 <td class="entry_description"> 2693 List of areas to use for illuminant 2694 estimation 2695 </td> 2696 2697 <td class="entry_units"> 2698 </td> 2699 2700 <td class="entry_range"> 2701 </td> 2702 2703 <td class="entry_notes"> 2704 Only used in AUTO mode.<wbr> Each area is a rectangle 2705 plus weight: xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax,<wbr> weight.<wbr> The 2706 coordinate system is based on the active pixel array,<wbr> 2707 with (0,<wbr>0) being the top-left of the active pixel array,<wbr> 2708 and (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> 2709 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the 2710 bottom-right point of the active pixel array.<wbr> The weight 2711 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then 2712 no specific metering area needs to be used by the HAL.<wbr> If 2713 the metering region is outside the current 2714 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the 2715 sections outside the region and output the used sections 2716 in the frame metadata 2717 </td> 2718 2719 <td class="entry_tags"> 2720 <ul class="entry_tags"> 2721 <li><a href="#tag_BC">BC</a></li> 2722 </ul> 2723 </td> 2724 2725 </tr> <!-- end of entry --> 2726 2727 2728 <tr class="entry" id="dynamic_android.control.awbState"> 2729 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>State</td> 2730 <td class="entry_type"> 2731 <span class="entry_type_name entry_type_name_enum">byte</span> 2732 2733 2734 2735 <ul class="entry_type_enum"> 2736 <li> 2737 <span class="entry_type_enum_name">INACTIVE</span> 2738 <span class="entry_type_enum_notes">AWB is not in auto mode.<wbr> When a camera device is opened,<wbr> it 2739 starts in this state.<wbr></span> 2740 </li> 2741 <li> 2742 <span class="entry_type_enum_name">SEARCHING</span> 2743 <span class="entry_type_enum_notes">AWB doesn't yet have a good set of control 2744 values for the current scene</span> 2745 </li> 2746 <li> 2747 <span class="entry_type_enum_name">CONVERGED</span> 2748 <span class="entry_type_enum_notes">AWB has a good set of control values for the 2749 current scene</span> 2750 </li> 2751 <li> 2752 <span class="entry_type_enum_name">LOCKED</span> 2753 <span class="entry_type_enum_notes">AE has been locked (aeMode = 2754 LOCKED)</span> 2755 </li> 2756 </ul> 2757 2758 </td> <!-- entry_type --> 2759 2760 <td class="entry_description"> 2761 Current state of AWB algorithm 2762 </td> 2763 2764 <td class="entry_units"> 2765 </td> 2766 2767 <td class="entry_range"> 2768 </td> 2769 2770 <td class="entry_notes"> 2771 Whenever the AWB algorithm state changes,<wbr> a 2772 MSG_<wbr>AUTOWHITEBALANCE notification must be send if a 2773 notification callback is registered.<wbr> 2774 </td> 2775 2776 <td class="entry_tags"> 2777 </td> 2778 2779 </tr> <!-- end of entry --> 2780 2781 2782 <tr class="entry" id="dynamic_android.control.mode"> 2783 <td class="entry_name">android.<wbr>control.<wbr>mode</td> 2784 <td class="entry_type"> 2785 <span class="entry_type_name entry_type_name_enum">byte</span> 2786 2787 2788 2789 <ul class="entry_type_enum"> 2790 <li> 2791 <span class="entry_type_enum_name">OFF</span> 2792 <span class="entry_type_enum_notes">Full application control of pipeline.<wbr> All 3A 2793 routines are disabled,<wbr> no other settings in 2794 android.<wbr>control.<wbr>* have any effect</span> 2795 </li> 2796 <li> 2797 <span class="entry_type_enum_name">AUTO</span> 2798 <span class="entry_type_enum_notes">Use settings for each individual 3A routine.<wbr> 2799 Manual control of capture parameters is disabled.<wbr> All 2800 controls in android.<wbr>control.<wbr>* besides sceneMode take 2801 effect</span> 2802 </li> 2803 <li> 2804 <span class="entry_type_enum_name">USE_SCENE_MODE</span> 2805 <span class="entry_type_enum_notes">Use specific scene mode.<wbr> Enabling this disables 2806 control.<wbr>aeMode,<wbr> control.<wbr>awbMode and control.<wbr>afMode 2807 controls; the HAL must ignore those settings while 2808 USE_<wbr>SCENE_<wbr>MODE is active (except for FACE_<wbr>PRIORITY 2809 scene mode).<wbr> Other control entries are still active.<wbr> 2810 This setting can only be used if availableSceneModes != 2811 UNSUPPORTED</span> 2812 </li> 2813 </ul> 2814 2815 </td> <!-- entry_type --> 2816 2817 <td class="entry_description"> 2818 Overall mode of 3A control 2819 routines 2820 </td> 2821 2822 <td class="entry_units"> 2823 </td> 2824 2825 <td class="entry_range"> 2826 all must be supported 2827 </td> 2828 2829 <td class="entry_notes"> 2830 </td> 2831 2832 <td class="entry_tags"> 2833 <ul class="entry_tags"> 2834 <li><a href="#tag_BC">BC</a></li> 2835 </ul> 2836 </td> 2837 2838 </tr> <!-- end of entry --> 2839 2840 2841 2842 <!-- end of kind --> 2843 </tbody> 2844 2845 <!-- end of section --> 2846 <tr><td colspan="7" id="section_demosaic" class="section">demosaic</td></tr> 2847 2848 2849 <tr><td colspan="7" class="kind">controls</td></tr> 2850 2851 <thead> 2852 <tr> 2853 <th class="th_name">Property Name</th> 2854 <th class="th_type">Type</th> 2855 <th class="th_description">Description</th> 2856 <th class="th_units">Units</th> 2857 <th class="th_range">Range</th> 2858 <th class="th_notes">Notes</th> 2859 <th class="th_tags">Tags</th> 2860 </tr> 2861 </thead> 2862 2863 <tbody> 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 <tr class="entry" id="controls_android.demosaic.mode"> 2875 <td class="entry_name">android.<wbr>demosaic.<wbr>mode</td> 2876 <td class="entry_type"> 2877 <span class="entry_type_name entry_type_name_enum">byte</span> 2878 2879 2880 2881 <ul class="entry_type_enum"> 2882 <li> 2883 <span class="entry_type_enum_name">FAST</span> 2884 <span class="entry_type_enum_notes">Minimal or no slowdown of frame rate compared to 2885 Bayer RAW output</span> 2886 </li> 2887 <li> 2888 <span class="entry_type_enum_name">HIGH_QUALITY</span> 2889 <span class="entry_type_enum_notes">High-quality may reduce output frame 2890 rate</span> 2891 </li> 2892 </ul> 2893 2894 </td> <!-- entry_type --> 2895 2896 <td class="entry_description"> 2897 Controls the quality of the demosaicing 2898 processing 2899 </td> 2900 2901 <td class="entry_units"> 2902 </td> 2903 2904 <td class="entry_range"> 2905 </td> 2906 2907 <td class="entry_notes"> 2908 </td> 2909 2910 <td class="entry_tags"> 2911 <ul class="entry_tags"> 2912 <li><a href="#tag_V1">V1</a></li> 2913 </ul> 2914 </td> 2915 2916 </tr> <!-- end of entry --> 2917 2918 2919 2920 <!-- end of kind --> 2921 </tbody> 2922 2923 <!-- end of section --> 2924 <tr><td colspan="7" id="section_edge" class="section">edge</td></tr> 2925 2926 2927 <tr><td colspan="7" class="kind">controls</td></tr> 2928 2929 <thead> 2930 <tr> 2931 <th class="th_name">Property Name</th> 2932 <th class="th_type">Type</th> 2933 <th class="th_description">Description</th> 2934 <th class="th_units">Units</th> 2935 <th class="th_range">Range</th> 2936 <th class="th_notes">Notes</th> 2937 <th class="th_tags">Tags</th> 2938 </tr> 2939 </thead> 2940 2941 <tbody> 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 <tr class="entry" id="controls_android.edge.mode"> 2953 <td class="entry_name">android.<wbr>edge.<wbr>mode</td> 2954 <td class="entry_type"> 2955 <span class="entry_type_name entry_type_name_enum">byte</span> 2956 2957 2958 2959 <ul class="entry_type_enum"> 2960 <li> 2961 <span class="entry_type_enum_name">OFF</span> 2962 <span class="entry_type_enum_notes">No edge enhancement is applied</span> 2963 </li> 2964 <li> 2965 <span class="entry_type_enum_name">FAST</span> 2966 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 2967 bayer output</span> 2968 </li> 2969 <li> 2970 <span class="entry_type_enum_name">HIGH_QUALITY</span> 2971 <span class="entry_type_enum_notes">Frame rate may be reduced by high 2972 quality</span> 2973 </li> 2974 </ul> 2975 2976 </td> <!-- entry_type --> 2977 2978 <td class="entry_description"> 2979 Operation mode for edge 2980 enhancement 2981 </td> 2982 2983 <td class="entry_units"> 2984 </td> 2985 2986 <td class="entry_range"> 2987 </td> 2988 2989 <td class="entry_notes"> 2990 </td> 2991 2992 <td class="entry_tags"> 2993 </td> 2994 2995 </tr> <!-- end of entry --> 2996 2997 2998 <tr class="entry" id="controls_android.edge.strength"> 2999 <td class="entry_name">android.<wbr>edge.<wbr>strength</td> 3000 <td class="entry_type"> 3001 <span class="entry_type_name">byte</span> 3002 3003 3004 3005 3006 </td> <!-- entry_type --> 3007 3008 <td class="entry_description"> 3009 Control the amount of edge enhancement 3010 applied to the images 3011 </td> 3012 3013 <td class="entry_units"> 3014 1-10; 10 is maximum sharpening 3015 </td> 3016 3017 <td class="entry_range"> 3018 </td> 3019 3020 <td class="entry_notes"> 3021 </td> 3022 3023 <td class="entry_tags"> 3024 </td> 3025 3026 </tr> <!-- end of entry --> 3027 3028 3029 3030 <!-- end of kind --> 3031 </tbody> 3032 <tr><td colspan="7" class="kind">dynamic</td></tr> 3033 3034 <thead> 3035 <tr> 3036 <th class="th_name">Property Name</th> 3037 <th class="th_type">Type</th> 3038 <th class="th_description">Description</th> 3039 <th class="th_units">Units</th> 3040 <th class="th_range">Range</th> 3041 <th class="th_notes">Notes</th> 3042 <th class="th_tags">Tags</th> 3043 </tr> 3044 </thead> 3045 3046 <tbody> 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 <tr class="entry" id="dynamic_android.edge.mode"> 3058 <td class="entry_name">android.<wbr>edge.<wbr>mode</td> 3059 <td class="entry_type"> 3060 <span class="entry_type_name entry_type_name_enum">byte</span> 3061 3062 3063 3064 <ul class="entry_type_enum"> 3065 <li> 3066 <span class="entry_type_enum_name">OFF</span> 3067 <span class="entry_type_enum_notes">No edge enhancement is applied</span> 3068 </li> 3069 <li> 3070 <span class="entry_type_enum_name">FAST</span> 3071 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 3072 bayer output</span> 3073 </li> 3074 <li> 3075 <span class="entry_type_enum_name">HIGH_QUALITY</span> 3076 <span class="entry_type_enum_notes">Frame rate may be reduced by high 3077 quality</span> 3078 </li> 3079 </ul> 3080 3081 </td> <!-- entry_type --> 3082 3083 <td class="entry_description"> 3084 Operation mode for edge 3085 enhancement 3086 </td> 3087 3088 <td class="entry_units"> 3089 </td> 3090 3091 <td class="entry_range"> 3092 </td> 3093 3094 <td class="entry_notes"> 3095 </td> 3096 3097 <td class="entry_tags"> 3098 </td> 3099 3100 </tr> <!-- end of entry --> 3101 3102 3103 3104 <!-- end of kind --> 3105 </tbody> 3106 3107 <!-- end of section --> 3108 <tr><td colspan="7" id="section_flash" class="section">flash</td></tr> 3109 3110 3111 <tr><td colspan="7" class="kind">controls</td></tr> 3112 3113 <thead> 3114 <tr> 3115 <th class="th_name">Property Name</th> 3116 <th class="th_type">Type</th> 3117 <th class="th_description">Description</th> 3118 <th class="th_units">Units</th> 3119 <th class="th_range">Range</th> 3120 <th class="th_notes">Notes</th> 3121 <th class="th_tags">Tags</th> 3122 </tr> 3123 </thead> 3124 3125 <tbody> 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 <tr class="entry" id="controls_android.flash.firingPower"> 3137 <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Power</td> 3138 <td class="entry_type"> 3139 <span class="entry_type_name">byte</span> 3140 3141 3142 3143 3144 </td> <!-- entry_type --> 3145 3146 <td class="entry_description"> 3147 Power for flash firing/<wbr>torch 3148 </td> 3149 3150 <td class="entry_units"> 3151 10 is max power; 0 is no flash.<wbr> Linear 3152 </td> 3153 3154 <td class="entry_range"> 3155 0 - 10 3156 </td> 3157 3158 <td class="entry_notes"> 3159 Power for snapshot may use a different scale than 3160 for torch mode.<wbr> Only one entry for torch mode will be 3161 used 3162 </td> 3163 3164 <td class="entry_tags"> 3165 <ul class="entry_tags"> 3166 <li><a href="#tag_V1">V1</a></li> 3167 </ul> 3168 </td> 3169 3170 </tr> <!-- end of entry --> 3171 3172 3173 <tr class="entry" id="controls_android.flash.firingTime"> 3174 <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Time</td> 3175 <td class="entry_type"> 3176 <span class="entry_type_name">int64</span> 3177 3178 3179 3180 3181 </td> <!-- entry_type --> 3182 3183 <td class="entry_description"> 3184 Firing time of flash relative to start of 3185 exposure 3186 </td> 3187 3188 <td class="entry_units"> 3189 nanoseconds 3190 </td> 3191 3192 <td class="entry_range"> 3193 0-(exposure time-flash duration) 3194 </td> 3195 3196 <td class="entry_notes"> 3197 Clamped to (0,<wbr> exposure time - flash 3198 duration).<wbr> 3199 </td> 3200 3201 <td class="entry_tags"> 3202 <ul class="entry_tags"> 3203 <li><a href="#tag_V1">V1</a></li> 3204 </ul> 3205 </td> 3206 3207 </tr> <!-- end of entry --> 3208 3209 3210 <tr class="entry" id="controls_android.flash.mode"> 3211 <td class="entry_name">android.<wbr>flash.<wbr>mode</td> 3212 <td class="entry_type"> 3213 <span class="entry_type_name entry_type_name_enum">byte</span> 3214 3215 3216 3217 <ul class="entry_type_enum"> 3218 <li> 3219 <span class="entry_type_enum_name">OFF</span> 3220 <span class="entry_type_enum_notes">Do not fire the flash for this 3221 capture</span> 3222 </li> 3223 <li> 3224 <span class="entry_type_enum_name">SINGLE</span> 3225 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Fire flash 3226 for this capture based on firingPower,<wbr> 3227 firingTime.<wbr></span> 3228 </li> 3229 <li> 3230 <span class="entry_type_enum_name">TORCH</span> 3231 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash 3232 continuously on,<wbr> power set by 3233 firingPower</span> 3234 </li> 3235 </ul> 3236 3237 </td> <!-- entry_type --> 3238 3239 <td class="entry_description"> 3240 Select flash operation mode 3241 </td> 3242 3243 <td class="entry_units"> 3244 </td> 3245 3246 <td class="entry_range"> 3247 </td> 3248 3249 <td class="entry_notes"> 3250 </td> 3251 3252 <td class="entry_tags"> 3253 <ul class="entry_tags"> 3254 <li><a href="#tag_BC">BC</a></li> 3255 </ul> 3256 </td> 3257 3258 </tr> <!-- end of entry --> 3259 3260 3261 3262 <!-- end of kind --> 3263 </tbody> 3264 <tr><td colspan="7" class="kind">static</td></tr> 3265 3266 <thead> 3267 <tr> 3268 <th class="th_name">Property Name</th> 3269 <th class="th_type">Type</th> 3270 <th class="th_description">Description</th> 3271 <th class="th_units">Units</th> 3272 <th class="th_range">Range</th> 3273 <th class="th_notes">Notes</th> 3274 <th class="th_tags">Tags</th> 3275 </tr> 3276 </thead> 3277 3278 <tbody> 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 <tr class="entry" id="static_android.flash.info.available"> 3292 <td class="entry_name">android.<wbr>flash.<wbr>info.<wbr>available</td> 3293 <td class="entry_type"> 3294 <span class="entry_type_name">byte</span> 3295 3296 3297 3298 3299 </td> <!-- entry_type --> 3300 3301 <td class="entry_description"> 3302 Whether this camera has a 3303 flash 3304 </td> 3305 3306 <td class="entry_units"> 3307 boolean (0 = false,<wbr> otherwise true) 3308 </td> 3309 3310 <td class="entry_range"> 3311 </td> 3312 3313 <td class="entry_notes"> 3314 If no flash,<wbr> none of the flash controls do 3315 anything.<wbr> All other metadata should return 0 3316 </td> 3317 3318 <td class="entry_tags"> 3319 <ul class="entry_tags"> 3320 <li><a href="#tag_BC">BC</a></li> 3321 </ul> 3322 </td> 3323 3324 </tr> <!-- end of entry --> 3325 3326 3327 <tr class="entry" id="static_android.flash.info.chargeDuration"> 3328 <td class="entry_name">android.<wbr>flash.<wbr>info.<wbr>charge<wbr>Duration</td> 3329 <td class="entry_type"> 3330 <span class="entry_type_name">int64</span> 3331 3332 3333 3334 3335 </td> <!-- entry_type --> 3336 3337 <td class="entry_description"> 3338 Time taken before flash can fire 3339 again 3340 </td> 3341 3342 <td class="entry_units"> 3343 nanoseconds 3344 </td> 3345 3346 <td class="entry_range"> 3347 0-1e9 3348 </td> 3349 3350 <td class="entry_notes"> 3351 1 second too long/<wbr>too short for recharge? Should 3352 this be power-dependent? 3353 </td> 3354 3355 <td class="entry_tags"> 3356 <ul class="entry_tags"> 3357 <li><a href="#tag_V1">V1</a></li> 3358 </ul> 3359 </td> 3360 3361 </tr> <!-- end of entry --> 3362 3363 3364 3365 3366 3367 <tr class="entry" id="static_android.flash.colorTemperature"> 3368 <td class="entry_name">android.<wbr>flash.<wbr>color<wbr>Temperature</td> 3369 <td class="entry_type"> 3370 <span class="entry_type_name">byte</span> 3371 3372 3373 3374 3375 </td> <!-- entry_type --> 3376 3377 <td class="entry_description"> 3378 The x,<wbr>y whitepoint of the 3379 flash 3380 </td> 3381 3382 <td class="entry_units"> 3383 pair of floats 3384 </td> 3385 3386 <td class="entry_range"> 3387 0-1 for both 3388 </td> 3389 3390 <td class="entry_notes"> 3391 </td> 3392 3393 <td class="entry_tags"> 3394 <ul class="entry_tags"> 3395 <li><a href="#tag_ADV">ADV</a></li> 3396 </ul> 3397 </td> 3398 3399 </tr> <!-- end of entry --> 3400 3401 3402 <tr class="entry" id="static_android.flash.maxEnergy"> 3403 <td class="entry_name">android.<wbr>flash.<wbr>max<wbr>Energy</td> 3404 <td class="entry_type"> 3405 <span class="entry_type_name">byte</span> 3406 3407 3408 3409 3410 </td> <!-- entry_type --> 3411 3412 <td class="entry_description"> 3413 Max energy output of the flash for a full 3414 power single flash 3415 </td> 3416 3417 <td class="entry_units"> 3418 lumen-seconds 3419 </td> 3420 3421 <td class="entry_range"> 3422 >= 0 3423 </td> 3424 3425 <td class="entry_notes"> 3426 </td> 3427 3428 <td class="entry_tags"> 3429 <ul class="entry_tags"> 3430 <li><a href="#tag_ADV">ADV</a></li> 3431 </ul> 3432 </td> 3433 3434 </tr> <!-- end of entry --> 3435 3436 3437 3438 <!-- end of kind --> 3439 </tbody> 3440 <tr><td colspan="7" class="kind">dynamic</td></tr> 3441 3442 <thead> 3443 <tr> 3444 <th class="th_name">Property Name</th> 3445 <th class="th_type">Type</th> 3446 <th class="th_description">Description</th> 3447 <th class="th_units">Units</th> 3448 <th class="th_range">Range</th> 3449 <th class="th_notes">Notes</th> 3450 <th class="th_tags">Tags</th> 3451 </tr> 3452 </thead> 3453 3454 <tbody> 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 <tr class="entry" id="dynamic_android.flash.firingPower"> 3466 <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Power</td> 3467 <td class="entry_type"> 3468 <span class="entry_type_name">byte</span> 3469 3470 3471 3472 3473 </td> <!-- entry_type --> 3474 3475 <td class="entry_description"> 3476 Power for flash firing/<wbr>torch 3477 </td> 3478 3479 <td class="entry_units"> 3480 10 is max power; 0 is no flash.<wbr> Linear 3481 </td> 3482 3483 <td class="entry_range"> 3484 0 - 10 3485 </td> 3486 3487 <td class="entry_notes"> 3488 Power for snapshot may use a different scale than 3489 for torch mode.<wbr> Only one entry for torch mode will be 3490 used 3491 </td> 3492 3493 <td class="entry_tags"> 3494 <ul class="entry_tags"> 3495 <li><a href="#tag_V1">V1</a></li> 3496 </ul> 3497 </td> 3498 3499 </tr> <!-- end of entry --> 3500 3501 3502 <tr class="entry" id="dynamic_android.flash.firingTime"> 3503 <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Time</td> 3504 <td class="entry_type"> 3505 <span class="entry_type_name">int64</span> 3506 3507 3508 3509 3510 </td> <!-- entry_type --> 3511 3512 <td class="entry_description"> 3513 Firing time of flash relative to start of 3514 exposure 3515 </td> 3516 3517 <td class="entry_units"> 3518 nanoseconds 3519 </td> 3520 3521 <td class="entry_range"> 3522 0-(exposure time-flash duration) 3523 </td> 3524 3525 <td class="entry_notes"> 3526 Clamped to (0,<wbr> exposure time - flash 3527 duration).<wbr> 3528 </td> 3529 3530 <td class="entry_tags"> 3531 <ul class="entry_tags"> 3532 <li><a href="#tag_V1">V1</a></li> 3533 </ul> 3534 </td> 3535 3536 </tr> <!-- end of entry --> 3537 3538 3539 <tr class="entry" id="dynamic_android.flash.mode"> 3540 <td class="entry_name">android.<wbr>flash.<wbr>mode</td> 3541 <td class="entry_type"> 3542 <span class="entry_type_name entry_type_name_enum">byte</span> 3543 3544 3545 3546 <ul class="entry_type_enum"> 3547 <li> 3548 <span class="entry_type_enum_name">OFF</span> 3549 <span class="entry_type_enum_notes">Do not fire the flash for this 3550 capture</span> 3551 </li> 3552 <li> 3553 <span class="entry_type_enum_name">SINGLE</span> 3554 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Fire flash 3555 for this capture based on firingPower,<wbr> 3556 firingTime.<wbr></span> 3557 </li> 3558 <li> 3559 <span class="entry_type_enum_name">TORCH</span> 3560 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash 3561 continuously on,<wbr> power set by 3562 firingPower</span> 3563 </li> 3564 </ul> 3565 3566 </td> <!-- entry_type --> 3567 3568 <td class="entry_description"> 3569 Select flash operation mode 3570 </td> 3571 3572 <td class="entry_units"> 3573 </td> 3574 3575 <td class="entry_range"> 3576 </td> 3577 3578 <td class="entry_notes"> 3579 </td> 3580 3581 <td class="entry_tags"> 3582 <ul class="entry_tags"> 3583 <li><a href="#tag_BC">BC</a></li> 3584 </ul> 3585 </td> 3586 3587 </tr> <!-- end of entry --> 3588 3589 3590 <tr class="entry" id="dynamic_android.flash.state"> 3591 <td class="entry_name">android.<wbr>flash.<wbr>state</td> 3592 <td class="entry_type"> 3593 <span class="entry_type_name entry_type_name_enum">byte</span> 3594 3595 3596 3597 <ul class="entry_type_enum"> 3598 <li> 3599 <span class="entry_type_enum_name">UNAVAILABLE</span> 3600 <span class="entry_type_enum_notes">No flash on camera</span> 3601 </li> 3602 <li> 3603 <span class="entry_type_enum_name">CHARGING</span> 3604 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash is 3605 charging and cannot be fired</span> 3606 </li> 3607 <li> 3608 <span class="entry_type_enum_name">READY</span> 3609 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash is 3610 ready to fire</span> 3611 </li> 3612 <li> 3613 <span class="entry_type_enum_name">FIRED</span> 3614 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash fired 3615 for this capture</span> 3616 </li> 3617 </ul> 3618 3619 </td> <!-- entry_type --> 3620 3621 <td class="entry_description"> 3622 Current state of the flash 3623 unit 3624 </td> 3625 3626 <td class="entry_units"> 3627 </td> 3628 3629 <td class="entry_range"> 3630 </td> 3631 3632 <td class="entry_notes"> 3633 </td> 3634 3635 <td class="entry_tags"> 3636 </td> 3637 3638 </tr> <!-- end of entry --> 3639 3640 3641 3642 <!-- end of kind --> 3643 </tbody> 3644 3645 <!-- end of section --> 3646 <tr><td colspan="7" id="section_geometric" class="section">geometric</td></tr> 3647 3648 3649 <tr><td colspan="7" class="kind">controls</td></tr> 3650 3651 <thead> 3652 <tr> 3653 <th class="th_name">Property Name</th> 3654 <th class="th_type">Type</th> 3655 <th class="th_description">Description</th> 3656 <th class="th_units">Units</th> 3657 <th class="th_range">Range</th> 3658 <th class="th_notes">Notes</th> 3659 <th class="th_tags">Tags</th> 3660 </tr> 3661 </thead> 3662 3663 <tbody> 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 <tr class="entry" id="controls_android.geometric.mode"> 3675 <td class="entry_name">android.<wbr>geometric.<wbr>mode</td> 3676 <td class="entry_type"> 3677 <span class="entry_type_name entry_type_name_enum">byte</span> 3678 3679 3680 3681 <ul class="entry_type_enum"> 3682 <li> 3683 <span class="entry_type_enum_name">OFF</span> 3684 <span class="entry_type_enum_notes">No geometric correction is 3685 applied</span> 3686 </li> 3687 <li> 3688 <span class="entry_type_enum_name">FAST</span> 3689 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 3690 bayer output</span> 3691 </li> 3692 <li> 3693 <span class="entry_type_enum_name">HIGH_QUALITY</span> 3694 <span class="entry_type_enum_notes">Frame rate may be reduced by high 3695 quality</span> 3696 </li> 3697 </ul> 3698 3699 </td> <!-- entry_type --> 3700 3701 <td class="entry_description"> 3702 Operating mode of geometric 3703 correction 3704 </td> 3705 3706 <td class="entry_units"> 3707 </td> 3708 3709 <td class="entry_range"> 3710 </td> 3711 3712 <td class="entry_notes"> 3713 </td> 3714 3715 <td class="entry_tags"> 3716 </td> 3717 3718 </tr> <!-- end of entry --> 3719 3720 3721 <tr class="entry" id="controls_android.geometric.strength"> 3722 <td class="entry_name">android.<wbr>geometric.<wbr>strength</td> 3723 <td class="entry_type"> 3724 <span class="entry_type_name">byte</span> 3725 3726 3727 3728 3729 </td> <!-- entry_type --> 3730 3731 <td class="entry_description"> 3732 Control the amount of shading correction 3733 applied to the images 3734 </td> 3735 3736 <td class="entry_units"> 3737 unitless: 1-10; 10 is full shading 3738 compensation 3739 </td> 3740 3741 <td class="entry_range"> 3742 </td> 3743 3744 <td class="entry_notes"> 3745 </td> 3746 3747 <td class="entry_tags"> 3748 <ul class="entry_tags"> 3749 <li><a href="#tag_ADV">ADV</a></li> 3750 </ul> 3751 </td> 3752 3753 </tr> <!-- end of entry --> 3754 3755 3756 3757 <!-- end of kind --> 3758 </tbody> 3759 3760 <!-- end of section --> 3761 <tr><td colspan="7" id="section_hotPixel" class="section">hotPixel</td></tr> 3762 3763 3764 <tr><td colspan="7" class="kind">controls</td></tr> 3765 3766 <thead> 3767 <tr> 3768 <th class="th_name">Property Name</th> 3769 <th class="th_type">Type</th> 3770 <th class="th_description">Description</th> 3771 <th class="th_units">Units</th> 3772 <th class="th_range">Range</th> 3773 <th class="th_notes">Notes</th> 3774 <th class="th_tags">Tags</th> 3775 </tr> 3776 </thead> 3777 3778 <tbody> 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 <tr class="entry" id="controls_android.hotPixel.mode"> 3790 <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>mode</td> 3791 <td class="entry_type"> 3792 <span class="entry_type_name entry_type_name_enum">byte</span> 3793 3794 3795 3796 <ul class="entry_type_enum"> 3797 <li> 3798 <span class="entry_type_enum_name">OFF</span> 3799 <span class="entry_type_enum_notes">No hot pixel correction can be 3800 applied</span> 3801 </li> 3802 <li> 3803 <span class="entry_type_enum_name">FAST</span> 3804 <span class="entry_type_enum_notes">Frame rate must not be reduced compared to raw 3805 Bayer output</span> 3806 </li> 3807 <li> 3808 <span class="entry_type_enum_name">HIGH_QUALITY</span> 3809 <span class="entry_type_enum_notes">Frame rate may be reduced by high 3810 quality</span> 3811 </li> 3812 </ul> 3813 3814 </td> <!-- entry_type --> 3815 3816 <td class="entry_description"> 3817 Set operational mode for hot pixel 3818 correction 3819 </td> 3820 3821 <td class="entry_units"> 3822 </td> 3823 3824 <td class="entry_range"> 3825 </td> 3826 3827 <td class="entry_notes"> 3828 </td> 3829 3830 <td class="entry_tags"> 3831 <ul class="entry_tags"> 3832 <li><a href="#tag_V1">V1</a></li> 3833 </ul> 3834 </td> 3835 3836 </tr> <!-- end of entry --> 3837 3838 3839 3840 <!-- end of kind --> 3841 </tbody> 3842 <tr><td colspan="7" class="kind">static</td></tr> 3843 3844 <thead> 3845 <tr> 3846 <th class="th_name">Property Name</th> 3847 <th class="th_type">Type</th> 3848 <th class="th_description">Description</th> 3849 <th class="th_units">Units</th> 3850 <th class="th_range">Range</th> 3851 <th class="th_notes">Notes</th> 3852 <th class="th_tags">Tags</th> 3853 </tr> 3854 </thead> 3855 3856 <tbody> 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 <tr class="entry" id="static_android.hotPixel.info.map"> 3870 <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>info.<wbr>map</td> 3871 <td class="entry_type"> 3872 <span class="entry_type_name">int32</span> 3873 <span class="entry_type_container">x</span> 3874 3875 <span class="entry_type_array"> 3876 2 x n 3877 </span> 3878 3879 <div class="entry_type_notes">list of coordinates based on android.<wbr>sensor.<wbr>pixel<wbr>Array<wbr>Size</div> 3880 3881 3882 </td> <!-- entry_type --> 3883 3884 <td class="entry_description"> 3885 Location of hot/<wbr>defective pixels on 3886 sensor 3887 </td> 3888 3889 <td class="entry_units"> 3890 </td> 3891 3892 <td class="entry_range"> 3893 </td> 3894 3895 <td class="entry_notes"> 3896 </td> 3897 3898 <td class="entry_tags"> 3899 <ul class="entry_tags"> 3900 <li><a href="#tag_ADV">ADV</a></li> 3901 </ul> 3902 </td> 3903 3904 </tr> <!-- end of entry --> 3905 3906 3907 3908 3909 3910 3911 <!-- end of kind --> 3912 </tbody> 3913 <tr><td colspan="7" class="kind">dynamic</td></tr> 3914 3915 <thead> 3916 <tr> 3917 <th class="th_name">Property Name</th> 3918 <th class="th_type">Type</th> 3919 <th class="th_description">Description</th> 3920 <th class="th_units">Units</th> 3921 <th class="th_range">Range</th> 3922 <th class="th_notes">Notes</th> 3923 <th class="th_tags">Tags</th> 3924 </tr> 3925 </thead> 3926 3927 <tbody> 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 <tr class="entry" id="dynamic_android.hotPixel.mode"> 3939 <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>mode</td> 3940 <td class="entry_type"> 3941 <span class="entry_type_name entry_type_name_enum">byte</span> 3942 3943 3944 3945 <ul class="entry_type_enum"> 3946 <li> 3947 <span class="entry_type_enum_name">OFF</span> 3948 <span class="entry_type_enum_notes">No hot pixel correction can be 3949 applied</span> 3950 </li> 3951 <li> 3952 <span class="entry_type_enum_name">FAST</span> 3953 <span class="entry_type_enum_notes">Frame rate must not be reduced compared to raw 3954 Bayer output</span> 3955 </li> 3956 <li> 3957 <span class="entry_type_enum_name">HIGH_QUALITY</span> 3958 <span class="entry_type_enum_notes">Frame rate may be reduced by high 3959 quality</span> 3960 </li> 3961 </ul> 3962 3963 </td> <!-- entry_type --> 3964 3965 <td class="entry_description"> 3966 Set operational mode for hot pixel 3967 correction 3968 </td> 3969 3970 <td class="entry_units"> 3971 </td> 3972 3973 <td class="entry_range"> 3974 </td> 3975 3976 <td class="entry_notes"> 3977 </td> 3978 3979 <td class="entry_tags"> 3980 <ul class="entry_tags"> 3981 <li><a href="#tag_V1">V1</a></li> 3982 </ul> 3983 </td> 3984 3985 </tr> <!-- end of entry --> 3986 3987 3988 3989 <!-- end of kind --> 3990 </tbody> 3991 3992 <!-- end of section --> 3993 <tr><td colspan="7" id="section_jpeg" class="section">jpeg</td></tr> 3994 3995 3996 <tr><td colspan="7" class="kind">controls</td></tr> 3997 3998 <thead> 3999 <tr> 4000 <th class="th_name">Property Name</th> 4001 <th class="th_type">Type</th> 4002 <th class="th_description">Description</th> 4003 <th class="th_units">Units</th> 4004 <th class="th_range">Range</th> 4005 <th class="th_notes">Notes</th> 4006 <th class="th_tags">Tags</th> 4007 </tr> 4008 </thead> 4009 4010 <tbody> 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 <tr class="entry" id="controls_android.jpeg.gpsCoordinates"> 4022 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Coordinates</td> 4023 <td class="entry_type"> 4024 <span class="entry_type_name">double</span> 4025 <span class="entry_type_container">x</span> 4026 4027 <span class="entry_type_array"> 4028 3 4029 </span> 4030 4031 <div class="entry_type_notes">latitude,<wbr> longitude,<wbr> altitude.<wbr> First two in degrees,<wbr> the third in meters</div> 4032 4033 4034 </td> <!-- entry_type --> 4035 4036 <td class="entry_description"> 4037 GPS coordinates to include in output JPEG 4038 EXIF 4039 </td> 4040 4041 <td class="entry_units"> 4042 </td> 4043 4044 <td class="entry_range"> 4045 (-180 - 180],<wbr> [-90,<wbr>90],<wbr> [-inf,<wbr> inf] 4046 </td> 4047 4048 <td class="entry_notes"> 4049 </td> 4050 4051 <td class="entry_tags"> 4052 <ul class="entry_tags"> 4053 <li><a href="#tag_BC">BC</a></li> 4054 </ul> 4055 </td> 4056 4057 </tr> <!-- end of entry --> 4058 4059 4060 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod"> 4061 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Processing<wbr>Method</td> 4062 <td class="entry_type"> 4063 <span class="entry_type_name">byte</span> 4064 4065 4066 4067 4068 </td> <!-- entry_type --> 4069 4070 <td class="entry_description"> 4071 32 characters describing GPS algorithm to 4072 include in EXIF 4073 </td> 4074 4075 <td class="entry_units"> 4076 UTF-8 null-terminated string 4077 </td> 4078 4079 <td class="entry_range"> 4080 </td> 4081 4082 <td class="entry_notes"> 4083 </td> 4084 4085 <td class="entry_tags"> 4086 <ul class="entry_tags"> 4087 <li><a href="#tag_BC">BC</a></li> 4088 </ul> 4089 </td> 4090 4091 </tr> <!-- end of entry --> 4092 4093 4094 <tr class="entry" id="controls_android.jpeg.gpsTimestamp"> 4095 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Timestamp</td> 4096 <td class="entry_type"> 4097 <span class="entry_type_name">int64</span> 4098 4099 4100 4101 4102 </td> <!-- entry_type --> 4103 4104 <td class="entry_description"> 4105 Time GPS fix was made to include in 4106 EXIF 4107 </td> 4108 4109 <td class="entry_units"> 4110 UTC in seconds since January 1,<wbr> 1970 4111 </td> 4112 4113 <td class="entry_range"> 4114 </td> 4115 4116 <td class="entry_notes"> 4117 </td> 4118 4119 <td class="entry_tags"> 4120 <ul class="entry_tags"> 4121 <li><a href="#tag_BC">BC</a></li> 4122 </ul> 4123 </td> 4124 4125 </tr> <!-- end of entry --> 4126 4127 4128 <tr class="entry" id="controls_android.jpeg.orientation"> 4129 <td class="entry_name">android.<wbr>jpeg.<wbr>orientation</td> 4130 <td class="entry_type"> 4131 <span class="entry_type_name">int32</span> 4132 4133 4134 4135 4136 </td> <!-- entry_type --> 4137 4138 <td class="entry_description"> 4139 Orientation of JPEG image to 4140 write 4141 </td> 4142 4143 <td class="entry_units"> 4144 Degrees in multiples of 90 4145 </td> 4146 4147 <td class="entry_range"> 4148 0,<wbr> 90,<wbr> 180,<wbr> 270 4149 </td> 4150 4151 <td class="entry_notes"> 4152 </td> 4153 4154 <td class="entry_tags"> 4155 <ul class="entry_tags"> 4156 <li><a href="#tag_BC">BC</a></li> 4157 </ul> 4158 </td> 4159 4160 </tr> <!-- end of entry --> 4161 4162 4163 <tr class="entry" id="controls_android.jpeg.quality"> 4164 <td class="entry_name">android.<wbr>jpeg.<wbr>quality</td> 4165 <td class="entry_type"> 4166 <span class="entry_type_name">byte</span> 4167 4168 4169 4170 4171 </td> <!-- entry_type --> 4172 4173 <td class="entry_description"> 4174 Compression quality of the final JPEG 4175 image 4176 </td> 4177 4178 <td class="entry_units"> 4179 </td> 4180 4181 <td class="entry_range"> 4182 1-100; larger is higher quality 4183 </td> 4184 4185 <td class="entry_notes"> 4186 85-95 is typical usage range 4187 </td> 4188 4189 <td class="entry_tags"> 4190 <ul class="entry_tags"> 4191 <li><a href="#tag_BC">BC</a></li> 4192 </ul> 4193 </td> 4194 4195 </tr> <!-- end of entry --> 4196 4197 4198 <tr class="entry" id="controls_android.jpeg.thumbnailQuality"> 4199 <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Quality</td> 4200 <td class="entry_type"> 4201 <span class="entry_type_name">byte</span> 4202 4203 4204 4205 4206 </td> <!-- entry_type --> 4207 4208 <td class="entry_description"> 4209 Compression quality of JPEG 4210 thumbnail 4211 </td> 4212 4213 <td class="entry_units"> 4214 </td> 4215 4216 <td class="entry_range"> 4217 1-100; larger is higher quality 4218 </td> 4219 4220 <td class="entry_notes"> 4221 </td> 4222 4223 <td class="entry_tags"> 4224 <ul class="entry_tags"> 4225 <li><a href="#tag_BC">BC</a></li> 4226 </ul> 4227 </td> 4228 4229 </tr> <!-- end of entry --> 4230 4231 4232 <tr class="entry" id="controls_android.jpeg.thumbnailSize"> 4233 <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Size</td> 4234 <td class="entry_type"> 4235 <span class="entry_type_name">int32</span> 4236 <span class="entry_type_container">x</span> 4237 4238 <span class="entry_type_array"> 4239 2 4240 </span> 4241 4242 4243 4244 </td> <!-- entry_type --> 4245 4246 <td class="entry_description"> 4247 Resolution of embedded JPEG 4248 thumbnail 4249 </td> 4250 4251 <td class="entry_units"> 4252 </td> 4253 4254 <td class="entry_range"> 4255 from android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes 4256 </td> 4257 4258 <td class="entry_notes"> 4259 </td> 4260 4261 <td class="entry_tags"> 4262 <ul class="entry_tags"> 4263 <li><a href="#tag_BC">BC</a></li> 4264 </ul> 4265 </td> 4266 4267 </tr> <!-- end of entry --> 4268 4269 4270 4271 <!-- end of kind --> 4272 </tbody> 4273 <tr><td colspan="7" class="kind">static</td></tr> 4274 4275 <thead> 4276 <tr> 4277 <th class="th_name">Property Name</th> 4278 <th class="th_type">Type</th> 4279 <th class="th_description">Description</th> 4280 <th class="th_units">Units</th> 4281 <th class="th_range">Range</th> 4282 <th class="th_notes">Notes</th> 4283 <th class="th_tags">Tags</th> 4284 </tr> 4285 </thead> 4286 4287 <tbody> 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes"> 4299 <td class="entry_name">android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes</td> 4300 <td class="entry_type"> 4301 <span class="entry_type_name">int32</span> 4302 <span class="entry_type_container">x</span> 4303 4304 <span class="entry_type_array"> 4305 2 x n 4306 </span> 4307 4308 <div class="entry_type_notes">list of resolution pairs</div> 4309 4310 4311 </td> <!-- entry_type --> 4312 4313 <td class="entry_description"> 4314 Supported resolutions for the JPEG 4315 thumbnail 4316 </td> 4317 4318 <td class="entry_units"> 4319 </td> 4320 4321 <td class="entry_range"> 4322 Must include at least one valid resolution,<wbr> plus 4323 (0,<wbr>0) for no thumbnail generation 4324 </td> 4325 4326 <td class="entry_notes"> 4327 </td> 4328 4329 <td class="entry_tags"> 4330 <ul class="entry_tags"> 4331 <li><a href="#tag_BC">BC</a></li> 4332 </ul> 4333 </td> 4334 4335 </tr> <!-- end of entry --> 4336 4337 4338 <tr class="entry" id="static_android.jpeg.maxSize"> 4339 <td class="entry_name">android.<wbr>jpeg.<wbr>max<wbr>Size</td> 4340 <td class="entry_type"> 4341 <span class="entry_type_name">int32</span> 4342 4343 4344 4345 4346 </td> <!-- entry_type --> 4347 4348 <td class="entry_description"> 4349 Maximum size in bytes for the compressed 4350 JPEG buffer 4351 </td> 4352 4353 <td class="entry_units"> 4354 </td> 4355 4356 <td class="entry_range"> 4357 Must be large enough to fit any JPEG produced by 4358 the camera 4359 </td> 4360 4361 <td class="entry_notes"> 4362 This is used for sizing the gralloc buffers for 4363 JPEG 4364 </td> 4365 4366 <td class="entry_tags"> 4367 </td> 4368 4369 </tr> <!-- end of entry --> 4370 4371 4372 4373 <!-- end of kind --> 4374 </tbody> 4375 <tr><td colspan="7" class="kind">dynamic</td></tr> 4376 4377 <thead> 4378 <tr> 4379 <th class="th_name">Property Name</th> 4380 <th class="th_type">Type</th> 4381 <th class="th_description">Description</th> 4382 <th class="th_units">Units</th> 4383 <th class="th_range">Range</th> 4384 <th class="th_notes">Notes</th> 4385 <th class="th_tags">Tags</th> 4386 </tr> 4387 </thead> 4388 4389 <tbody> 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates"> 4401 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Coordinates</td> 4402 <td class="entry_type"> 4403 <span class="entry_type_name">double</span> 4404 <span class="entry_type_container">x</span> 4405 4406 <span class="entry_type_array"> 4407 3 4408 </span> 4409 4410 <div class="entry_type_notes">latitude,<wbr> longitude,<wbr> altitude.<wbr> First two in degrees,<wbr> the third in meters</div> 4411 4412 4413 </td> <!-- entry_type --> 4414 4415 <td class="entry_description"> 4416 GPS coordinates to include in output JPEG 4417 EXIF 4418 </td> 4419 4420 <td class="entry_units"> 4421 </td> 4422 4423 <td class="entry_range"> 4424 (-180 - 180],<wbr> [-90,<wbr>90],<wbr> [-inf,<wbr> inf] 4425 </td> 4426 4427 <td class="entry_notes"> 4428 </td> 4429 4430 <td class="entry_tags"> 4431 <ul class="entry_tags"> 4432 <li><a href="#tag_BC">BC</a></li> 4433 </ul> 4434 </td> 4435 4436 </tr> <!-- end of entry --> 4437 4438 4439 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod"> 4440 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Processing<wbr>Method</td> 4441 <td class="entry_type"> 4442 <span class="entry_type_name">byte</span> 4443 4444 4445 4446 4447 </td> <!-- entry_type --> 4448 4449 <td class="entry_description"> 4450 32 characters describing GPS algorithm to 4451 include in EXIF 4452 </td> 4453 4454 <td class="entry_units"> 4455 UTF-8 null-terminated string 4456 </td> 4457 4458 <td class="entry_range"> 4459 </td> 4460 4461 <td class="entry_notes"> 4462 </td> 4463 4464 <td class="entry_tags"> 4465 <ul class="entry_tags"> 4466 <li><a href="#tag_BC">BC</a></li> 4467 </ul> 4468 </td> 4469 4470 </tr> <!-- end of entry --> 4471 4472 4473 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp"> 4474 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Timestamp</td> 4475 <td class="entry_type"> 4476 <span class="entry_type_name">int64</span> 4477 4478 4479 4480 4481 </td> <!-- entry_type --> 4482 4483 <td class="entry_description"> 4484 Time GPS fix was made to include in 4485 EXIF 4486 </td> 4487 4488 <td class="entry_units"> 4489 UTC in seconds since January 1,<wbr> 1970 4490 </td> 4491 4492 <td class="entry_range"> 4493 </td> 4494 4495 <td class="entry_notes"> 4496 </td> 4497 4498 <td class="entry_tags"> 4499 <ul class="entry_tags"> 4500 <li><a href="#tag_BC">BC</a></li> 4501 </ul> 4502 </td> 4503 4504 </tr> <!-- end of entry --> 4505 4506 4507 <tr class="entry" id="dynamic_android.jpeg.orientation"> 4508 <td class="entry_name">android.<wbr>jpeg.<wbr>orientation</td> 4509 <td class="entry_type"> 4510 <span class="entry_type_name">int32</span> 4511 4512 4513 4514 4515 </td> <!-- entry_type --> 4516 4517 <td class="entry_description"> 4518 Orientation of JPEG image to 4519 write 4520 </td> 4521 4522 <td class="entry_units"> 4523 Degrees in multiples of 90 4524 </td> 4525 4526 <td class="entry_range"> 4527 0,<wbr> 90,<wbr> 180,<wbr> 270 4528 </td> 4529 4530 <td class="entry_notes"> 4531 </td> 4532 4533 <td class="entry_tags"> 4534 <ul class="entry_tags"> 4535 <li><a href="#tag_BC">BC</a></li> 4536 </ul> 4537 </td> 4538 4539 </tr> <!-- end of entry --> 4540 4541 4542 <tr class="entry" id="dynamic_android.jpeg.quality"> 4543 <td class="entry_name">android.<wbr>jpeg.<wbr>quality</td> 4544 <td class="entry_type"> 4545 <span class="entry_type_name">byte</span> 4546 4547 4548 4549 4550 </td> <!-- entry_type --> 4551 4552 <td class="entry_description"> 4553 Compression quality of the final JPEG 4554 image 4555 </td> 4556 4557 <td class="entry_units"> 4558 </td> 4559 4560 <td class="entry_range"> 4561 1-100; larger is higher quality 4562 </td> 4563 4564 <td class="entry_notes"> 4565 85-95 is typical usage range 4566 </td> 4567 4568 <td class="entry_tags"> 4569 <ul class="entry_tags"> 4570 <li><a href="#tag_BC">BC</a></li> 4571 </ul> 4572 </td> 4573 4574 </tr> <!-- end of entry --> 4575 4576 4577 <tr class="entry" id="dynamic_android.jpeg.size"> 4578 <td class="entry_name">android.<wbr>jpeg.<wbr>size</td> 4579 <td class="entry_type"> 4580 <span class="entry_type_name">int32</span> 4581 4582 4583 4584 4585 </td> <!-- entry_type --> 4586 4587 <td class="entry_description"> 4588 The size of the compressed JPEG image,<wbr> in 4589 bytes 4590 </td> 4591 4592 <td class="entry_units"> 4593 </td> 4594 4595 <td class="entry_range"> 4596 >= 0 4597 </td> 4598 4599 <td class="entry_notes"> 4600 If no JPEG output is produced for the request,<wbr> 4601 this must be 0.<wbr> Otherwise,<wbr> this describes the real size 4602 of the compressed JPEG image placed in the output stream.<wbr> 4603 More specifically,<wbr> if android.<wbr>jpeg.<wbr>max<wbr>Size = 1000000,<wbr> and 4604 a specific capture has android.<wbr>jpeg.<wbr>size = 500000,<wbr> then 4605 the output buffer from the JPEG stream will be 1000000 4606 bytes,<wbr> of which the first 500000 make up the real 4607 data.<wbr> 4608 </td> 4609 4610 <td class="entry_tags"> 4611 </td> 4612 4613 </tr> <!-- end of entry --> 4614 4615 4616 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality"> 4617 <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Quality</td> 4618 <td class="entry_type"> 4619 <span class="entry_type_name">byte</span> 4620 4621 4622 4623 4624 </td> <!-- entry_type --> 4625 4626 <td class="entry_description"> 4627 Compression quality of JPEG 4628 thumbnail 4629 </td> 4630 4631 <td class="entry_units"> 4632 </td> 4633 4634 <td class="entry_range"> 4635 1-100; larger is higher quality 4636 </td> 4637 4638 <td class="entry_notes"> 4639 </td> 4640 4641 <td class="entry_tags"> 4642 <ul class="entry_tags"> 4643 <li><a href="#tag_BC">BC</a></li> 4644 </ul> 4645 </td> 4646 4647 </tr> <!-- end of entry --> 4648 4649 4650 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize"> 4651 <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Size</td> 4652 <td class="entry_type"> 4653 <span class="entry_type_name">int32</span> 4654 <span class="entry_type_container">x</span> 4655 4656 <span class="entry_type_array"> 4657 2 4658 </span> 4659 4660 4661 4662 </td> <!-- entry_type --> 4663 4664 <td class="entry_description"> 4665 Resolution of embedded JPEG 4666 thumbnail 4667 </td> 4668 4669 <td class="entry_units"> 4670 </td> 4671 4672 <td class="entry_range"> 4673 from android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes 4674 </td> 4675 4676 <td class="entry_notes"> 4677 </td> 4678 4679 <td class="entry_tags"> 4680 <ul class="entry_tags"> 4681 <li><a href="#tag_BC">BC</a></li> 4682 </ul> 4683 </td> 4684 4685 </tr> <!-- end of entry --> 4686 4687 4688 4689 <!-- end of kind --> 4690 </tbody> 4691 4692 <!-- end of section --> 4693 <tr><td colspan="7" id="section_lens" class="section">lens</td></tr> 4694 4695 4696 <tr><td colspan="7" class="kind">controls</td></tr> 4697 4698 <thead> 4699 <tr> 4700 <th class="th_name">Property Name</th> 4701 <th class="th_type">Type</th> 4702 <th class="th_description">Description</th> 4703 <th class="th_units">Units</th> 4704 <th class="th_range">Range</th> 4705 <th class="th_notes">Notes</th> 4706 <th class="th_tags">Tags</th> 4707 </tr> 4708 </thead> 4709 4710 <tbody> 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 <tr class="entry" id="controls_android.lens.aperture"> 4722 <td class="entry_name">android.<wbr>lens.<wbr>aperture</td> 4723 <td class="entry_type"> 4724 <span class="entry_type_name">float</span> 4725 4726 4727 4728 4729 </td> <!-- entry_type --> 4730 4731 <td class="entry_description"> 4732 Size of the lens aperture 4733 </td> 4734 4735 <td class="entry_units"> 4736 f-number (f/<wbr>NNN) 4737 </td> 4738 4739 <td class="entry_range"> 4740 android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures 4741 </td> 4742 4743 <td class="entry_notes"> 4744 Will not be supported on most devices.<wbr> Can only 4745 pick from supported list 4746 </td> 4747 4748 <td class="entry_tags"> 4749 <ul class="entry_tags"> 4750 <li><a href="#tag_V1">V1</a></li> 4751 </ul> 4752 </td> 4753 4754 </tr> <!-- end of entry --> 4755 4756 4757 <tr class="entry" id="controls_android.lens.filterDensity"> 4758 <td class="entry_name">android.<wbr>lens.<wbr>filter<wbr>Density</td> 4759 <td class="entry_type"> 4760 <span class="entry_type_name">float</span> 4761 4762 4763 4764 4765 </td> <!-- entry_type --> 4766 4767 <td class="entry_description"> 4768 State of lens neutral density 4769 filter(s) 4770 </td> 4771 4772 <td class="entry_units"> 4773 number of stops of filtering 4774 </td> 4775 4776 <td class="entry_range"> 4777 android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities 4778 </td> 4779 4780 <td class="entry_notes"> 4781 Will not be supported on most devices.<wbr> Can only 4782 pick from supported list 4783 </td> 4784 4785 <td class="entry_tags"> 4786 <ul class="entry_tags"> 4787 <li><a href="#tag_V1">V1</a></li> 4788 </ul> 4789 </td> 4790 4791 </tr> <!-- end of entry --> 4792 4793 4794 <tr class="entry" id="controls_android.lens.focalLength"> 4795 <td class="entry_name">android.<wbr>lens.<wbr>focal<wbr>Length</td> 4796 <td class="entry_type"> 4797 <span class="entry_type_name">float</span> 4798 4799 4800 4801 4802 </td> <!-- entry_type --> 4803 4804 <td class="entry_description"> 4805 Lens optical zoom setting 4806 </td> 4807 4808 <td class="entry_units"> 4809 focal length in mm 4810 </td> 4811 4812 <td class="entry_range"> 4813 > 0 4814 </td> 4815 4816 <td class="entry_notes"> 4817 Will not be supported on most devices.<wbr> 4818 </td> 4819 4820 <td class="entry_tags"> 4821 <ul class="entry_tags"> 4822 <li><a href="#tag_V1">V1</a></li> 4823 </ul> 4824 </td> 4825 4826 </tr> <!-- end of entry --> 4827 4828 4829 <tr class="entry" id="controls_android.lens.focusDistance"> 4830 <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Distance</td> 4831 <td class="entry_type"> 4832 <span class="entry_type_name">float</span> 4833 4834 4835 4836 4837 </td> <!-- entry_type --> 4838 4839 <td class="entry_description"> 4840 Distance to plane of sharpest focus,<wbr> 4841 measured from frontmost surface of the lens 4842 </td> 4843 4844 <td class="entry_units"> 4845 diopters (1/<wbr>m) 4846 </td> 4847 4848 <td class="entry_range"> 4849 >= 0 4850 </td> 4851 4852 <td class="entry_notes"> 4853 0 = infinity focus.<wbr> Used value should be clamped 4854 to (0,<wbr>minimum focus distance) 4855 </td> 4856 4857 <td class="entry_tags"> 4858 <ul class="entry_tags"> 4859 <li><a href="#tag_BC">BC</a></li> 4860 <li><a href="#tag_V1">V1</a></li> 4861 </ul> 4862 </td> 4863 4864 </tr> <!-- end of entry --> 4865 4866 4867 <tr class="entry" id="controls_android.lens.opticalStabilizationMode"> 4868 <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Stabilization<wbr>Mode</td> 4869 <td class="entry_type"> 4870 <span class="entry_type_name entry_type_name_enum">byte</span> 4871 4872 4873 4874 <ul class="entry_type_enum"> 4875 <li> 4876 <span class="entry_type_enum_name">OFF</span> 4877 </li> 4878 <li> 4879 <span class="entry_type_enum_name">ON</span> 4880 <span class="entry_type_enum_optional">optional</span> 4881 </li> 4882 </ul> 4883 4884 </td> <!-- entry_type --> 4885 4886 <td class="entry_description"> 4887 Whether optical image stabilization is 4888 enabled.<wbr> 4889 </td> 4890 4891 <td class="entry_units"> 4892 </td> 4893 4894 <td class="entry_range"> 4895 android.<wbr>lens.<wbr>available<wbr>Optical<wbr>Stabilization 4896 </td> 4897 4898 <td class="entry_notes"> 4899 Will not be supported on most devices.<wbr> 4900 </td> 4901 4902 <td class="entry_tags"> 4903 <ul class="entry_tags"> 4904 <li><a href="#tag_V1">V1</a></li> 4905 </ul> 4906 </td> 4907 4908 </tr> <!-- end of entry --> 4909 4910 4911 4912 <!-- end of kind --> 4913 </tbody> 4914 <tr><td colspan="7" class="kind">static</td></tr> 4915 4916 <thead> 4917 <tr> 4918 <th class="th_name">Property Name</th> 4919 <th class="th_type">Type</th> 4920 <th class="th_description">Description</th> 4921 <th class="th_units">Units</th> 4922 <th class="th_range">Range</th> 4923 <th class="th_notes">Notes</th> 4924 <th class="th_tags">Tags</th> 4925 </tr> 4926 </thead> 4927 4928 <tbody> 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 <tr class="entry" id="static_android.lens.info.availableApertures"> 4942 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures</td> 4943 <td class="entry_type"> 4944 <span class="entry_type_name">float</span> 4945 <span class="entry_type_container">x</span> 4946 4947 <span class="entry_type_array"> 4948 n 4949 </span> 4950 4951 4952 4953 </td> <!-- entry_type --> 4954 4955 <td class="entry_description"> 4956 List of supported aperture 4957 values 4958 </td> 4959 4960 <td class="entry_units"> 4961 </td> 4962 4963 <td class="entry_range"> 4964 one entry required,<wbr> > 0 4965 </td> 4966 4967 <td class="entry_notes"> 4968 If variable aperture not available,<wbr> only setting 4969 should be for the fixed aperture 4970 </td> 4971 4972 <td class="entry_tags"> 4973 <ul class="entry_tags"> 4974 <li><a href="#tag_V1">V1</a></li> 4975 </ul> 4976 </td> 4977 4978 </tr> <!-- end of entry --> 4979 4980 4981 <tr class="entry" id="static_android.lens.info.availableFilterDensities"> 4982 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities</td> 4983 <td class="entry_type"> 4984 <span class="entry_type_name">float</span> 4985 <span class="entry_type_container">x</span> 4986 4987 <span class="entry_type_array"> 4988 n 4989 </span> 4990 4991 4992 4993 </td> <!-- entry_type --> 4994 4995 <td class="entry_description"> 4996 List of supported ND filter 4997 values 4998 </td> 4999 5000 <td class="entry_units"> 5001 </td> 5002 5003 <td class="entry_range"> 5004 one entry required,<wbr> >= 0 5005 </td> 5006 5007 <td class="entry_notes"> 5008 If not available,<wbr> only setting is 0.<wbr> Otherwise,<wbr> 5009 lists the available exposure index values for dimming 5010 (2 would mean the filter is set to reduce incoming 5011 light by two stops) 5012 </td> 5013 5014 <td class="entry_tags"> 5015 <ul class="entry_tags"> 5016 <li><a href="#tag_V1">V1</a></li> 5017 </ul> 5018 </td> 5019 5020 </tr> <!-- end of entry --> 5021 5022 5023 <tr class="entry" id="static_android.lens.info.availableFocalLengths"> 5024 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Focal<wbr>Lengths</td> 5025 <td class="entry_type"> 5026 <span class="entry_type_name">float</span> 5027 <span class="entry_type_container">x</span> 5028 5029 <span class="entry_type_array"> 5030 n 5031 </span> 5032 5033 <div class="entry_type_notes">the list of available focal lengths</div> 5034 5035 5036 </td> <!-- entry_type --> 5037 5038 <td class="entry_description"> 5039 If fitted with optical zoom,<wbr> what focal 5040 lengths are available.<wbr> If not,<wbr> the static focal 5041 length 5042 </td> 5043 5044 <td class="entry_units"> 5045 </td> 5046 5047 <td class="entry_range"> 5048 > 0 5049 </td> 5050 5051 <td class="entry_notes"> 5052 If optical zoom not supported,<wbr> only one value 5053 should be reported 5054 </td> 5055 5056 <td class="entry_tags"> 5057 <ul class="entry_tags"> 5058 <li><a href="#tag_BC">BC</a></li> 5059 <li><a href="#tag_V1">V1</a></li> 5060 </ul> 5061 </td> 5062 5063 </tr> <!-- end of entry --> 5064 5065 5066 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization"> 5067 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Optical<wbr>Stabilization</td> 5068 <td class="entry_type"> 5069 <span class="entry_type_name">byte</span> 5070 <span class="entry_type_container">x</span> 5071 5072 <span class="entry_type_array"> 5073 n 5074 </span> 5075 5076 <div class="entry_type_notes">list of enums</div> 5077 5078 5079 </td> <!-- entry_type --> 5080 5081 <td class="entry_description"> 5082 List of supported optical image 5083 stabilization modes 5084 </td> 5085 5086 <td class="entry_units"> 5087 </td> 5088 5089 <td class="entry_range"> 5090 </td> 5091 5092 <td class="entry_notes"> 5093 </td> 5094 5095 <td class="entry_tags"> 5096 <ul class="entry_tags"> 5097 <li><a href="#tag_V1">V1</a></li> 5098 </ul> 5099 </td> 5100 5101 </tr> <!-- end of entry --> 5102 5103 5104 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap"> 5105 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>geometric<wbr>Correction<wbr>Map</td> 5106 <td class="entry_type"> 5107 <span class="entry_type_name">float</span> 5108 <span class="entry_type_container">x</span> 5109 5110 <span class="entry_type_array"> 5111 2 x 3 x n x m 5112 </span> 5113 5114 <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> 5115 5116 5117 </td> <!-- entry_type --> 5118 5119 <td class="entry_description"> 5120 A low-resolution map for correction of 5121 geometric distortions and chromatic aberrations,<wbr> per 5122 color channel 5123 </td> 5124 5125 <td class="entry_units"> 5126 </td> 5127 5128 <td class="entry_range"> 5129 N,<wbr> M >= 2 5130 </td> 5131 5132 <td class="entry_notes"> 5133 [DNG wants a function instead].<wbr> What's easiest 5134 for implementers? With an array size (M,<wbr> N),<wbr> entry (i,<wbr> 5135 j) provides the destination for pixel (i/<wbr>(M-1) * width,<wbr> 5136 j/<wbr>(N-1) * height).<wbr> Data is row-major,<wbr> with each array 5137 entry being ( (X,<wbr> Y)_<wbr>r,<wbr> (X,<wbr> Y)_<wbr>g,<wbr> (X,<wbr> Y)_<wbr>b ) ) 5138 </td> 5139 5140 <td class="entry_tags"> 5141 <ul class="entry_tags"> 5142 <li><a href="#tag_DNG">DNG</a></li> 5143 </ul> 5144 </td> 5145 5146 </tr> <!-- end of entry --> 5147 5148 5149 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize"> 5150 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>geometric<wbr>Correction<wbr>Map<wbr>Size</td> 5151 <td class="entry_type"> 5152 <span class="entry_type_name">int32</span> 5153 <span class="entry_type_container">x</span> 5154 5155 <span class="entry_type_array"> 5156 2 5157 </span> 5158 5159 <div class="entry_type_notes">width and height of geometric correction map</div> 5160 5161 5162 </td> <!-- entry_type --> 5163 5164 <td class="entry_description"> 5165 Dimensions of geometric correction 5166 map 5167 </td> 5168 5169 <td class="entry_units"> 5170 </td> 5171 5172 <td class="entry_range"> 5173 Both values >= 2 5174 </td> 5175 5176 <td class="entry_notes"> 5177 </td> 5178 5179 <td class="entry_tags"> 5180 <ul class="entry_tags"> 5181 <li><a href="#tag_V1">V1</a></li> 5182 </ul> 5183 </td> 5184 5185 </tr> <!-- end of entry --> 5186 5187 5188 <tr class="entry" id="static_android.lens.info.hyperfocalDistance"> 5189 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>hyperfocal<wbr>Distance</td> 5190 <td class="entry_type"> 5191 <span class="entry_type_name">float</span> 5192 5193 5194 5195 5196 </td> <!-- entry_type --> 5197 5198 <td class="entry_description"> 5199 Hyperfocal distance for this lens; set to 5200 0 if fixed focus 5201 </td> 5202 5203 <td class="entry_units"> 5204 diopters 5205 </td> 5206 5207 <td class="entry_range"> 5208 >= 0 5209 </td> 5210 5211 <td class="entry_notes"> 5212 The hyperfocal distance is used for the old 5213 API's 'fixed' setting 5214 </td> 5215 5216 <td class="entry_tags"> 5217 <ul class="entry_tags"> 5218 <li><a href="#tag_BC">BC</a></li> 5219 </ul> 5220 </td> 5221 5222 </tr> <!-- end of entry --> 5223 5224 5225 <tr class="entry" id="static_android.lens.info.minimumFocusDistance"> 5226 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>minimum<wbr>Focus<wbr>Distance</td> 5227 <td class="entry_type"> 5228 <span class="entry_type_name">float</span> 5229 5230 5231 5232 5233 </td> <!-- entry_type --> 5234 5235 <td class="entry_description"> 5236 Shortest distance from frontmost surface 5237 of the lens that can be focused correctly 5238 </td> 5239 5240 <td class="entry_units"> 5241 diopters 5242 </td> 5243 5244 <td class="entry_range"> 5245 >= 0 5246 </td> 5247 5248 <td class="entry_notes"> 5249 If the lens is fixed-focus,<wbr> this should be 5250 0 5251 </td> 5252 5253 <td class="entry_tags"> 5254 <ul class="entry_tags"> 5255 <li><a href="#tag_V1">V1</a></li> 5256 </ul> 5257 </td> 5258 5259 </tr> <!-- end of entry --> 5260 5261 5262 <tr class="entry" id="static_android.lens.info.shadingMap"> 5263 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>shading<wbr>Map</td> 5264 <td class="entry_type"> 5265 <span class="entry_type_name">float</span> 5266 <span class="entry_type_container">x</span> 5267 5268 <span class="entry_type_array"> 5269 3 x n x m 5270 </span> 5271 5272 <div class="entry_type_notes">2D array of float gain factors per channel to correct for lens falloff.<wbr> Should be on the order of 3x40x30</div> 5273 5274 5275 </td> <!-- entry_type --> 5276 5277 <td class="entry_description"> 5278 A low-resolution map of lens shading,<wbr> per 5279 color channel 5280 </td> 5281 5282 <td class="entry_units"> 5283 </td> 5284 5285 <td class="entry_range"> 5286 Each gain factor is >= 1 5287 </td> 5288 5289 <td class="entry_notes"> 5290 Assume bilinear interpolation of map.<wbr> The least 5291 shaded section of the image should have a gain factor 5292 of 1; all other sections should have gains above 5293 1.<wbr> 5294 </td> 5295 5296 <td class="entry_tags"> 5297 <ul class="entry_tags"> 5298 <li><a href="#tag_DNG">DNG</a></li> 5299 </ul> 5300 </td> 5301 5302 </tr> <!-- end of entry --> 5303 5304 5305 <tr class="entry" id="static_android.lens.info.shadingMapSize"> 5306 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>shading<wbr>Map<wbr>Size</td> 5307 <td class="entry_type"> 5308 <span class="entry_type_name">int32</span> 5309 <span class="entry_type_container">x</span> 5310 5311 <span class="entry_type_array"> 5312 2 5313 </span> 5314 5315 <div class="entry_type_notes">width and height of lens shading map</div> 5316 5317 5318 </td> <!-- entry_type --> 5319 5320 <td class="entry_description"> 5321 Dimensions of lens shading 5322 map 5323 </td> 5324 5325 <td class="entry_units"> 5326 </td> 5327 5328 <td class="entry_range"> 5329 Both values >= 1 5330 </td> 5331 5332 <td class="entry_notes"> 5333 </td> 5334 5335 <td class="entry_tags"> 5336 <ul class="entry_tags"> 5337 <li><a href="#tag_V1">V1</a></li> 5338 </ul> 5339 </td> 5340 5341 </tr> <!-- end of entry --> 5342 5343 5344 5345 5346 5347 <tr class="entry" id="static_android.lens.facing"> 5348 <td class="entry_name">android.<wbr>lens.<wbr>facing</td> 5349 <td class="entry_type"> 5350 <span class="entry_type_name entry_type_name_enum">byte</span> 5351 5352 5353 5354 <ul class="entry_type_enum"> 5355 <li> 5356 <span class="entry_type_enum_name">FRONT</span> 5357 </li> 5358 <li> 5359 <span class="entry_type_enum_name">BACK</span> 5360 </li> 5361 </ul> 5362 5363 </td> <!-- entry_type --> 5364 5365 <td class="entry_description"> 5366 Direction the camera faces relative to 5367 device screen 5368 </td> 5369 5370 <td class="entry_units"> 5371 </td> 5372 5373 <td class="entry_range"> 5374 </td> 5375 5376 <td class="entry_notes"> 5377 </td> 5378 5379 <td class="entry_tags"> 5380 </td> 5381 5382 </tr> <!-- end of entry --> 5383 5384 5385 <tr class="entry" id="static_android.lens.opticalAxisAngle"> 5386 <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Axis<wbr>Angle</td> 5387 <td class="entry_type"> 5388 <span class="entry_type_name">float</span> 5389 <span class="entry_type_container">x</span> 5390 5391 <span class="entry_type_array"> 5392 2 5393 </span> 5394 5395 <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> 5396 5397 5398 </td> <!-- entry_type --> 5399 5400 <td class="entry_description"> 5401 Relative angle of camera optical axis to the 5402 perpendicular axis from the display 5403 </td> 5404 5405 <td class="entry_units"> 5406 </td> 5407 5408 <td class="entry_range"> 5409 [0-90) for first angle,<wbr> [0-360) for second 5410 </td> 5411 5412 <td class="entry_notes"> 5413 Examples: (0,<wbr>0) means that the camera optical axis 5414 is perpendicular to the display surface; (45,<wbr>0) means 5415 that the camera points 45 degrees up when device is held 5416 upright; (45,<wbr>90) means the camera points 45 degrees to 5417 the right when the device is held upright.<wbr> Use FACING 5418 field to determine perpendicular outgoing 5419 direction 5420 </td> 5421 5422 <td class="entry_tags"> 5423 <ul class="entry_tags"> 5424 <li><a href="#tag_ADV">ADV</a></li> 5425 </ul> 5426 </td> 5427 5428 </tr> <!-- end of entry --> 5429 5430 5431 <tr class="entry" id="static_android.lens.position"> 5432 <td class="entry_name">android.<wbr>lens.<wbr>position</td> 5433 <td class="entry_type"> 5434 <span class="entry_type_name">float</span> 5435 <span class="entry_type_container">x</span> 5436 5437 <span class="entry_type_array"> 5438 3, location in mm, in the sensor coordinate 5439 system 5440 </span> 5441 5442 5443 5444 </td> <!-- entry_type --> 5445 5446 <td class="entry_description"> 5447 Coordinates of camera optical axis on 5448 device 5449 </td> 5450 5451 <td class="entry_units"> 5452 </td> 5453 5454 <td class="entry_range"> 5455 </td> 5456 5457 <td class="entry_notes"> 5458 </td> 5459 5460 <td class="entry_tags"> 5461 <ul class="entry_tags"> 5462 <li><a href="#tag_V1">V1</a></li> 5463 </ul> 5464 </td> 5465 5466 </tr> <!-- end of entry --> 5467 5468 5469 5470 <!-- end of kind --> 5471 </tbody> 5472 <tr><td colspan="7" class="kind">dynamic</td></tr> 5473 5474 <thead> 5475 <tr> 5476 <th class="th_name">Property Name</th> 5477 <th class="th_type">Type</th> 5478 <th class="th_description">Description</th> 5479 <th class="th_units">Units</th> 5480 <th class="th_range">Range</th> 5481 <th class="th_notes">Notes</th> 5482 <th class="th_tags">Tags</th> 5483 </tr> 5484 </thead> 5485 5486 <tbody> 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 <tr class="entry" id="dynamic_android.lens.aperture"> 5498 <td class="entry_name">android.<wbr>lens.<wbr>aperture</td> 5499 <td class="entry_type"> 5500 <span class="entry_type_name">float</span> 5501 5502 5503 5504 5505 </td> <!-- entry_type --> 5506 5507 <td class="entry_description"> 5508 Size of the lens aperture 5509 </td> 5510 5511 <td class="entry_units"> 5512 f-number (f/<wbr>NNN) 5513 </td> 5514 5515 <td class="entry_range"> 5516 android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures 5517 </td> 5518 5519 <td class="entry_notes"> 5520 Will not be supported on most devices.<wbr> Can only 5521 pick from supported list 5522 </td> 5523 5524 <td class="entry_tags"> 5525 <ul class="entry_tags"> 5526 <li><a href="#tag_V1">V1</a></li> 5527 </ul> 5528 </td> 5529 5530 </tr> <!-- end of entry --> 5531 5532 5533 <tr class="entry" id="dynamic_android.lens.filterDensity"> 5534 <td class="entry_name">android.<wbr>lens.<wbr>filter<wbr>Density</td> 5535 <td class="entry_type"> 5536 <span class="entry_type_name">float</span> 5537 5538 5539 5540 5541 </td> <!-- entry_type --> 5542 5543 <td class="entry_description"> 5544 State of lens neutral density 5545 filter(s) 5546 </td> 5547 5548 <td class="entry_units"> 5549 number of stops of filtering 5550 </td> 5551 5552 <td class="entry_range"> 5553 android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities 5554 </td> 5555 5556 <td class="entry_notes"> 5557 Will not be supported on most devices.<wbr> Can only 5558 pick from supported list 5559 </td> 5560 5561 <td class="entry_tags"> 5562 <ul class="entry_tags"> 5563 <li><a href="#tag_V1">V1</a></li> 5564 </ul> 5565 </td> 5566 5567 </tr> <!-- end of entry --> 5568 5569 5570 <tr class="entry" id="dynamic_android.lens.focalLength"> 5571 <td class="entry_name">android.<wbr>lens.<wbr>focal<wbr>Length</td> 5572 <td class="entry_type"> 5573 <span class="entry_type_name">float</span> 5574 5575 5576 5577 5578 </td> <!-- entry_type --> 5579 5580 <td class="entry_description"> 5581 Lens optical zoom setting 5582 </td> 5583 5584 <td class="entry_units"> 5585 focal length in mm 5586 </td> 5587 5588 <td class="entry_range"> 5589 > 0 5590 </td> 5591 5592 <td class="entry_notes"> 5593 Will not be supported on most devices.<wbr> 5594 </td> 5595 5596 <td class="entry_tags"> 5597 <ul class="entry_tags"> 5598 <li><a href="#tag_BC">BC</a></li> 5599 </ul> 5600 </td> 5601 5602 </tr> <!-- end of entry --> 5603 5604 5605 <tr class="entry" id="dynamic_android.lens.focusDistance"> 5606 <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Distance</td> 5607 <td class="entry_type"> 5608 <span class="entry_type_name">float</span> 5609 5610 5611 5612 5613 </td> <!-- entry_type --> 5614 5615 <td class="entry_description"> 5616 Distance to plane of sharpest focus,<wbr> 5617 measured from frontmost surface of the lens 5618 </td> 5619 5620 <td class="entry_units"> 5621 diopters (1/<wbr>m) 5622 </td> 5623 5624 <td class="entry_range"> 5625 >= 0 5626 </td> 5627 5628 <td class="entry_notes"> 5629 Should be zero for fixed-focus cameras 5630 </td> 5631 5632 <td class="entry_tags"> 5633 <ul class="entry_tags"> 5634 <li><a href="#tag_BC">BC</a></li> 5635 </ul> 5636 </td> 5637 5638 </tr> <!-- end of entry --> 5639 5640 5641 <tr class="entry" id="dynamic_android.lens.focusRange"> 5642 <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Range</td> 5643 <td class="entry_type"> 5644 <span class="entry_type_name">float</span> 5645 5646 5647 5648 5649 </td> <!-- entry_type --> 5650 5651 <td class="entry_description"> 5652 The range of scene distances that are in 5653 sharp focus (depth of field) 5654 </td> 5655 5656 <td class="entry_units"> 5657 pair of focus distances in diopters: (near,<wbr> 5658 far) 5659 </td> 5660 5661 <td class="entry_range"> 5662 >=0 5663 </td> 5664 5665 <td class="entry_notes"> 5666 If variable focus not supported,<wbr> can still report 5667 fixed depth of field range 5668 </td> 5669 5670 <td class="entry_tags"> 5671 <ul class="entry_tags"> 5672 <li><a href="#tag_BC">BC</a></li> 5673 </ul> 5674 </td> 5675 5676 </tr> <!-- end of entry --> 5677 5678 5679 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode"> 5680 <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Stabilization<wbr>Mode</td> 5681 <td class="entry_type"> 5682 <span class="entry_type_name entry_type_name_enum">byte</span> 5683 5684 5685 5686 <ul class="entry_type_enum"> 5687 <li> 5688 <span class="entry_type_enum_name">OFF</span> 5689 </li> 5690 <li> 5691 <span class="entry_type_enum_name">ON</span> 5692 <span class="entry_type_enum_optional">optional</span> 5693 </li> 5694 </ul> 5695 5696 </td> <!-- entry_type --> 5697 5698 <td class="entry_description"> 5699 Whether optical image stabilization is 5700 enabled.<wbr> 5701 </td> 5702 5703 <td class="entry_units"> 5704 </td> 5705 5706 <td class="entry_range"> 5707 android.<wbr>lens.<wbr>available<wbr>Optical<wbr>Stabilization 5708 </td> 5709 5710 <td class="entry_notes"> 5711 Will not be supported on most devices.<wbr> 5712 </td> 5713 5714 <td class="entry_tags"> 5715 <ul class="entry_tags"> 5716 <li><a href="#tag_V1">V1</a></li> 5717 </ul> 5718 </td> 5719 5720 </tr> <!-- end of entry --> 5721 5722 5723 <tr class="entry" id="dynamic_android.lens.state"> 5724 <td class="entry_name">android.<wbr>lens.<wbr>state</td> 5725 <td class="entry_type"> 5726 <span class="entry_type_name entry_type_name_enum">byte</span> 5727 5728 5729 5730 <ul class="entry_type_enum"> 5731 <li> 5732 <span class="entry_type_enum_name">STATIONARY</span> 5733 </li> 5734 </ul> 5735 5736 </td> <!-- entry_type --> 5737 5738 <td class="entry_description"> 5739 Current lens status 5740 </td> 5741 5742 <td class="entry_units"> 5743 </td> 5744 5745 <td class="entry_range"> 5746 </td> 5747 5748 <td class="entry_notes"> 5749 </td> 5750 5751 <td class="entry_tags"> 5752 <ul class="entry_tags"> 5753 <li><a href="#tag_V1">V1</a></li> 5754 </ul> 5755 </td> 5756 5757 </tr> <!-- end of entry --> 5758 5759 5760 5761 <!-- end of kind --> 5762 </tbody> 5763 5764 <!-- end of section --> 5765 <tr><td colspan="7" id="section_noiseReduction" class="section">noiseReduction</td></tr> 5766 5767 5768 <tr><td colspan="7" class="kind">controls</td></tr> 5769 5770 <thead> 5771 <tr> 5772 <th class="th_name">Property Name</th> 5773 <th class="th_type">Type</th> 5774 <th class="th_description">Description</th> 5775 <th class="th_units">Units</th> 5776 <th class="th_range">Range</th> 5777 <th class="th_notes">Notes</th> 5778 <th class="th_tags">Tags</th> 5779 </tr> 5780 </thead> 5781 5782 <tbody> 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 <tr class="entry" id="controls_android.noiseReduction.mode"> 5794 <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>mode</td> 5795 <td class="entry_type"> 5796 <span class="entry_type_name entry_type_name_enum">byte</span> 5797 5798 5799 5800 <ul class="entry_type_enum"> 5801 <li> 5802 <span class="entry_type_enum_name">OFF</span> 5803 <span class="entry_type_enum_notes">No noise reduction is applied</span> 5804 </li> 5805 <li> 5806 <span class="entry_type_enum_name">FAST</span> 5807 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 5808 bayer output</span> 5809 </li> 5810 <li> 5811 <span class="entry_type_enum_name">HIGH_QUALITY</span> 5812 <span class="entry_type_enum_notes">May slow down frame rate to provide highest 5813 quality</span> 5814 </li> 5815 </ul> 5816 5817 </td> <!-- entry_type --> 5818 5819 <td class="entry_description"> 5820 Mode of operation for the noise reduction 5821 algorithm 5822 </td> 5823 5824 <td class="entry_units"> 5825 </td> 5826 5827 <td class="entry_range"> 5828 android.<wbr>noise<wbr>Reduction.<wbr>available<wbr>Modes 5829 </td> 5830 5831 <td class="entry_notes"> 5832 </td> 5833 5834 <td class="entry_tags"> 5835 <ul class="entry_tags"> 5836 <li><a href="#tag_V1">V1</a></li> 5837 </ul> 5838 </td> 5839 5840 </tr> <!-- end of entry --> 5841 5842 5843 <tr class="entry" id="controls_android.noiseReduction.strength"> 5844 <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>strength</td> 5845 <td class="entry_type"> 5846 <span class="entry_type_name">byte</span> 5847 5848 5849 5850 5851 </td> <!-- entry_type --> 5852 5853 <td class="entry_description"> 5854 Control the amount of noise reduction 5855 applied to the images 5856 </td> 5857 5858 <td class="entry_units"> 5859 1-10; 10 is max noise reduction 5860 </td> 5861 5862 <td class="entry_range"> 5863 1 - 10 5864 </td> 5865 5866 <td class="entry_notes"> 5867 </td> 5868 5869 <td class="entry_tags"> 5870 </td> 5871 5872 </tr> <!-- end of entry --> 5873 5874 5875 5876 <!-- end of kind --> 5877 </tbody> 5878 <tr><td colspan="7" class="kind">dynamic</td></tr> 5879 5880 <thead> 5881 <tr> 5882 <th class="th_name">Property Name</th> 5883 <th class="th_type">Type</th> 5884 <th class="th_description">Description</th> 5885 <th class="th_units">Units</th> 5886 <th class="th_range">Range</th> 5887 <th class="th_notes">Notes</th> 5888 <th class="th_tags">Tags</th> 5889 </tr> 5890 </thead> 5891 5892 <tbody> 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 <tr class="entry" id="dynamic_android.noiseReduction.mode"> 5904 <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>mode</td> 5905 <td class="entry_type"> 5906 <span class="entry_type_name entry_type_name_enum">byte</span> 5907 5908 5909 5910 <ul class="entry_type_enum"> 5911 <li> 5912 <span class="entry_type_enum_name">OFF</span> 5913 <span class="entry_type_enum_notes">No noise reduction is applied</span> 5914 </li> 5915 <li> 5916 <span class="entry_type_enum_name">FAST</span> 5917 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 5918 bayer output</span> 5919 </li> 5920 <li> 5921 <span class="entry_type_enum_name">HIGH_QUALITY</span> 5922 <span class="entry_type_enum_notes">May slow down frame rate to provide highest 5923 quality</span> 5924 </li> 5925 </ul> 5926 5927 </td> <!-- entry_type --> 5928 5929 <td class="entry_description"> 5930 Mode of operation for the noise reduction 5931 algorithm 5932 </td> 5933 5934 <td class="entry_units"> 5935 </td> 5936 5937 <td class="entry_range"> 5938 android.<wbr>noise<wbr>Reduction.<wbr>available<wbr>Modes 5939 </td> 5940 5941 <td class="entry_notes"> 5942 </td> 5943 5944 <td class="entry_tags"> 5945 <ul class="entry_tags"> 5946 <li><a href="#tag_V1">V1</a></li> 5947 </ul> 5948 </td> 5949 5950 </tr> <!-- end of entry --> 5951 5952 5953 5954 <!-- end of kind --> 5955 </tbody> 5956 5957 <!-- end of section --> 5958 <tr><td colspan="7" id="section_quirks" class="section">quirks</td></tr> 5959 5960 5961 <tr><td colspan="7" class="kind">static</td></tr> 5962 5963 <thead> 5964 <tr> 5965 <th class="th_name">Property Name</th> 5966 <th class="th_type">Type</th> 5967 <th class="th_description">Description</th> 5968 <th class="th_units">Units</th> 5969 <th class="th_range">Range</th> 5970 <th class="th_notes">Notes</th> 5971 <th class="th_tags">Tags</th> 5972 </tr> 5973 </thead> 5974 5975 <tbody> 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 <tr class="entry" id="static_android.quirks.meteringCropRegion"> 5987 <td class="entry_name">android.<wbr>quirks.<wbr>metering<wbr>Crop<wbr>Region</td> 5988 <td class="entry_type"> 5989 <span class="entry_type_name">byte</span> 5990 5991 5992 5993 5994 </td> <!-- entry_type --> 5995 5996 <td class="entry_description"> 5997 If set to 1,<wbr> the camera service does not 5998 scale 'normalized' coordinates with respect to the crop 5999 region.<wbr> This applies to metering input (a{e,<wbr>f,<wbr>wb}Region 6000 and output (face rectangles).<wbr> 6001 </td> 6002 6003 <td class="entry_units"> 6004 </td> 6005 6006 <td class="entry_range"> 6007 </td> 6008 6009 <td class="entry_notes"> 6010 Normalized coordinates refer to those in the 6011 (-1000,<wbr>1000) range mentioned in the 6012 android.<wbr>hardware.<wbr><wbr>Camera API.<wbr> HAL implementations should 6013 instead always use and emit sensor array-relative 6014 coordinates for all region data.<wbr> Does not need to be 6015 listed in static metadata.<wbr> Support will be removed in 6016 future versions of camera service.<wbr> 6017 </td> 6018 6019 <td class="entry_tags"> 6020 </td> 6021 6022 </tr> <!-- end of entry --> 6023 6024 6025 <tr class="entry" id="static_android.quirks.triggerAfWithAuto"> 6026 <td class="entry_name">android.<wbr>quirks.<wbr>trigger<wbr>Af<wbr>With<wbr>Auto</td> 6027 <td class="entry_type"> 6028 <span class="entry_type_name">byte</span> 6029 6030 6031 6032 6033 </td> <!-- entry_type --> 6034 6035 <td class="entry_description"> 6036 If set to 1,<wbr> then the camera service always 6037 switches to FOCUS_<wbr>MODE_<wbr>AUTO before issuing a AF 6038 trigger.<wbr> 6039 </td> 6040 6041 <td class="entry_units"> 6042 </td> 6043 6044 <td class="entry_range"> 6045 </td> 6046 6047 <td class="entry_notes"> 6048 HAL implementations should implement AF trigger 6049 modes for AUTO,<wbr> MACRO,<wbr> CONTINUOUS_<wbr>FOCUS,<wbr> and 6050 CONTINUOUS_<wbr>PICTURE modes instead of using this flag.<wbr> Does 6051 not need to be listed in static metadata.<wbr> Support will be 6052 removed in future versions of camera service 6053 </td> 6054 6055 <td class="entry_tags"> 6056 </td> 6057 6058 </tr> <!-- end of entry --> 6059 6060 6061 <tr class="entry" id="static_android.quirks.useZslFormat"> 6062 <td class="entry_name">android.<wbr>quirks.<wbr>use<wbr>Zsl<wbr>Format</td> 6063 <td class="entry_type"> 6064 <span class="entry_type_name">byte</span> 6065 6066 6067 6068 6069 </td> <!-- entry_type --> 6070 6071 <td class="entry_description"> 6072 If set to 1,<wbr> the camera service uses 6073 CAMERA2_<wbr>PIXEL_<wbr>FORMAT_<wbr>ZSL instead of 6074 HAL_<wbr>PIXEL_<wbr>FORMAT_<wbr>IMPLEMENTATION_<wbr>DEFINED for the zero 6075 shutter lag stream 6076 </td> 6077 6078 <td class="entry_units"> 6079 </td> 6080 6081 <td class="entry_range"> 6082 </td> 6083 6084 <td class="entry_notes"> 6085 HAL implementations should use gralloc usage flags 6086 to determine that a stream will be used for 6087 zero-shutter-lag,<wbr> instead of relying on an explicit 6088 format setting.<wbr> Does not need to be listed in static 6089 metadata.<wbr> Support will be removed in future versions of 6090 camera service.<wbr> 6091 </td> 6092 6093 <td class="entry_tags"> 6094 </td> 6095 6096 </tr> <!-- end of entry --> 6097 6098 6099 6100 <!-- end of kind --> 6101 </tbody> 6102 6103 <!-- end of section --> 6104 <tr><td colspan="7" id="section_request" class="section">request</td></tr> 6105 6106 6107 <tr><td colspan="7" class="kind">controls</td></tr> 6108 6109 <thead> 6110 <tr> 6111 <th class="th_name">Property Name</th> 6112 <th class="th_type">Type</th> 6113 <th class="th_description">Description</th> 6114 <th class="th_units">Units</th> 6115 <th class="th_range">Range</th> 6116 <th class="th_notes">Notes</th> 6117 <th class="th_tags">Tags</th> 6118 </tr> 6119 </thead> 6120 6121 <tbody> 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 <tr class="entry" id="controls_android.request.frameCount"> 6133 <td class="entry_name">android.<wbr>request.<wbr>frame<wbr>Count</td> 6134 <td class="entry_type"> 6135 <span class="entry_type_name">int32</span> 6136 6137 6138 6139 6140 </td> <!-- entry_type --> 6141 6142 <td class="entry_description"> 6143 A frame counter set by the framework.<wbr> Must 6144 be maintained unchanged in output frame 6145 </td> 6146 6147 <td class="entry_units"> 6148 incrementing integer 6149 </td> 6150 6151 <td class="entry_range"> 6152 Any int 6153 </td> 6154 6155 <td class="entry_notes"> 6156 </td> 6157 6158 <td class="entry_tags"> 6159 </td> 6160 6161 </tr> <!-- end of entry --> 6162 6163 6164 <tr class="entry" id="controls_android.request.id"> 6165 <td class="entry_name">android.<wbr>request.<wbr>id</td> 6166 <td class="entry_type"> 6167 <span class="entry_type_name">int32</span> 6168 6169 6170 6171 6172 </td> <!-- entry_type --> 6173 6174 <td class="entry_description"> 6175 An application-specified ID for the current 6176 request.<wbr> Must be maintained unchanged in output 6177 frame 6178 </td> 6179 6180 <td class="entry_units"> 6181 arbitrary integer assigned by application 6182 </td> 6183 6184 <td class="entry_range"> 6185 Any int 6186 </td> 6187 6188 <td class="entry_notes"> 6189 </td> 6190 6191 <td class="entry_tags"> 6192 <ul class="entry_tags"> 6193 <li><a href="#tag_V1">V1</a></li> 6194 </ul> 6195 </td> 6196 6197 </tr> <!-- end of entry --> 6198 6199 6200 <tr class="entry" id="controls_android.request.inputStreams"> 6201 <td class="entry_name">android.<wbr>request.<wbr>input<wbr>Streams</td> 6202 <td class="entry_type"> 6203 <span class="entry_type_name">byte</span> 6204 6205 6206 6207 6208 </td> <!-- entry_type --> 6209 6210 <td class="entry_description"> 6211 List which camera reprocess stream is used 6212 for the source of reprocessing data.<wbr> 6213 </td> 6214 6215 <td class="entry_units"> 6216 List of camera reprocess stream IDs 6217 </td> 6218 6219 <td class="entry_range"> 6220 Typically,<wbr> only one entry allowed,<wbr> must be a valid 6221 reprocess stream ID.<wbr> If android.<wbr>jpeg.<wbr>needs<wbr>Thumbnail is 6222 set,<wbr> then multiple reprocess streams may be included in a 6223 single request; they must be different scaled versions of 6224 the same image.<wbr> 6225 </td> 6226 6227 <td class="entry_notes"> 6228 Only meaningful when android.<wbr>request.<wbr>type == 6229 REPROCESS.<wbr> Ignored otherwise 6230 </td> 6231 6232 <td class="entry_tags"> 6233 </td> 6234 6235 </tr> <!-- end of entry --> 6236 6237 6238 <tr class="entry" id="controls_android.request.metadataMode"> 6239 <td class="entry_name">android.<wbr>request.<wbr>metadata<wbr>Mode</td> 6240 <td class="entry_type"> 6241 <span class="entry_type_name entry_type_name_enum">byte</span> 6242 6243 6244 6245 <ul class="entry_type_enum"> 6246 <li> 6247 <span class="entry_type_enum_name">NONE</span> 6248 <span class="entry_type_enum_notes">No metadata should be produced on output,<wbr> except 6249 for application-bound buffer data.<wbr> If no 6250 application-bound streams exist,<wbr> no frame should be 6251 placed in the output frame queue.<wbr> If such streams 6252 exist,<wbr> a frame should be placed on the output queue 6253 with null metadata but with the necessary output buffer 6254 information.<wbr> Timestamp information should still be 6255 included with any output stream buffers</span> 6256 </li> 6257 <li> 6258 <span class="entry_type_enum_name">FULL</span> 6259 <span class="entry_type_enum_notes">All metadata should be produced.<wbr> Statistics will 6260 only be produced if they are separately 6261 enabled</span> 6262 </li> 6263 </ul> 6264 6265 </td> <!-- entry_type --> 6266 6267 <td class="entry_description"> 6268 How much metadata to produce on 6269 output 6270 </td> 6271 6272 <td class="entry_units"> 6273 </td> 6274 6275 <td class="entry_range"> 6276 </td> 6277 6278 <td class="entry_notes"> 6279 </td> 6280 6281 <td class="entry_tags"> 6282 </td> 6283 6284 </tr> <!-- end of entry --> 6285 6286 6287 <tr class="entry" id="controls_android.request.outputStreams"> 6288 <td class="entry_name">android.<wbr>request.<wbr>output<wbr>Streams</td> 6289 <td class="entry_type"> 6290 <span class="entry_type_name">byte</span> 6291 6292 6293 6294 6295 </td> <!-- entry_type --> 6296 6297 <td class="entry_description"> 6298 Lists which camera output streams image data 6299 from this capture must be sent to 6300 </td> 6301 6302 <td class="entry_units"> 6303 List of camera stream IDs 6304 </td> 6305 6306 <td class="entry_range"> 6307 List must only include streams that have been 6308 created 6309 </td> 6310 6311 <td class="entry_notes"> 6312 If no output streams are listed,<wbr> then the image 6313 data should simply be discarded.<wbr> The image data must 6314 still be captured for metadata and statistics production,<wbr> 6315 and the lens and flash must operate as requested.<wbr> 6316 </td> 6317 6318 <td class="entry_tags"> 6319 </td> 6320 6321 </tr> <!-- end of entry --> 6322 6323 6324 <tr class="entry" id="controls_android.request.type"> 6325 <td class="entry_name">android.<wbr>request.<wbr>type</td> 6326 <td class="entry_type"> 6327 <span class="entry_type_name entry_type_name_enum">byte</span> 6328 6329 6330 6331 <ul class="entry_type_enum"> 6332 <li> 6333 <span class="entry_type_enum_name">CAPTURE</span> 6334 <span class="entry_type_enum_notes">Capture a new image from the imaging hardware,<wbr> 6335 and process it according to the 6336 settings</span> 6337 </li> 6338 <li> 6339 <span class="entry_type_enum_name">REPROCESS</span> 6340 <span class="entry_type_enum_notes">Process previously captured data; the 6341 android.<wbr>request.<wbr>input<wbr>Stream parameter determines the 6342 source reprocessing stream.<wbr> TODO: Mark dynamic metadata 6343 needed for reprocessing with [RP]</span> 6344 </li> 6345 </ul> 6346 6347 </td> <!-- entry_type --> 6348 6349 <td class="entry_description"> 6350 The type of the request; either CAPTURE or 6351 REPROCESS 6352 </td> 6353 6354 <td class="entry_units"> 6355 </td> 6356 6357 <td class="entry_range"> 6358 </td> 6359 6360 <td class="entry_notes"> 6361 </td> 6362 6363 <td class="entry_tags"> 6364 </td> 6365 6366 </tr> <!-- end of entry --> 6367 6368 6369 6370 <!-- end of kind --> 6371 </tbody> 6372 <tr><td colspan="7" class="kind">static</td></tr> 6373 6374 <thead> 6375 <tr> 6376 <th class="th_name">Property Name</th> 6377 <th class="th_type">Type</th> 6378 <th class="th_description">Description</th> 6379 <th class="th_units">Units</th> 6380 <th class="th_range">Range</th> 6381 <th class="th_notes">Notes</th> 6382 <th class="th_tags">Tags</th> 6383 </tr> 6384 </thead> 6385 6386 <tbody> 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 <tr class="entry" id="static_android.request.maxNumOutputStreams"> 6398 <td class="entry_name">android.<wbr>request.<wbr>max<wbr>Num<wbr>Output<wbr>Streams</td> 6399 <td class="entry_type"> 6400 <span class="entry_type_name">int32</span> 6401 <span class="entry_type_container">x</span> 6402 6403 <span class="entry_type_array"> 6404 3 6405 </span> 6406 6407 6408 6409 </td> <!-- entry_type --> 6410 6411 <td class="entry_description"> 6412 How many output streams can be allocated at 6413 the same time for each type of stream 6414 </td> 6415 6416 <td class="entry_units"> 6417 The number of raw sensor streams; the number of 6418 processed,<wbr> uncompressed streams; and the number of 6419 JPEG-compressed streams 6420 </td> 6421 6422 <td class="entry_range"> 6423 >=1 for Raw and JPEG-compressed stream.<wbr> >= 3 6424 for processed,<wbr> uncompressed streams 6425 </td> 6426 6427 <td class="entry_notes"> 6428 Video snapshot with preview callbacks requires 3 6429 processed streams (preview,<wbr> record,<wbr> app callbacks) and 6430 one JPEG stream (snapshot) 6431 </td> 6432 6433 <td class="entry_tags"> 6434 <ul class="entry_tags"> 6435 <li><a href="#tag_BC">BC</a></li> 6436 </ul> 6437 </td> 6438 6439 </tr> <!-- end of entry --> 6440 6441 6442 <tr class="entry" id="static_android.request.maxNumReprocessStreams"> 6443 <td class="entry_name">android.<wbr>request.<wbr>max<wbr>Num<wbr>Reprocess<wbr>Streams</td> 6444 <td class="entry_type"> 6445 <span class="entry_type_name">int32</span> 6446 <span class="entry_type_container">x</span> 6447 6448 <span class="entry_type_array"> 6449 1 6450 </span> 6451 6452 6453 6454 </td> <!-- entry_type --> 6455 6456 <td class="entry_description"> 6457 How many reprocessing streams of any type 6458 can be allocated at the same time 6459 </td> 6460 6461 <td class="entry_units"> 6462 </td> 6463 6464 <td class="entry_range"> 6465 >= 1 6466 </td> 6467 6468 <td class="entry_notes"> 6469 </td> 6470 6471 <td class="entry_tags"> 6472 </td> 6473 6474 </tr> <!-- end of entry --> 6475 6476 6477 6478 <!-- end of kind --> 6479 </tbody> 6480 <tr><td colspan="7" class="kind">dynamic</td></tr> 6481 6482 <thead> 6483 <tr> 6484 <th class="th_name">Property Name</th> 6485 <th class="th_type">Type</th> 6486 <th class="th_description">Description</th> 6487 <th class="th_units">Units</th> 6488 <th class="th_range">Range</th> 6489 <th class="th_notes">Notes</th> 6490 <th class="th_tags">Tags</th> 6491 </tr> 6492 </thead> 6493 6494 <tbody> 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 <tr class="entry" id="dynamic_android.request.frameCount"> 6506 <td class="entry_name">android.<wbr>request.<wbr>frame<wbr>Count</td> 6507 <td class="entry_type"> 6508 <span class="entry_type_name">int32</span> 6509 6510 6511 6512 6513 </td> <!-- entry_type --> 6514 6515 <td class="entry_description"> 6516 Number of frames captured since 6517 open() 6518 </td> 6519 6520 <td class="entry_units"> 6521 count of frames 6522 </td> 6523 6524 <td class="entry_range"> 6525 > 0 6526 </td> 6527 6528 <td class="entry_notes"> 6529 Reset on release() 6530 </td> 6531 6532 <td class="entry_tags"> 6533 </td> 6534 6535 </tr> <!-- end of entry --> 6536 6537 6538 <tr class="entry" id="dynamic_android.request.id"> 6539 <td class="entry_name">android.<wbr>request.<wbr>id</td> 6540 <td class="entry_type"> 6541 <span class="entry_type_name">int32</span> 6542 6543 6544 6545 6546 </td> <!-- entry_type --> 6547 6548 <td class="entry_description"> 6549 An application-specified ID for the current 6550 request.<wbr> Must be maintained unchanged in output 6551 frame 6552 </td> 6553 6554 <td class="entry_units"> 6555 arbitrary integer assigned by application 6556 </td> 6557 6558 <td class="entry_range"> 6559 Any int 6560 </td> 6561 6562 <td class="entry_notes"> 6563 </td> 6564 6565 <td class="entry_tags"> 6566 <ul class="entry_tags"> 6567 <li><a href="#tag_V1">V1</a></li> 6568 </ul> 6569 </td> 6570 6571 </tr> <!-- end of entry --> 6572 6573 6574 <tr class="entry" id="dynamic_android.request.metadataMode"> 6575 <td class="entry_name">android.<wbr>request.<wbr>metadata<wbr>Mode</td> 6576 <td class="entry_type"> 6577 <span class="entry_type_name entry_type_name_enum">byte</span> 6578 6579 6580 6581 <ul class="entry_type_enum"> 6582 <li> 6583 <span class="entry_type_enum_name">NONE</span> 6584 <span class="entry_type_enum_notes">No metadata should be produced on output,<wbr> except 6585 for application-bound buffer data.<wbr> If no 6586 application-bound streams exist,<wbr> no frame should be 6587 placed in the output frame queue.<wbr> If such streams 6588 exist,<wbr> a frame should be placed on the output queue 6589 with null metadata but with the necessary output buffer 6590 information.<wbr> Timestamp information should still be 6591 included with any output stream buffers</span> 6592 </li> 6593 <li> 6594 <span class="entry_type_enum_name">FULL</span> 6595 <span class="entry_type_enum_notes">All metadata should be produced.<wbr> Statistics will 6596 only be produced if they are separately 6597 enabled</span> 6598 </li> 6599 </ul> 6600 6601 </td> <!-- entry_type --> 6602 6603 <td class="entry_description"> 6604 How much metadata to produce on 6605 output 6606 </td> 6607 6608 <td class="entry_units"> 6609 </td> 6610 6611 <td class="entry_range"> 6612 </td> 6613 6614 <td class="entry_notes"> 6615 </td> 6616 6617 <td class="entry_tags"> 6618 </td> 6619 6620 </tr> <!-- end of entry --> 6621 6622 6623 <tr class="entry" id="dynamic_android.request.outputStreams"> 6624 <td class="entry_name">android.<wbr>request.<wbr>output<wbr>Streams</td> 6625 <td class="entry_type"> 6626 <span class="entry_type_name">byte</span> 6627 6628 6629 6630 6631 </td> <!-- entry_type --> 6632 6633 <td class="entry_description"> 6634 Lists which camera output streams image data 6635 from this capture must be sent to 6636 </td> 6637 6638 <td class="entry_units"> 6639 List of camera stream IDs 6640 </td> 6641 6642 <td class="entry_range"> 6643 List must only include streams that have been 6644 created 6645 </td> 6646 6647 <td class="entry_notes"> 6648 If no output streams are listed,<wbr> then the image 6649 data should simply be discarded.<wbr> The image data must 6650 still be captured for metadata and statistics production,<wbr> 6651 and the lens and flash must operate as requested.<wbr> 6652 </td> 6653 6654 <td class="entry_tags"> 6655 </td> 6656 6657 </tr> <!-- end of entry --> 6658 6659 6660 6661 <!-- end of kind --> 6662 </tbody> 6663 6664 <!-- end of section --> 6665 <tr><td colspan="7" id="section_scaler" class="section">scaler</td></tr> 6666 6667 6668 <tr><td colspan="7" class="kind">controls</td></tr> 6669 6670 <thead> 6671 <tr> 6672 <th class="th_name">Property Name</th> 6673 <th class="th_type">Type</th> 6674 <th class="th_description">Description</th> 6675 <th class="th_units">Units</th> 6676 <th class="th_range">Range</th> 6677 <th class="th_notes">Notes</th> 6678 <th class="th_tags">Tags</th> 6679 </tr> 6680 </thead> 6681 6682 <tbody> 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 <tr class="entry" id="controls_android.scaler.cropRegion"> 6694 <td class="entry_name">android.<wbr>scaler.<wbr>crop<wbr>Region</td> 6695 <td class="entry_type"> 6696 <span class="entry_type_name">int32</span> 6697 <span class="entry_type_container">x</span> 6698 6699 <span class="entry_type_array"> 6700 4 6701 </span> 6702 6703 6704 6705 </td> <!-- entry_type --> 6706 6707 <td class="entry_description"> 6708 (x,<wbr> y,<wbr> width,<wbr> height).<wbr> 6709 <br> 6710 <br> A rectangle with the top-level corner of (x,<wbr>y) and size 6711 (width,<wbr> height).<wbr> The region of the sensor that is used for 6712 output.<wbr> Each stream must use this rectangle to produce its 6713 output,<wbr> cropping to a smaller region if necessary to 6714 maintain the stream's aspect ratio.<wbr> 6715 <br> 6716 <br> HAL2.<wbr>x uses only (x,<wbr> y,<wbr> width) 6717 </td> 6718 6719 <td class="entry_units"> 6720 (x,<wbr>y) of top-left corner,<wbr> width and height of region 6721 in pixels; (0,<wbr>0) is top-left corner of 6722 android.<wbr>sensor.<wbr>active<wbr>Array<wbr>Size 6723 </td> 6724 6725 <td class="entry_range"> 6726 </td> 6727 6728 <td class="entry_notes"> 6729 6730 Any additional per-stream cropping must be done to 6731 maximize the final pixel area of the stream.<wbr> 6732 <br> 6733 <br> For example,<wbr> if the crop region is set to a 4:3 aspect 6734 ratio,<wbr> then 4:3 streams should use the exact crop 6735 region.<wbr> 16:9 streams should further crop vertically 6736 (letterbox).<wbr> 6737 <br> 6738 <br> Conversely,<wbr> if the crop region is set to a 16:9,<wbr> then 4:3 6739 outputs should crop horizontally (pillarbox),<wbr> and 16:9 6740 streams should match exactly.<wbr> These additional crops must 6741 be centered within the crop region.<wbr> 6742 <br> 6743 <br> The output streams must maintain square pixels at all 6744 times,<wbr> no matter what the relative aspect ratios of the 6745 crop region and the stream are.<wbr> Negative values for 6746 corner are allowed for raw output if full pixel array is 6747 larger than active pixel array.<wbr> Width and height may be 6748 rounded to nearest larger supportable width,<wbr> especially 6749 for raw output,<wbr> where only a few fixed scales may be 6750 possible.<wbr> The width and height of the crop region cannot 6751 be set to be smaller than floor( activeArraySize.<wbr>width /<wbr> 6752 android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom ) and floor( 6753 activeArraySize.<wbr>height /<wbr> android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom),<wbr> 6754 respectively.<wbr> 6755 6756 </td> 6757 6758 <td class="entry_tags"> 6759 <ul class="entry_tags"> 6760 <li><a href="#tag_BC">BC</a></li> 6761 </ul> 6762 </td> 6763 6764 </tr> <!-- end of entry --> 6765 6766 6767 6768 <!-- end of kind --> 6769 </tbody> 6770 <tr><td colspan="7" class="kind">static</td></tr> 6771 6772 <thead> 6773 <tr> 6774 <th class="th_name">Property Name</th> 6775 <th class="th_type">Type</th> 6776 <th class="th_description">Description</th> 6777 <th class="th_units">Units</th> 6778 <th class="th_range">Range</th> 6779 <th class="th_notes">Notes</th> 6780 <th class="th_tags">Tags</th> 6781 </tr> 6782 </thead> 6783 6784 <tbody> 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 <tr class="entry" id="static_android.scaler.availableFormats"> 6796 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Formats</td> 6797 <td class="entry_type"> 6798 <span class="entry_type_name entry_type_name_enum">int32</span> 6799 <span class="entry_type_container">x</span> 6800 6801 <span class="entry_type_array"> 6802 n 6803 </span> 6804 6805 <div class="entry_type_notes">values from HAL_<wbr>PIXEL_<wbr>FORMAT_<wbr>* in /<wbr>system/<wbr>core/<wbr>include/<wbr>system/<wbr>graphics.<wbr>h</div> 6806 6807 <ul class="entry_type_enum"> 6808 <li> 6809 <span class="entry_type_enum_name">RAW_SENSOR</span> 6810 <span class="entry_type_enum_value">0x20</span> 6811 </li> 6812 <li> 6813 <span class="entry_type_enum_name">YV12</span> 6814 <span class="entry_type_enum_value">0x32315659</span> 6815 <span class="entry_type_enum_notes">YCrCb 4:2:0 Planar</span> 6816 </li> 6817 <li> 6818 <span class="entry_type_enum_name">YCrCb_420_SP</span> 6819 <span class="entry_type_enum_value">0x11</span> 6820 <span class="entry_type_enum_notes">NV21</span> 6821 </li> 6822 <li> 6823 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span> 6824 <span class="entry_type_enum_value">0x22</span> 6825 <span class="entry_type_enum_notes">Hal Implementation Defined</span> 6826 </li> 6827 <li> 6828 <span class="entry_type_enum_name">YCbCr_420_888</span> 6829 <span class="entry_type_enum_value">0x23</span> 6830 <span class="entry_type_enum_notes">Flexible YUV420 Format</span> 6831 </li> 6832 <li> 6833 <span class="entry_type_enum_name">BLOB</span> 6834 <span class="entry_type_enum_value">0x21</span> 6835 <span class="entry_type_enum_notes">JPEG</span> 6836 </li> 6837 </ul> 6838 6839 </td> <!-- entry_type --> 6840 6841 <td class="entry_description"> 6842 List of app-visible formats 6843 </td> 6844 6845 <td class="entry_units"> 6846 </td> 6847 6848 <td class="entry_range"> 6849 </td> 6850 6851 <td class="entry_notes"> 6852 </td> 6853 6854 <td class="entry_tags"> 6855 <ul class="entry_tags"> 6856 <li><a href="#tag_BC">BC</a></li> 6857 </ul> 6858 </td> 6859 6860 </tr> <!-- end of entry --> 6861 6862 6863 <tr class="entry" id="static_android.scaler.availableJpegMinDurations"> 6864 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Min<wbr>Durations</td> 6865 <td class="entry_type"> 6866 <span class="entry_type_name">int64</span> 6867 <span class="entry_type_container">x</span> 6868 6869 <span class="entry_type_array"> 6870 n 6871 </span> 6872 6873 6874 6875 </td> <!-- entry_type --> 6876 6877 <td class="entry_description"> 6878 The minimum frame duration that is supported 6879 for each resolution in availableJpegSizes.<wbr> Should 6880 correspond to the frame duration when only that JPEG 6881 stream is active,<wbr> with all processing set to 6882 FAST 6883 </td> 6884 6885 <td class="entry_units"> 6886 </td> 6887 6888 <td class="entry_range"> 6889 </td> 6890 6891 <td class="entry_notes"> 6892 When multiple streams are configured,<wbr> the minimum 6893 frame duration will be >= max(individual stream min 6894 durations) 6895 </td> 6896 6897 <td class="entry_tags"> 6898 <ul class="entry_tags"> 6899 <li><a href="#tag_BC">BC</a></li> 6900 </ul> 6901 </td> 6902 6903 </tr> <!-- end of entry --> 6904 6905 6906 <tr class="entry" id="static_android.scaler.availableJpegSizes"> 6907 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Sizes</td> 6908 <td class="entry_type"> 6909 <span class="entry_type_name">int32</span> 6910 <span class="entry_type_container">x</span> 6911 6912 <span class="entry_type_array"> 6913 n x 2 6914 </span> 6915 6916 6917 6918 </td> <!-- entry_type --> 6919 6920 <td class="entry_description"> 6921 The resolutions available for output from 6922 the JPEG block.<wbr> Listed as width x height 6923 </td> 6924 6925 <td class="entry_units"> 6926 </td> 6927 6928 <td class="entry_range"> 6929 Must include: - sensor maximum resolution Should 6930 include: - half/<wbr>quarter max resolution 6931 </td> 6932 6933 <td class="entry_notes"> 6934 </td> 6935 6936 <td class="entry_tags"> 6937 <ul class="entry_tags"> 6938 <li><a href="#tag_BC">BC</a></li> 6939 </ul> 6940 </td> 6941 6942 </tr> <!-- end of entry --> 6943 6944 6945 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom"> 6946 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Max<wbr>Digital<wbr>Zoom</td> 6947 <td class="entry_type"> 6948 <span class="entry_type_name">float</span> 6949 6950 6951 6952 6953 </td> <!-- entry_type --> 6954 6955 <td class="entry_description"> 6956 The maximum ratio between active area width 6957 and crop region width,<wbr> or between active area height and 6958 crop region height,<wbr> if the crop region height is larger 6959 than width 6960 </td> 6961 6962 <td class="entry_units"> 6963 </td> 6964 6965 <td class="entry_range"> 6966 >=1 6967 </td> 6968 6969 <td class="entry_notes"> 6970 </td> 6971 6972 <td class="entry_tags"> 6973 <ul class="entry_tags"> 6974 <li><a href="#tag_BC">BC</a></li> 6975 </ul> 6976 </td> 6977 6978 </tr> <!-- end of entry --> 6979 6980 6981 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations"> 6982 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Processed<wbr>Min<wbr>Durations</td> 6983 <td class="entry_type"> 6984 <span class="entry_type_name">int64</span> 6985 <span class="entry_type_container">x</span> 6986 6987 <span class="entry_type_array"> 6988 n 6989 </span> 6990 6991 6992 6993 </td> <!-- entry_type --> 6994 6995 <td class="entry_description"> 6996 The minimum frame duration that is supported 6997 for each resolution in availableProcessedSizes.<wbr> Should 6998 correspond to the frame duration when only that processed 6999 stream is active,<wbr> with all processing set to 7000 FAST 7001 </td> 7002 7003 <td class="entry_units"> 7004 </td> 7005 7006 <td class="entry_range"> 7007 </td> 7008 7009 <td class="entry_notes"> 7010 When multiple streams are configured,<wbr> the minimum 7011 frame duration will be >= max(individual stream min 7012 durations) 7013 </td> 7014 7015 <td class="entry_tags"> 7016 <ul class="entry_tags"> 7017 <li><a href="#tag_BC">BC</a></li> 7018 </ul> 7019 </td> 7020 7021 </tr> <!-- end of entry --> 7022 7023 7024 <tr class="entry" id="static_android.scaler.availableProcessedSizes"> 7025 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Processed<wbr>Sizes</td> 7026 <td class="entry_type"> 7027 <span class="entry_type_name">int32</span> 7028 <span class="entry_type_container">x</span> 7029 7030 <span class="entry_type_array"> 7031 n x 2 7032 </span> 7033 7034 7035 7036 </td> <!-- entry_type --> 7037 7038 <td class="entry_description"> 7039 The resolutions available for use with 7040 processed output streams,<wbr> such as YV12,<wbr> NV12,<wbr> and 7041 platform opaque YUV/<wbr>RGB streams to the GPU or video 7042 encoders.<wbr> Listed as width,<wbr> height 7043 </td> 7044 7045 <td class="entry_units"> 7046 </td> 7047 7048 <td class="entry_range"> 7049 Must include: - sensor maximum resolution - 7050 standard QCIF,<wbr> 240p,<wbr> 480p,<wbr> 720p,<wbr> and 1080p 7051 resolutions 7052 </td> 7053 7054 <td class="entry_notes"> 7055 </td> 7056 7057 <td class="entry_tags"> 7058 <ul class="entry_tags"> 7059 <li><a href="#tag_BC">BC</a></li> 7060 </ul> 7061 </td> 7062 7063 </tr> <!-- end of entry --> 7064 7065 7066 <tr class="entry" id="static_android.scaler.availableRawMinDurations"> 7067 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Min<wbr>Durations</td> 7068 <td class="entry_type"> 7069 <span class="entry_type_name">int64</span> 7070 <span class="entry_type_container">x</span> 7071 7072 <span class="entry_type_array"> 7073 n 7074 </span> 7075 7076 7077 7078 </td> <!-- entry_type --> 7079 7080 <td class="entry_description"> 7081 The minimum frame duration that is supported 7082 for each raw resolution in availableRawSizes.<wbr> Should 7083 correspond to the frame duration when only the raw stream 7084 is active.<wbr> 7085 </td> 7086 7087 <td class="entry_units"> 7088 </td> 7089 7090 <td class="entry_range"> 7091 </td> 7092 7093 <td class="entry_notes"> 7094 When multiple streams are configured,<wbr> the minimum 7095 frame duration will be >= max(individual stream min 7096 durations) 7097 </td> 7098 7099 <td class="entry_tags"> 7100 <ul class="entry_tags"> 7101 <li><a href="#tag_BC">BC</a></li> 7102 </ul> 7103 </td> 7104 7105 </tr> <!-- end of entry --> 7106 7107 7108 <tr class="entry" id="static_android.scaler.availableRawSizes"> 7109 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Sizes</td> 7110 <td class="entry_type"> 7111 <span class="entry_type_name">int32</span> 7112 <span class="entry_type_container">x</span> 7113 7114 <span class="entry_type_array"> 7115 n x 2 7116 </span> 7117 7118 7119 7120 </td> <!-- entry_type --> 7121 7122 <td class="entry_description"> 7123 The resolutions available for use with raw 7124 sensor output streams,<wbr> listed as width,<wbr> 7125 height 7126 </td> 7127 7128 <td class="entry_units"> 7129 </td> 7130 7131 <td class="entry_range"> 7132 Must include: - sensor maximum resolution 7133 </td> 7134 7135 <td class="entry_notes"> 7136 </td> 7137 7138 <td class="entry_tags"> 7139 </td> 7140 7141 </tr> <!-- end of entry --> 7142 7143 7144 7145 <!-- end of kind --> 7146 </tbody> 7147 <tr><td colspan="7" class="kind">dynamic</td></tr> 7148 7149 <thead> 7150 <tr> 7151 <th class="th_name">Property Name</th> 7152 <th class="th_type">Type</th> 7153 <th class="th_description">Description</th> 7154 <th class="th_units">Units</th> 7155 <th class="th_range">Range</th> 7156 <th class="th_notes">Notes</th> 7157 <th class="th_tags">Tags</th> 7158 </tr> 7159 </thead> 7160 7161 <tbody> 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 <tr class="entry" id="dynamic_android.scaler.cropRegion"> 7173 <td class="entry_name">android.<wbr>scaler.<wbr>crop<wbr>Region</td> 7174 <td class="entry_type"> 7175 <span class="entry_type_name">int32</span> 7176 <span class="entry_type_container">x</span> 7177 7178 <span class="entry_type_array"> 7179 4 7180 </span> 7181 7182 7183 7184 </td> <!-- entry_type --> 7185 7186 <td class="entry_description"> 7187 (x,<wbr> y,<wbr> width,<wbr> height).<wbr> 7188 <br> 7189 <br> A rectangle with the top-level corner of (x,<wbr>y) and size 7190 (width,<wbr> height).<wbr> The region of the sensor that is used for 7191 output.<wbr> Each stream must use this rectangle to produce its 7192 output,<wbr> cropping to a smaller region if necessary to 7193 maintain the stream's aspect ratio.<wbr> 7194 <br> 7195 <br> HAL2.<wbr>x uses only (x,<wbr> y,<wbr> width) 7196 </td> 7197 7198 <td class="entry_units"> 7199 (x,<wbr>y) of top-left corner,<wbr> width and height of region 7200 in pixels; (0,<wbr>0) is top-left corner of 7201 android.<wbr>sensor.<wbr>active<wbr>Array<wbr>Size 7202 </td> 7203 7204 <td class="entry_range"> 7205 </td> 7206 7207 <td class="entry_notes"> 7208 7209 Any additional per-stream cropping must be done to 7210 maximize the final pixel area of the stream.<wbr> 7211 <br> 7212 <br> For example,<wbr> if the crop region is set to a 4:3 aspect 7213 ratio,<wbr> then 4:3 streams should use the exact crop 7214 region.<wbr> 16:9 streams should further crop vertically 7215 (letterbox).<wbr> 7216 <br> 7217 <br> Conversely,<wbr> if the crop region is set to a 16:9,<wbr> then 4:3 7218 outputs should crop horizontally (pillarbox),<wbr> and 16:9 7219 streams should match exactly.<wbr> These additional crops must 7220 be centered within the crop region.<wbr> 7221 <br> 7222 <br> The output streams must maintain square pixels at all 7223 times,<wbr> no matter what the relative aspect ratios of the 7224 crop region and the stream are.<wbr> Negative values for 7225 corner are allowed for raw output if full pixel array is 7226 larger than active pixel array.<wbr> Width and height may be 7227 rounded to nearest larger supportable width,<wbr> especially 7228 for raw output,<wbr> where only a few fixed scales may be 7229 possible.<wbr> The width and height of the crop region cannot 7230 be set to be smaller than floor( activeArraySize.<wbr>width /<wbr> 7231 android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom ) and floor( 7232 activeArraySize.<wbr>height /<wbr> android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom),<wbr> 7233 respectively.<wbr> 7234 7235 </td> 7236 7237 <td class="entry_tags"> 7238 <ul class="entry_tags"> 7239 <li><a href="#tag_BC">BC</a></li> 7240 </ul> 7241 </td> 7242 7243 </tr> <!-- end of entry --> 7244 7245 7246 7247 <!-- end of kind --> 7248 </tbody> 7249 7250 <!-- end of section --> 7251 <tr><td colspan="7" id="section_sensor" class="section">sensor</td></tr> 7252 7253 7254 <tr><td colspan="7" class="kind">controls</td></tr> 7255 7256 <thead> 7257 <tr> 7258 <th class="th_name">Property Name</th> 7259 <th class="th_type">Type</th> 7260 <th class="th_description">Description</th> 7261 <th class="th_units">Units</th> 7262 <th class="th_range">Range</th> 7263 <th class="th_notes">Notes</th> 7264 <th class="th_tags">Tags</th> 7265 </tr> 7266 </thead> 7267 7268 <tbody> 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 <tr class="entry" id="controls_android.sensor.exposureTime"> 7280 <td class="entry_name">android.<wbr>sensor.<wbr>exposure<wbr>Time</td> 7281 <td class="entry_type"> 7282 <span class="entry_type_name">int64</span> 7283 7284 7285 7286 7287 </td> <!-- entry_type --> 7288 7289 <td class="entry_description"> 7290 Duration each pixel is exposed to 7291 light 7292 </td> 7293 7294 <td class="entry_units"> 7295 nanoseconds 7296 </td> 7297 7298 <td class="entry_range"> 7299 android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range 7300 </td> 7301 7302 <td class="entry_notes"> 7303 1/<wbr>10000 - 30 sec range.<wbr> No bulb mode 7304 </td> 7305 7306 <td class="entry_tags"> 7307 <ul class="entry_tags"> 7308 <li><a href="#tag_V1">V1</a></li> 7309 </ul> 7310 </td> 7311 7312 </tr> <!-- end of entry --> 7313 7314 7315 <tr class="entry" id="controls_android.sensor.frameDuration"> 7316 <td class="entry_name">android.<wbr>sensor.<wbr>frame<wbr>Duration</td> 7317 <td class="entry_type"> 7318 <span class="entry_type_name">int64</span> 7319 7320 7321 7322 7323 </td> <!-- entry_type --> 7324 7325 <td class="entry_description"> 7326 Duration from start of frame exposure to 7327 start of next frame exposure 7328 </td> 7329 7330 <td class="entry_units"> 7331 nanoseconds 7332 </td> 7333 7334 <td class="entry_range"> 7335 see android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration,<wbr> 7336 android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations 7337 </td> 7338 7339 <td class="entry_notes"> 7340 Exposure time has priority,<wbr> so duration is set to 7341 max(duration,<wbr> exposure time + overhead) 7342 </td> 7343 7344 <td class="entry_tags"> 7345 <ul class="entry_tags"> 7346 <li><a href="#tag_V1">V1</a></li> 7347 <li><a href="#tag_BC">BC</a></li> 7348 </ul> 7349 </td> 7350 7351 </tr> <!-- end of entry --> 7352 7353 7354 <tr class="entry" id="controls_android.sensor.sensitivity"> 7355 <td class="entry_name">android.<wbr>sensor.<wbr>sensitivity</td> 7356 <td class="entry_type"> 7357 <span class="entry_type_name">int32</span> 7358 7359 7360 7361 7362 </td> <!-- entry_type --> 7363 7364 <td class="entry_description"> 7365 Gain applied to image data.<wbr> Must be 7366 implemented through analog gain only if set to values 7367 below 'maximum analog sensitivity'.<wbr> 7368 </td> 7369 7370 <td class="entry_units"> 7371 ISO arithmetic units 7372 </td> 7373 7374 <td class="entry_range"> 7375 android.<wbr>sensor.<wbr>info.<wbr>sensitivity<wbr>Range 7376 </td> 7377 7378 <td class="entry_notes"> 7379 ISO 12232:2006 REI method 7380 </td> 7381 7382 <td class="entry_tags"> 7383 <ul class="entry_tags"> 7384 <li><a href="#tag_V1">V1</a></li> 7385 </ul> 7386 </td> 7387 7388 </tr> <!-- end of entry --> 7389 7390 7391 7392 <!-- end of kind --> 7393 </tbody> 7394 <tr><td colspan="7" class="kind">static</td></tr> 7395 7396 <thead> 7397 <tr> 7398 <th class="th_name">Property Name</th> 7399 <th class="th_type">Type</th> 7400 <th class="th_description">Description</th> 7401 <th class="th_units">Units</th> 7402 <th class="th_range">Range</th> 7403 <th class="th_notes">Notes</th> 7404 <th class="th_tags">Tags</th> 7405 </tr> 7406 </thead> 7407 7408 <tbody> 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 <tr class="entry" id="static_android.sensor.info.activeArraySize"> 7422 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size</td> 7423 <td class="entry_type"> 7424 <span class="entry_type_name">int32</span> 7425 <span class="entry_type_container">x</span> 7426 7427 <span class="entry_type_array"> 7428 4 7429 </span> 7430 7431 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div> 7432 7433 7434 </td> <!-- entry_type --> 7435 7436 <td class="entry_description"> 7437 Area of raw data which corresponds to only 7438 active pixels; smaller or equal to 7439 pixelArraySize.<wbr> 7440 </td> 7441 7442 <td class="entry_units"> 7443 xmin,<wbr> ymin,<wbr> width,<wbr> height.<wbr> Top left of full 7444 pixel array is (0,<wbr>0) 7445 </td> 7446 7447 <td class="entry_range"> 7448 </td> 7449 7450 <td class="entry_notes"> 7451 </td> 7452 7453 <td class="entry_tags"> 7454 <ul class="entry_tags"> 7455 <li><a href="#tag_DNG">DNG</a></li> 7456 </ul> 7457 </td> 7458 7459 </tr> <!-- end of entry --> 7460 7461 7462 <tr class="entry" id="static_android.sensor.info.availableSensitivities"> 7463 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>available<wbr>Sensitivities</td> 7464 <td class="entry_type"> 7465 <span class="entry_type_name">int32</span> 7466 <span class="entry_type_container">x</span> 7467 7468 <span class="entry_type_array"> 7469 n 7470 </span> 7471 7472 <div class="entry_type_notes">List of supported sensitivity values</div> 7473 7474 7475 </td> <!-- entry_type --> 7476 7477 <td class="entry_description"> 7478 Range of valid sensitivities 7479 </td> 7480 7481 <td class="entry_units"> 7482 </td> 7483 7484 <td class="entry_range"> 7485 Must at least include 100,<wbr> 200,<wbr> 400,<wbr> 800,<wbr> 7486 1600 7487 </td> 7488 7489 <td class="entry_notes"> 7490 </td> 7491 7492 <td class="entry_tags"> 7493 <ul class="entry_tags"> 7494 <li><a href="#tag_BC">BC</a></li> 7495 <li><a href="#tag_V1">V1</a></li> 7496 </ul> 7497 </td> 7498 7499 </tr> <!-- end of entry --> 7500 7501 7502 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement"> 7503 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>color<wbr>Filter<wbr>Arrangement</td> 7504 <td class="entry_type"> 7505 <span class="entry_type_name entry_type_name_enum">byte</span> 7506 7507 7508 7509 <ul class="entry_type_enum"> 7510 <li> 7511 <span class="entry_type_enum_name">RGGB</span> 7512 </li> 7513 <li> 7514 <span class="entry_type_enum_name">GRBG</span> 7515 </li> 7516 <li> 7517 <span class="entry_type_enum_name">GBRG</span> 7518 </li> 7519 <li> 7520 <span class="entry_type_enum_name">BGGR</span> 7521 </li> 7522 <li> 7523 <span class="entry_type_enum_name">RGB</span> 7524 <span class="entry_type_enum_notes">Sensor is not Bayer; output has 3 16-bit 7525 values for each pixel,<wbr> instead of just 1 16-bit value 7526 per pixel.<wbr></span> 7527 </li> 7528 </ul> 7529 7530 </td> <!-- entry_type --> 7531 7532 <td class="entry_description"> 7533 Arrangement of color filters on sensor; 7534 represents the colors in the top-left 2x2 section of 7535 the sensor,<wbr> in reading order 7536 </td> 7537 7538 <td class="entry_units"> 7539 </td> 7540 7541 <td class="entry_range"> 7542 </td> 7543 7544 <td class="entry_notes"> 7545 </td> 7546 7547 <td class="entry_tags"> 7548 <ul class="entry_tags"> 7549 <li><a href="#tag_DNG">DNG</a></li> 7550 </ul> 7551 </td> 7552 7553 </tr> <!-- end of entry --> 7554 7555 7556 <tr class="entry" id="static_android.sensor.info.exposureTimeRange"> 7557 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range</td> 7558 <td class="entry_type"> 7559 <span class="entry_type_name">int64</span> 7560 <span class="entry_type_container">x</span> 7561 7562 <span class="entry_type_array"> 7563 2 7564 </span> 7565 7566 <div class="entry_type_notes">nanoseconds</div> 7567 7568 7569 </td> <!-- entry_type --> 7570 7571 <td class="entry_description"> 7572 Range of valid exposure 7573 times 7574 </td> 7575 7576 <td class="entry_units"> 7577 </td> 7578 7579 <td class="entry_range"> 7580 Min <= 100e3 (100 us),<wbr> Max >= 30e9 (30 7581 sec) 7582 </td> 7583 7584 <td class="entry_notes"> 7585 </td> 7586 7587 <td class="entry_tags"> 7588 <ul class="entry_tags"> 7589 <li><a href="#tag_V1">V1</a></li> 7590 </ul> 7591 </td> 7592 7593 </tr> <!-- end of entry --> 7594 7595 7596 <tr class="entry" id="static_android.sensor.info.maxFrameDuration"> 7597 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration</td> 7598 <td class="entry_type"> 7599 <span class="entry_type_name">int64</span> 7600 7601 7602 7603 7604 </td> <!-- entry_type --> 7605 7606 <td class="entry_description"> 7607 Maximum frame duration (minimum frame 7608 rate) 7609 </td> 7610 7611 <td class="entry_units"> 7612 nanoseconds 7613 </td> 7614 7615 <td class="entry_range"> 7616 >= 30e9 7617 </td> 7618 7619 <td class="entry_notes"> 7620 Minimum duration is a function of resolution,<wbr> 7621 processing settings.<wbr> See 7622 android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations 7623 </td> 7624 7625 <td class="entry_tags"> 7626 <ul class="entry_tags"> 7627 <li><a href="#tag_BC">BC</a></li> 7628 <li><a href="#tag_V1">V1</a></li> 7629 </ul> 7630 </td> 7631 7632 </tr> <!-- end of entry --> 7633 7634 7635 <tr class="entry" id="static_android.sensor.info.physicalSize"> 7636 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>physical<wbr>Size</td> 7637 <td class="entry_type"> 7638 <span class="entry_type_name">float</span> 7639 <span class="entry_type_container">x</span> 7640 7641 <span class="entry_type_array"> 7642 2 7643 </span> 7644 7645 <div class="entry_type_notes">width x height in millimeters</div> 7646 7647 7648 </td> <!-- entry_type --> 7649 7650 <td class="entry_description"> 7651 The physical dimensions of the full pixel 7652 array 7653 </td> 7654 7655 <td class="entry_units"> 7656 </td> 7657 7658 <td class="entry_range"> 7659 </td> 7660 7661 <td class="entry_notes"> 7662 Needed for FOV calculation for old API 7663 </td> 7664 7665 <td class="entry_tags"> 7666 <ul class="entry_tags"> 7667 <li><a href="#tag_V1">V1</a></li> 7668 <li><a href="#tag_BC">BC</a></li> 7669 </ul> 7670 </td> 7671 7672 </tr> <!-- end of entry --> 7673 7674 7675 <tr class="entry" id="static_android.sensor.info.pixelArraySize"> 7676 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>pixel<wbr>Array<wbr>Size</td> 7677 <td class="entry_type"> 7678 <span class="entry_type_name">int32</span> 7679 <span class="entry_type_container">x</span> 7680 7681 <span class="entry_type_array"> 7682 2 7683 </span> 7684 7685 7686 7687 </td> <!-- entry_type --> 7688 7689 <td class="entry_description"> 7690 Dimensions of full pixel array,<wbr> possibly 7691 including black calibration pixels 7692 </td> 7693 7694 <td class="entry_units"> 7695 </td> 7696 7697 <td class="entry_range"> 7698 </td> 7699 7700 <td class="entry_notes"> 7701 Maximum output resolution for raw format must 7702 match this in 7703 android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Sizes<wbr>Per<wbr>Format 7704 </td> 7705 7706 <td class="entry_tags"> 7707 <ul class="entry_tags"> 7708 <li><a href="#tag_DNG">DNG</a></li> 7709 <li><a href="#tag_BC">BC</a></li> 7710 </ul> 7711 </td> 7712 7713 </tr> <!-- end of entry --> 7714 7715 7716 <tr class="entry" id="static_android.sensor.info.whiteLevel"> 7717 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>white<wbr>Level</td> 7718 <td class="entry_type"> 7719 <span class="entry_type_name">int32</span> 7720 7721 7722 7723 7724 </td> <!-- entry_type --> 7725 7726 <td class="entry_description"> 7727 Maximum raw value output by 7728 sensor 7729 </td> 7730 7731 <td class="entry_units"> 7732 </td> 7733 7734 <td class="entry_range"> 7735 > 1024 (10-bit output) 7736 </td> 7737 7738 <td class="entry_notes"> 7739 Defines sensor bit depth (10-14 bits is 7740 expected) 7741 </td> 7742 7743 <td class="entry_tags"> 7744 <ul class="entry_tags"> 7745 <li><a href="#tag_DNG">DNG</a></li> 7746 </ul> 7747 </td> 7748 7749 </tr> <!-- end of entry --> 7750 7751 7752 7753 7754 7755 <tr class="entry" id="static_android.sensor.baseGainFactor"> 7756 <td class="entry_name">android.<wbr>sensor.<wbr>base<wbr>Gain<wbr>Factor</td> 7757 <td class="entry_type"> 7758 <span class="entry_type_name">rational</span> 7759 7760 7761 7762 7763 </td> <!-- entry_type --> 7764 7765 <td class="entry_description"> 7766 Gain factor from electrons to raw units when 7767 ISO=100 7768 </td> 7769 7770 <td class="entry_units"> 7771 </td> 7772 7773 <td class="entry_range"> 7774 </td> 7775 7776 <td class="entry_notes"> 7777 </td> 7778 7779 <td class="entry_tags"> 7780 <ul class="entry_tags"> 7781 <li><a href="#tag_V1">V1</a></li> 7782 </ul> 7783 </td> 7784 7785 </tr> <!-- end of entry --> 7786 7787 7788 <tr class="entry" id="static_android.sensor.blackLevelPattern"> 7789 <td class="entry_name">android.<wbr>sensor.<wbr>black<wbr>Level<wbr>Pattern</td> 7790 <td class="entry_type"> 7791 <span class="entry_type_name">int32</span> 7792 <span class="entry_type_container">x</span> 7793 7794 <span class="entry_type_array"> 7795 4 7796 </span> 7797 7798 <div class="entry_type_notes">2x2 raw count block</div> 7799 7800 7801 </td> <!-- entry_type --> 7802 7803 <td class="entry_description"> 7804 A fixed black level offset for each of the 7805 Bayer mosaic channels 7806 </td> 7807 7808 <td class="entry_units"> 7809 </td> 7810 7811 <td class="entry_range"> 7812 >= 0 each 7813 </td> 7814 7815 <td class="entry_notes"> 7816 As per DNG BlackLevelRepeatDim /<wbr> BlackLevel 7817 tags 7818 </td> 7819 7820 <td class="entry_tags"> 7821 <ul class="entry_tags"> 7822 <li><a href="#tag_DNG">DNG</a></li> 7823 </ul> 7824 </td> 7825 7826 </tr> <!-- end of entry --> 7827 7828 7829 <tr class="entry" id="static_android.sensor.calibrationTransform1"> 7830 <td class="entry_name">android.<wbr>sensor.<wbr>calibration<wbr>Transform1</td> 7831 <td class="entry_type"> 7832 <span class="entry_type_name">rational</span> 7833 <span class="entry_type_container">x</span> 7834 7835 <span class="entry_type_array"> 7836 9 7837 </span> 7838 7839 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 7840 7841 7842 </td> <!-- entry_type --> 7843 7844 <td class="entry_description"> 7845 Per-device calibration on top of color space 7846 transform 1 7847 </td> 7848 7849 <td class="entry_units"> 7850 </td> 7851 7852 <td class="entry_range"> 7853 </td> 7854 7855 <td class="entry_notes"> 7856 </td> 7857 7858 <td class="entry_tags"> 7859 <ul class="entry_tags"> 7860 <li><a href="#tag_DNG">DNG</a></li> 7861 </ul> 7862 </td> 7863 7864 </tr> <!-- end of entry --> 7865 7866 7867 <tr class="entry" id="static_android.sensor.calibrationTransform2"> 7868 <td class="entry_name">android.<wbr>sensor.<wbr>calibration<wbr>Transform2</td> 7869 <td class="entry_type"> 7870 <span class="entry_type_name">rational</span> 7871 <span class="entry_type_container">x</span> 7872 7873 <span class="entry_type_array"> 7874 9 7875 </span> 7876 7877 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 7878 7879 7880 </td> <!-- entry_type --> 7881 7882 <td class="entry_description"> 7883 Per-device calibration on top of color space 7884 transform 2 7885 </td> 7886 7887 <td class="entry_units"> 7888 </td> 7889 7890 <td class="entry_range"> 7891 </td> 7892 7893 <td class="entry_notes"> 7894 </td> 7895 7896 <td class="entry_tags"> 7897 <ul class="entry_tags"> 7898 <li><a href="#tag_DNG">DNG</a></li> 7899 </ul> 7900 </td> 7901 7902 </tr> <!-- end of entry --> 7903 7904 7905 <tr class="entry" id="static_android.sensor.colorTransform1"> 7906 <td class="entry_name">android.<wbr>sensor.<wbr>color<wbr>Transform1</td> 7907 <td class="entry_type"> 7908 <span class="entry_type_name">rational</span> 7909 <span class="entry_type_container">x</span> 7910 7911 <span class="entry_type_array"> 7912 9 7913 </span> 7914 7915 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 7916 7917 7918 </td> <!-- entry_type --> 7919 7920 <td class="entry_description"> 7921 Linear mapping from XYZ (D50) color space to 7922 reference linear sensor color,<wbr> for first reference 7923 illuminant 7924 </td> 7925 7926 <td class="entry_units"> 7927 </td> 7928 7929 <td class="entry_range"> 7930 </td> 7931 7932 <td class="entry_notes"> 7933 Use as follows XYZ = inv(transform) * clip( (raw - 7934 black level(raw) ) /<wbr> ( white level - max black level) ).<wbr> 7935 At least in the simple case 7936 </td> 7937 7938 <td class="entry_tags"> 7939 <ul class="entry_tags"> 7940 <li><a href="#tag_DNG">DNG</a></li> 7941 </ul> 7942 </td> 7943 7944 </tr> <!-- end of entry --> 7945 7946 7947 <tr class="entry" id="static_android.sensor.colorTransform2"> 7948 <td class="entry_name">android.<wbr>sensor.<wbr>color<wbr>Transform2</td> 7949 <td class="entry_type"> 7950 <span class="entry_type_name">rational</span> 7951 <span class="entry_type_container">x</span> 7952 7953 <span class="entry_type_array"> 7954 9 7955 </span> 7956 7957 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 7958 7959 7960 </td> <!-- entry_type --> 7961 7962 <td class="entry_description"> 7963 Linear mapping from XYZ (D50) color space to 7964 reference linear sensor color,<wbr> for second reference 7965 illuminant 7966 </td> 7967 7968 <td class="entry_units"> 7969 </td> 7970 7971 <td class="entry_range"> 7972 </td> 7973 7974 <td class="entry_notes"> 7975 </td> 7976 7977 <td class="entry_tags"> 7978 <ul class="entry_tags"> 7979 <li><a href="#tag_DNG">DNG</a></li> 7980 </ul> 7981 </td> 7982 7983 </tr> <!-- end of entry --> 7984 7985 7986 <tr class="entry" id="static_android.sensor.forwardMatrix1"> 7987 <td class="entry_name">android.<wbr>sensor.<wbr>forward<wbr>Matrix1</td> 7988 <td class="entry_type"> 7989 <span class="entry_type_name">rational</span> 7990 <span class="entry_type_container">x</span> 7991 7992 <span class="entry_type_array"> 7993 9 7994 </span> 7995 7996 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 7997 7998 7999 </td> <!-- entry_type --> 8000 8001 <td class="entry_description"> 8002 Used by DNG for better WB 8003 adaptation 8004 </td> 8005 8006 <td class="entry_units"> 8007 </td> 8008 8009 <td class="entry_range"> 8010 </td> 8011 8012 <td class="entry_notes"> 8013 </td> 8014 8015 <td class="entry_tags"> 8016 <ul class="entry_tags"> 8017 <li><a href="#tag_DNG">DNG</a></li> 8018 </ul> 8019 </td> 8020 8021 </tr> <!-- end of entry --> 8022 8023 8024 <tr class="entry" id="static_android.sensor.forwardMatrix2"> 8025 <td class="entry_name">android.<wbr>sensor.<wbr>forward<wbr>Matrix2</td> 8026 <td class="entry_type"> 8027 <span class="entry_type_name">rational</span> 8028 <span class="entry_type_container">x</span> 8029 8030 <span class="entry_type_array"> 8031 9 8032 </span> 8033 8034 <div class="entry_type_notes">3x3 matrix in row-major-order</div> 8035 8036 8037 </td> <!-- entry_type --> 8038 8039 <td class="entry_description"> 8040 Used by DNG for better WB 8041 adaptation 8042 </td> 8043 8044 <td class="entry_units"> 8045 </td> 8046 8047 <td class="entry_range"> 8048 </td> 8049 8050 <td class="entry_notes"> 8051 </td> 8052 8053 <td class="entry_tags"> 8054 <ul class="entry_tags"> 8055 <li><a href="#tag_DNG">DNG</a></li> 8056 </ul> 8057 </td> 8058 8059 </tr> <!-- end of entry --> 8060 8061 8062 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity"> 8063 <td class="entry_name">android.<wbr>sensor.<wbr>max<wbr>Analog<wbr>Sensitivity</td> 8064 <td class="entry_type"> 8065 <span class="entry_type_name">int32</span> 8066 8067 8068 8069 8070 </td> <!-- entry_type --> 8071 8072 <td class="entry_description"> 8073 Maximum sensitivity that is implemented 8074 purely through analog gain 8075 </td> 8076 8077 <td class="entry_units"> 8078 </td> 8079 8080 <td class="entry_range"> 8081 </td> 8082 8083 <td class="entry_notes"> 8084 For android.<wbr>sensor.<wbr>sensitivity values less than or 8085 equal to this,<wbr> all applied gain must be analog.<wbr> For 8086 values above this,<wbr> it can be a mix of analog and 8087 digital 8088 </td> 8089 8090 <td class="entry_tags"> 8091 <ul class="entry_tags"> 8092 <li><a href="#tag_V1">V1</a></li> 8093 </ul> 8094 </td> 8095 8096 </tr> <!-- end of entry --> 8097 8098 8099 <tr class="entry" id="static_android.sensor.noiseModelCoefficients"> 8100 <td class="entry_name">android.<wbr>sensor.<wbr>noise<wbr>Model<wbr>Coefficients</td> 8101 <td class="entry_type"> 8102 <span class="entry_type_name">float</span> 8103 <span class="entry_type_container">x</span> 8104 8105 <span class="entry_type_array"> 8106 2 8107 </span> 8108 8109 <div class="entry_type_notes">float constants A,<wbr> B for the noise variance model</div> 8110 8111 8112 </td> <!-- entry_type --> 8113 8114 <td class="entry_description"> 8115 Estimation of sensor noise 8116 characteristics 8117 </td> 8118 8119 <td class="entry_units"> 8120 var(raw pixel value) = electrons * (baseGainFactor 8121 * iso/<wbr>100)^2 + A * (baseGainFactor * iso/<wbr>100)^2 + 8122 B 8123 </td> 8124 8125 <td class="entry_range"> 8126 </td> 8127 8128 <td class="entry_notes"> 8129 A represents sensor read noise before analog 8130 amplification; B represents noise from A/<wbr>D conversion and 8131 other circuits after amplification.<wbr> Both noise sources 8132 are assumed to be gaussian,<wbr> independent,<wbr> and not to vary 8133 across the sensor 8134 </td> 8135 8136 <td class="entry_tags"> 8137 <ul class="entry_tags"> 8138 <li><a href="#tag_V1">V1</a></li> 8139 </ul> 8140 </td> 8141 8142 </tr> <!-- end of entry --> 8143 8144 8145 <tr class="entry" id="static_android.sensor.orientation"> 8146 <td class="entry_name">android.<wbr>sensor.<wbr>orientation</td> 8147 <td class="entry_type"> 8148 <span class="entry_type_name">int32</span> 8149 8150 8151 8152 8153 </td> <!-- entry_type --> 8154 8155 <td class="entry_description"> 8156 Clockwise angle through which the output 8157 image needs to be rotated to be upright on the device 8158 screen in its native orientation.<wbr> Also defines the 8159 direction of rolling shutter readout,<wbr> which is from top 8160 to bottom in the sensor's coordinate system 8161 </td> 8162 8163 <td class="entry_units"> 8164 degrees clockwise rotation,<wbr> only multiples of 8165 90 8166 </td> 8167 8168 <td class="entry_range"> 8169 0,<wbr>90,<wbr>180,<wbr>270 8170 </td> 8171 8172 <td class="entry_notes"> 8173 </td> 8174 8175 <td class="entry_tags"> 8176 <ul class="entry_tags"> 8177 <li><a href="#tag_BC">BC</a></li> 8178 </ul> 8179 </td> 8180 8181 </tr> <!-- end of entry --> 8182 8183 8184 <tr class="entry" id="static_android.sensor.referenceIlluminant1"> 8185 <td class="entry_name">android.<wbr>sensor.<wbr>reference<wbr>Illuminant1</td> 8186 <td class="entry_type"> 8187 <span class="entry_type_name entry_type_name_enum">byte</span> 8188 8189 8190 8191 <ul class="entry_type_enum"> 8192 <li> 8193 <span class="entry_type_enum_name">DAYLIGHT</span> 8194 <span class="entry_type_enum_value">1</span> 8195 </li> 8196 <li> 8197 <span class="entry_type_enum_name">FLUORESCENT</span> 8198 <span class="entry_type_enum_value">2</span> 8199 </li> 8200 <li> 8201 <span class="entry_type_enum_name">TUNGSTEN</span> 8202 <span class="entry_type_enum_value">3</span> 8203 <span class="entry_type_enum_notes">Incandescent light</span> 8204 </li> 8205 <li> 8206 <span class="entry_type_enum_name">FLASH</span> 8207 <span class="entry_type_enum_value">4</span> 8208 </li> 8209 <li> 8210 <span class="entry_type_enum_name">FINE_WEATHER</span> 8211 <span class="entry_type_enum_value">9</span> 8212 </li> 8213 <li> 8214 <span class="entry_type_enum_name">CLOUDY_WEATHER</span> 8215 <span class="entry_type_enum_value">10</span> 8216 </li> 8217 <li> 8218 <span class="entry_type_enum_name">SHADE</span> 8219 <span class="entry_type_enum_value">11</span> 8220 </li> 8221 <li> 8222 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span> 8223 <span class="entry_type_enum_value">12</span> 8224 <span class="entry_type_enum_notes">D 5700 - 7100K</span> 8225 </li> 8226 <li> 8227 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span> 8228 <span class="entry_type_enum_value">13</span> 8229 <span class="entry_type_enum_notes">N 4600 - 5400K</span> 8230 </li> 8231 <li> 8232 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span> 8233 <span class="entry_type_enum_value">14</span> 8234 <span class="entry_type_enum_notes">W 3900 - 4500K</span> 8235 </li> 8236 <li> 8237 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span> 8238 <span class="entry_type_enum_value">15</span> 8239 <span class="entry_type_enum_notes">WW 3200 - 3700K</span> 8240 </li> 8241 <li> 8242 <span class="entry_type_enum_name">STANDARD_A</span> 8243 <span class="entry_type_enum_value">17</span> 8244 </li> 8245 <li> 8246 <span class="entry_type_enum_name">STANDARD_B</span> 8247 <span class="entry_type_enum_value">18</span> 8248 </li> 8249 <li> 8250 <span class="entry_type_enum_name">STANDARD_C</span> 8251 <span class="entry_type_enum_value">19</span> 8252 </li> 8253 <li> 8254 <span class="entry_type_enum_name">D55</span> 8255 <span class="entry_type_enum_value">20</span> 8256 </li> 8257 <li> 8258 <span class="entry_type_enum_name">D65</span> 8259 <span class="entry_type_enum_value">21</span> 8260 </li> 8261 <li> 8262 <span class="entry_type_enum_name">D75</span> 8263 <span class="entry_type_enum_value">22</span> 8264 </li> 8265 <li> 8266 <span class="entry_type_enum_name">D50</span> 8267 <span class="entry_type_enum_value">23</span> 8268 </li> 8269 <li> 8270 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span> 8271 <span class="entry_type_enum_value">24</span> 8272 </li> 8273 </ul> 8274 8275 </td> <!-- entry_type --> 8276 8277 <td class="entry_description"> 8278 Light source used to define transform 8279 1 8280 </td> 8281 8282 <td class="entry_units"> 8283 </td> 8284 8285 <td class="entry_range"> 8286 </td> 8287 8288 <td class="entry_notes"> 8289 [EXIF LightSource tag] Must all these be 8290 supported? Need CCT for each! 8291 </td> 8292 8293 <td class="entry_tags"> 8294 <ul class="entry_tags"> 8295 <li><a href="#tag_DNG">DNG</a></li> 8296 <li><a href="#tag_EXIF">EXIF</a></li> 8297 </ul> 8298 </td> 8299 8300 </tr> <!-- end of entry --> 8301 8302 8303 <tr class="entry" id="static_android.sensor.referenceIlluminant2"> 8304 <td class="entry_name">android.<wbr>sensor.<wbr>reference<wbr>Illuminant2</td> 8305 <td class="entry_type"> 8306 <span class="entry_type_name">byte</span> 8307 8308 8309 8310 8311 </td> <!-- entry_type --> 8312 8313 <td class="entry_description"> 8314 Light source used to define transform 8315 2 8316 </td> 8317 8318 <td class="entry_units"> 8319 Same as illuminant 1 8320 </td> 8321 8322 <td class="entry_range"> 8323 </td> 8324 8325 <td class="entry_notes"> 8326 </td> 8327 8328 <td class="entry_tags"> 8329 </td> 8330 8331 </tr> <!-- end of entry --> 8332 8333 8334 8335 <!-- end of kind --> 8336 </tbody> 8337 <tr><td colspan="7" class="kind">dynamic</td></tr> 8338 8339 <thead> 8340 <tr> 8341 <th class="th_name">Property Name</th> 8342 <th class="th_type">Type</th> 8343 <th class="th_description">Description</th> 8344 <th class="th_units">Units</th> 8345 <th class="th_range">Range</th> 8346 <th class="th_notes">Notes</th> 8347 <th class="th_tags">Tags</th> 8348 </tr> 8349 </thead> 8350 8351 <tbody> 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 <tr class="entry" id="dynamic_android.sensor.exposureTime"> 8363 <td class="entry_name">android.<wbr>sensor.<wbr>exposure<wbr>Time</td> 8364 <td class="entry_type"> 8365 <span class="entry_type_name">int64</span> 8366 8367 8368 8369 8370 </td> <!-- entry_type --> 8371 8372 <td class="entry_description"> 8373 Duration each pixel is exposed to 8374 light 8375 </td> 8376 8377 <td class="entry_units"> 8378 nanoseconds 8379 </td> 8380 8381 <td class="entry_range"> 8382 android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range 8383 </td> 8384 8385 <td class="entry_notes"> 8386 1/<wbr>10000 - 30 sec range.<wbr> No bulb mode 8387 </td> 8388 8389 <td class="entry_tags"> 8390 <ul class="entry_tags"> 8391 <li><a href="#tag_V1">V1</a></li> 8392 </ul> 8393 </td> 8394 8395 </tr> <!-- end of entry --> 8396 8397 8398 <tr class="entry" id="dynamic_android.sensor.frameDuration"> 8399 <td class="entry_name">android.<wbr>sensor.<wbr>frame<wbr>Duration</td> 8400 <td class="entry_type"> 8401 <span class="entry_type_name">int64</span> 8402 8403 8404 8405 8406 </td> <!-- entry_type --> 8407 8408 <td class="entry_description"> 8409 Duration from start of frame exposure to 8410 start of next frame exposure 8411 </td> 8412 8413 <td class="entry_units"> 8414 nanoseconds 8415 </td> 8416 8417 <td class="entry_range"> 8418 see android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration,<wbr> 8419 android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations 8420 </td> 8421 8422 <td class="entry_notes"> 8423 Exposure time has priority,<wbr> so duration is set to 8424 max(duration,<wbr> exposure time + overhead) 8425 </td> 8426 8427 <td class="entry_tags"> 8428 <ul class="entry_tags"> 8429 <li><a href="#tag_V1">V1</a></li> 8430 <li><a href="#tag_BC">BC</a></li> 8431 </ul> 8432 </td> 8433 8434 </tr> <!-- end of entry --> 8435 8436 8437 <tr class="entry" id="dynamic_android.sensor.sensitivity"> 8438 <td class="entry_name">android.<wbr>sensor.<wbr>sensitivity</td> 8439 <td class="entry_type"> 8440 <span class="entry_type_name">int32</span> 8441 8442 8443 8444 8445 </td> <!-- entry_type --> 8446 8447 <td class="entry_description"> 8448 Gain applied to image data.<wbr> Must be 8449 implemented through analog gain only if set to values 8450 below 'maximum analog sensitivity'.<wbr> 8451 </td> 8452 8453 <td class="entry_units"> 8454 ISO arithmetic units 8455 </td> 8456 8457 <td class="entry_range"> 8458 android.<wbr>sensor.<wbr>info.<wbr>sensitivity<wbr>Range 8459 </td> 8460 8461 <td class="entry_notes"> 8462 ISO 12232:2006 REI method 8463 </td> 8464 8465 <td class="entry_tags"> 8466 <ul class="entry_tags"> 8467 <li><a href="#tag_V1">V1</a></li> 8468 </ul> 8469 </td> 8470 8471 </tr> <!-- end of entry --> 8472 8473 8474 <tr class="entry" id="dynamic_android.sensor.timestamp"> 8475 <td class="entry_name">android.<wbr>sensor.<wbr>timestamp</td> 8476 <td class="entry_type"> 8477 <span class="entry_type_name">int64</span> 8478 8479 8480 8481 8482 </td> <!-- entry_type --> 8483 8484 <td class="entry_description"> 8485 Time at start of exposure of first 8486 row 8487 </td> 8488 8489 <td class="entry_units"> 8490 nanoseconds 8491 </td> 8492 8493 <td class="entry_range"> 8494 > 0 8495 </td> 8496 8497 <td class="entry_notes"> 8498 Monotonic,<wbr> should be synced to other timestamps in 8499 system 8500 </td> 8501 8502 <td class="entry_tags"> 8503 <ul class="entry_tags"> 8504 <li><a href="#tag_BC">BC</a></li> 8505 </ul> 8506 </td> 8507 8508 </tr> <!-- end of entry --> 8509 8510 8511 8512 <!-- end of kind --> 8513 </tbody> 8514 8515 <!-- end of section --> 8516 <tr><td colspan="7" id="section_shading" class="section">shading</td></tr> 8517 8518 8519 <tr><td colspan="7" class="kind">controls</td></tr> 8520 8521 <thead> 8522 <tr> 8523 <th class="th_name">Property Name</th> 8524 <th class="th_type">Type</th> 8525 <th class="th_description">Description</th> 8526 <th class="th_units">Units</th> 8527 <th class="th_range">Range</th> 8528 <th class="th_notes">Notes</th> 8529 <th class="th_tags">Tags</th> 8530 </tr> 8531 </thead> 8532 8533 <tbody> 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 <tr class="entry" id="controls_android.shading.mode"> 8545 <td class="entry_name">android.<wbr>shading.<wbr>mode</td> 8546 <td class="entry_type"> 8547 <span class="entry_type_name entry_type_name_enum">byte</span> 8548 8549 8550 8551 <ul class="entry_type_enum"> 8552 <li> 8553 <span class="entry_type_enum_name">OFF</span> 8554 <span class="entry_type_enum_notes">No shading correction is applied</span> 8555 </li> 8556 <li> 8557 <span class="entry_type_enum_name">FAST</span> 8558 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 8559 bayer output</span> 8560 </li> 8561 <li> 8562 <span class="entry_type_enum_name">HIGH_QUALITY</span> 8563 <span class="entry_type_enum_notes">Frame rate may be reduced by high 8564 quality</span> 8565 </li> 8566 </ul> 8567 8568 </td> <!-- entry_type --> 8569 8570 <td class="entry_description"> 8571 Quality of lens shading correction applied 8572 to the image data 8573 </td> 8574 8575 <td class="entry_units"> 8576 </td> 8577 8578 <td class="entry_range"> 8579 </td> 8580 8581 <td class="entry_notes"> 8582 </td> 8583 8584 <td class="entry_tags"> 8585 </td> 8586 8587 </tr> <!-- end of entry --> 8588 8589 8590 <tr class="entry" id="controls_android.shading.strength"> 8591 <td class="entry_name">android.<wbr>shading.<wbr>strength</td> 8592 <td class="entry_type"> 8593 <span class="entry_type_name">byte</span> 8594 8595 8596 8597 8598 </td> <!-- entry_type --> 8599 8600 <td class="entry_description"> 8601 Control the amount of shading correction 8602 applied to the images 8603 </td> 8604 8605 <td class="entry_units"> 8606 unitless: 1-10; 10 is full shading 8607 compensation 8608 </td> 8609 8610 <td class="entry_range"> 8611 </td> 8612 8613 <td class="entry_notes"> 8614 </td> 8615 8616 <td class="entry_tags"> 8617 <ul class="entry_tags"> 8618 <li><a href="#tag_ADV">ADV</a></li> 8619 </ul> 8620 </td> 8621 8622 </tr> <!-- end of entry --> 8623 8624 8625 8626 <!-- end of kind --> 8627 </tbody> 8628 <tr><td colspan="7" class="kind">dynamic</td></tr> 8629 8630 <thead> 8631 <tr> 8632 <th class="th_name">Property Name</th> 8633 <th class="th_type">Type</th> 8634 <th class="th_description">Description</th> 8635 <th class="th_units">Units</th> 8636 <th class="th_range">Range</th> 8637 <th class="th_notes">Notes</th> 8638 <th class="th_tags">Tags</th> 8639 </tr> 8640 </thead> 8641 8642 <tbody> 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 <tr class="entry" id="dynamic_android.shading.mode"> 8654 <td class="entry_name">android.<wbr>shading.<wbr>mode</td> 8655 <td class="entry_type"> 8656 <span class="entry_type_name entry_type_name_enum">byte</span> 8657 8658 8659 8660 <ul class="entry_type_enum"> 8661 <li> 8662 <span class="entry_type_enum_name">OFF</span> 8663 <span class="entry_type_enum_notes">No shading correction is applied</span> 8664 </li> 8665 <li> 8666 <span class="entry_type_enum_name">FAST</span> 8667 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 8668 bayer output</span> 8669 </li> 8670 <li> 8671 <span class="entry_type_enum_name">HIGH_QUALITY</span> 8672 <span class="entry_type_enum_notes">Frame rate may be reduced by high 8673 quality</span> 8674 </li> 8675 </ul> 8676 8677 </td> <!-- entry_type --> 8678 8679 <td class="entry_description"> 8680 Quality of lens shading correction applied 8681 to the image data 8682 </td> 8683 8684 <td class="entry_units"> 8685 </td> 8686 8687 <td class="entry_range"> 8688 </td> 8689 8690 <td class="entry_notes"> 8691 </td> 8692 8693 <td class="entry_tags"> 8694 </td> 8695 8696 </tr> <!-- end of entry --> 8697 8698 8699 8700 <!-- end of kind --> 8701 </tbody> 8702 8703 <!-- end of section --> 8704 <tr><td colspan="7" id="section_statistics" class="section">statistics</td></tr> 8705 8706 8707 <tr><td colspan="7" class="kind">controls</td></tr> 8708 8709 <thead> 8710 <tr> 8711 <th class="th_name">Property Name</th> 8712 <th class="th_type">Type</th> 8713 <th class="th_description">Description</th> 8714 <th class="th_units">Units</th> 8715 <th class="th_range">Range</th> 8716 <th class="th_notes">Notes</th> 8717 <th class="th_tags">Tags</th> 8718 </tr> 8719 </thead> 8720 8721 <tbody> 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 <tr class="entry" id="controls_android.statistics.faceDetectMode"> 8733 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Detect<wbr>Mode</td> 8734 <td class="entry_type"> 8735 <span class="entry_type_name entry_type_name_enum">byte</span> 8736 8737 8738 8739 <ul class="entry_type_enum"> 8740 <li> 8741 <span class="entry_type_enum_name">OFF</span> 8742 </li> 8743 <li> 8744 <span class="entry_type_enum_name">SIMPLE</span> 8745 <span class="entry_type_enum_notes">Optional Return rectangle and confidence 8746 only</span> 8747 </li> 8748 <li> 8749 <span class="entry_type_enum_name">FULL</span> 8750 <span class="entry_type_enum_notes">Optional Return all face 8751 metadata</span> 8752 </li> 8753 </ul> 8754 8755 </td> <!-- entry_type --> 8756 8757 <td class="entry_description"> 8758 State of the face detector 8759 unit 8760 </td> 8761 8762 <td class="entry_units"> 8763 </td> 8764 8765 <td class="entry_range"> 8766 8767 android.<wbr>statistics.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes 8768 </td> 8769 8770 <td class="entry_notes"> 8771 </td> 8772 8773 <td class="entry_tags"> 8774 <ul class="entry_tags"> 8775 <li><a href="#tag_BC">BC</a></li> 8776 </ul> 8777 </td> 8778 8779 </tr> <!-- end of entry --> 8780 8781 8782 <tr class="entry" id="controls_android.statistics.histogramMode"> 8783 <td class="entry_name">android.<wbr>statistics.<wbr>histogram<wbr>Mode</td> 8784 <td class="entry_type"> 8785 <span class="entry_type_name entry_type_name_enum">byte</span> 8786 8787 8788 8789 <ul class="entry_type_enum"> 8790 <li> 8791 <span class="entry_type_enum_name">OFF</span> 8792 </li> 8793 <li> 8794 <span class="entry_type_enum_name">ON</span> 8795 </li> 8796 </ul> 8797 8798 </td> <!-- entry_type --> 8799 8800 <td class="entry_description"> 8801 Operating mode for histogram 8802 generation 8803 </td> 8804 8805 <td class="entry_units"> 8806 </td> 8807 8808 <td class="entry_range"> 8809 </td> 8810 8811 <td class="entry_notes"> 8812 </td> 8813 8814 <td class="entry_tags"> 8815 <ul class="entry_tags"> 8816 <li><a href="#tag_V1">V1</a></li> 8817 </ul> 8818 </td> 8819 8820 </tr> <!-- end of entry --> 8821 8822 8823 <tr class="entry" id="controls_android.statistics.sharpnessMapMode"> 8824 <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map<wbr>Mode</td> 8825 <td class="entry_type"> 8826 <span class="entry_type_name entry_type_name_enum">byte</span> 8827 8828 8829 8830 <ul class="entry_type_enum"> 8831 <li> 8832 <span class="entry_type_enum_name">OFF</span> 8833 </li> 8834 <li> 8835 <span class="entry_type_enum_name">ON</span> 8836 </li> 8837 </ul> 8838 8839 </td> <!-- entry_type --> 8840 8841 <td class="entry_description"> 8842 Operating mode for sharpness map 8843 generation 8844 </td> 8845 8846 <td class="entry_units"> 8847 </td> 8848 8849 <td class="entry_range"> 8850 </td> 8851 8852 <td class="entry_notes"> 8853 </td> 8854 8855 <td class="entry_tags"> 8856 <ul class="entry_tags"> 8857 <li><a href="#tag_V1">V1</a></li> 8858 </ul> 8859 </td> 8860 8861 </tr> <!-- end of entry --> 8862 8863 8864 8865 <!-- end of kind --> 8866 </tbody> 8867 <tr><td colspan="7" class="kind">static</td></tr> 8868 8869 <thead> 8870 <tr> 8871 <th class="th_name">Property Name</th> 8872 <th class="th_type">Type</th> 8873 <th class="th_description">Description</th> 8874 <th class="th_units">Units</th> 8875 <th class="th_range">Range</th> 8876 <th class="th_notes">Notes</th> 8877 <th class="th_tags">Tags</th> 8878 </tr> 8879 </thead> 8880 8881 <tbody> 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes"> 8895 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes</td> 8896 <td class="entry_type"> 8897 <span class="entry_type_name">byte</span> 8898 <span class="entry_type_container">x</span> 8899 8900 <span class="entry_type_array"> 8901 n 8902 </span> 8903 8904 <div class="entry_type_notes">List of enums</div> 8905 8906 8907 </td> <!-- entry_type --> 8908 8909 <td class="entry_description"> 8910 Which face detection modes are available,<wbr> 8911 if any 8912 </td> 8913 8914 <td class="entry_units"> 8915 </td> 8916 8917 <td class="entry_range"> 8918 OFF 8919 </td> 8920 8921 <td class="entry_notes"> 8922 </td> 8923 8924 <td class="entry_tags"> 8925 </td> 8926 8927 </tr> <!-- end of entry --> 8928 8929 8930 <tr class="entry" id="static_android.statistics.info.histogramBucketCount"> 8931 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>histogram<wbr>Bucket<wbr>Count</td> 8932 <td class="entry_type"> 8933 <span class="entry_type_name">int32</span> 8934 8935 8936 8937 8938 </td> <!-- entry_type --> 8939 8940 <td class="entry_description"> 8941 Number of histogram buckets 8942 supported 8943 </td> 8944 8945 <td class="entry_units"> 8946 </td> 8947 8948 <td class="entry_range"> 8949 >= 64 8950 </td> 8951 8952 <td class="entry_notes"> 8953 </td> 8954 8955 <td class="entry_tags"> 8956 </td> 8957 8958 </tr> <!-- end of entry --> 8959 8960 8961 <tr class="entry" id="static_android.statistics.info.maxFaceCount"> 8962 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Face<wbr>Count</td> 8963 <td class="entry_type"> 8964 <span class="entry_type_name">int32</span> 8965 8966 8967 8968 8969 </td> <!-- entry_type --> 8970 8971 <td class="entry_description"> 8972 If face detection is supported,<wbr> how many 8973 faces can be detected at once 8974 </td> 8975 8976 <td class="entry_units"> 8977 </td> 8978 8979 <td class="entry_range"> 8980 >= 4 if availableFaceDetectionModes lists 8981 modes besides OFF,<wbr> otherwise 0 8982 </td> 8983 8984 <td class="entry_notes"> 8985 </td> 8986 8987 <td class="entry_tags"> 8988 </td> 8989 8990 </tr> <!-- end of entry --> 8991 8992 8993 <tr class="entry" id="static_android.statistics.info.maxHistogramCount"> 8994 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Histogram<wbr>Count</td> 8995 <td class="entry_type"> 8996 <span class="entry_type_name">int32</span> 8997 8998 8999 9000 9001 </td> <!-- entry_type --> 9002 9003 <td class="entry_description"> 9004 Maximum value possible for a histogram 9005 bucket 9006 </td> 9007 9008 <td class="entry_units"> 9009 </td> 9010 9011 <td class="entry_range"> 9012 </td> 9013 9014 <td class="entry_notes"> 9015 </td> 9016 9017 <td class="entry_tags"> 9018 </td> 9019 9020 </tr> <!-- end of entry --> 9021 9022 9023 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue"> 9024 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Sharpness<wbr>Map<wbr>Value</td> 9025 <td class="entry_type"> 9026 <span class="entry_type_name">int32</span> 9027 9028 9029 9030 9031 </td> <!-- entry_type --> 9032 9033 <td class="entry_description"> 9034 Maximum value possible for a sharpness map 9035 region.<wbr> 9036 </td> 9037 9038 <td class="entry_units"> 9039 </td> 9040 9041 <td class="entry_range"> 9042 </td> 9043 9044 <td class="entry_notes"> 9045 </td> 9046 9047 <td class="entry_tags"> 9048 </td> 9049 9050 </tr> <!-- end of entry --> 9051 9052 9053 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize"> 9054 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>sharpness<wbr>Map<wbr>Size</td> 9055 <td class="entry_type"> 9056 <span class="entry_type_name">int32</span> 9057 <span class="entry_type_container">x</span> 9058 9059 <span class="entry_type_array"> 9060 2 9061 </span> 9062 9063 <div class="entry_type_notes">width x height</div> 9064 9065 9066 </td> <!-- entry_type --> 9067 9068 <td class="entry_description"> 9069 Dimensions of the sharpness 9070 map 9071 </td> 9072 9073 <td class="entry_units"> 9074 </td> 9075 9076 <td class="entry_range"> 9077 Must be at least 32 x 32 9078 </td> 9079 9080 <td class="entry_notes"> 9081 </td> 9082 9083 <td class="entry_tags"> 9084 </td> 9085 9086 </tr> <!-- end of entry --> 9087 9088 9089 9090 9091 9092 9093 <!-- end of kind --> 9094 </tbody> 9095 <tr><td colspan="7" class="kind">dynamic</td></tr> 9096 9097 <thead> 9098 <tr> 9099 <th class="th_name">Property Name</th> 9100 <th class="th_type">Type</th> 9101 <th class="th_description">Description</th> 9102 <th class="th_units">Units</th> 9103 <th class="th_range">Range</th> 9104 <th class="th_notes">Notes</th> 9105 <th class="th_tags">Tags</th> 9106 </tr> 9107 </thead> 9108 9109 <tbody> 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 <tr class="entry" id="dynamic_android.statistics.faceDetectMode"> 9121 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Detect<wbr>Mode</td> 9122 <td class="entry_type"> 9123 <span class="entry_type_name entry_type_name_enum">byte</span> 9124 9125 9126 9127 <ul class="entry_type_enum"> 9128 <li> 9129 <span class="entry_type_enum_name">OFF</span> 9130 </li> 9131 <li> 9132 <span class="entry_type_enum_name">SIMPLE</span> 9133 <span class="entry_type_enum_notes">Optional Return rectangle and confidence 9134 only</span> 9135 </li> 9136 <li> 9137 <span class="entry_type_enum_name">FULL</span> 9138 <span class="entry_type_enum_notes">Optional Return all face 9139 metadata</span> 9140 </li> 9141 </ul> 9142 9143 </td> <!-- entry_type --> 9144 9145 <td class="entry_description"> 9146 State of the face detector 9147 unit 9148 </td> 9149 9150 <td class="entry_units"> 9151 </td> 9152 9153 <td class="entry_range"> 9154 9155 android.<wbr>statistics.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes 9156 </td> 9157 9158 <td class="entry_notes"> 9159 </td> 9160 9161 <td class="entry_tags"> 9162 <ul class="entry_tags"> 9163 <li><a href="#tag_BC">BC</a></li> 9164 </ul> 9165 </td> 9166 9167 </tr> <!-- end of entry --> 9168 9169 9170 <tr class="entry" id="dynamic_android.statistics.faceIds"> 9171 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Ids</td> 9172 <td class="entry_type"> 9173 <span class="entry_type_name">int32</span> 9174 <span class="entry_type_container">x</span> 9175 9176 <span class="entry_type_array"> 9177 n 9178 </span> 9179 9180 9181 9182 </td> <!-- entry_type --> 9183 9184 <td class="entry_description"> 9185 List of unique IDs for detected 9186 faces 9187 </td> 9188 9189 <td class="entry_units"> 9190 </td> 9191 9192 <td class="entry_range"> 9193 </td> 9194 9195 <td class="entry_notes"> 9196 Only available if faceDetectMode == FULL 9197 </td> 9198 9199 <td class="entry_tags"> 9200 <ul class="entry_tags"> 9201 <li><a href="#tag_BC">BC</a></li> 9202 </ul> 9203 </td> 9204 9205 </tr> <!-- end of entry --> 9206 9207 9208 <tr class="entry" id="dynamic_android.statistics.faceLandmarks"> 9209 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Landmarks</td> 9210 <td class="entry_type"> 9211 <span class="entry_type_name">int32</span> 9212 <span class="entry_type_container">x</span> 9213 9214 <span class="entry_type_array"> 9215 n x 6 9216 </span> 9217 9218 <div class="entry_type_notes">(leftEyeX,<wbr> leftEyeY,<wbr> rightEyeX,<wbr> rightEyeY,<wbr> mouthX,<wbr> mouthY)</div> 9219 9220 9221 </td> <!-- entry_type --> 9222 9223 <td class="entry_description"> 9224 List of landmarks for detected 9225 faces 9226 </td> 9227 9228 <td class="entry_units"> 9229 </td> 9230 9231 <td class="entry_range"> 9232 </td> 9233 9234 <td class="entry_notes"> 9235 Only available if faceDetectMode == FULL 9236 </td> 9237 9238 <td class="entry_tags"> 9239 <ul class="entry_tags"> 9240 <li><a href="#tag_BC">BC</a></li> 9241 </ul> 9242 </td> 9243 9244 </tr> <!-- end of entry --> 9245 9246 9247 <tr class="entry" id="dynamic_android.statistics.faceRectangles"> 9248 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Rectangles</td> 9249 <td class="entry_type"> 9250 <span class="entry_type_name">int32</span> 9251 <span class="entry_type_container">x</span> 9252 9253 <span class="entry_type_array"> 9254 n x 4 9255 </span> 9256 9257 <div class="entry_type_notes">(xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax).<wbr> (0,<wbr>0) is top-left of active pixel area</div> 9258 9259 9260 </td> <!-- entry_type --> 9261 9262 <td class="entry_description"> 9263 List of the bounding rectangles for detected 9264 faces 9265 </td> 9266 9267 <td class="entry_units"> 9268 </td> 9269 9270 <td class="entry_range"> 9271 </td> 9272 9273 <td class="entry_notes"> 9274 Only available if faceDetectMode != OFF 9275 </td> 9276 9277 <td class="entry_tags"> 9278 <ul class="entry_tags"> 9279 <li><a href="#tag_BC">BC</a></li> 9280 </ul> 9281 </td> 9282 9283 </tr> <!-- end of entry --> 9284 9285 9286 <tr class="entry" id="dynamic_android.statistics.faceScores"> 9287 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Scores</td> 9288 <td class="entry_type"> 9289 <span class="entry_type_name">byte</span> 9290 <span class="entry_type_container">x</span> 9291 9292 <span class="entry_type_array"> 9293 n 9294 </span> 9295 9296 9297 9298 </td> <!-- entry_type --> 9299 9300 <td class="entry_description"> 9301 List of the face confidence scores for 9302 detected faces 9303 </td> 9304 9305 <td class="entry_units"> 9306 </td> 9307 9308 <td class="entry_range"> 9309 0-100 9310 </td> 9311 9312 <td class="entry_notes"> 9313 Only available if faceDetectMode != OFF 9314 </td> 9315 9316 <td class="entry_tags"> 9317 <ul class="entry_tags"> 9318 <li><a href="#tag_BC">BC</a></li> 9319 </ul> 9320 </td> 9321 9322 </tr> <!-- end of entry --> 9323 9324 9325 <tr class="entry" id="dynamic_android.statistics.histogram"> 9326 <td class="entry_name">android.<wbr>statistics.<wbr>histogram</td> 9327 <td class="entry_type"> 9328 <span class="entry_type_name">int32</span> 9329 <span class="entry_type_container">x</span> 9330 9331 <span class="entry_type_array"> 9332 n x 3 9333 </span> 9334 9335 <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> 9336 9337 9338 </td> <!-- entry_type --> 9339 9340 <td class="entry_description"> 9341 A 3-channel histogram based on the raw 9342 sensor data 9343 </td> 9344 9345 <td class="entry_units"> 9346 </td> 9347 9348 <td class="entry_range"> 9349 </td> 9350 9351 <td class="entry_notes"> 9352 The k'th bucket (0-based) covers the input range 9353 (with w = android.<wbr>sensor.<wbr>info.<wbr>white<wbr>Level) of [ k * w/<wbr>N,<wbr> 9354 (k + 1) * w /<wbr> N ).<wbr> If only a monochrome sharpness map is 9355 supported,<wbr> all channels should have the same data 9356 </td> 9357 9358 <td class="entry_tags"> 9359 <ul class="entry_tags"> 9360 <li><a href="#tag_V1">V1</a></li> 9361 </ul> 9362 </td> 9363 9364 </tr> <!-- end of entry --> 9365 9366 9367 <tr class="entry" id="dynamic_android.statistics.histogramMode"> 9368 <td class="entry_name">android.<wbr>statistics.<wbr>histogram<wbr>Mode</td> 9369 <td class="entry_type"> 9370 <span class="entry_type_name entry_type_name_enum">byte</span> 9371 9372 9373 9374 <ul class="entry_type_enum"> 9375 <li> 9376 <span class="entry_type_enum_name">OFF</span> 9377 </li> 9378 <li> 9379 <span class="entry_type_enum_name">ON</span> 9380 </li> 9381 </ul> 9382 9383 </td> <!-- entry_type --> 9384 9385 <td class="entry_description"> 9386 Operating mode for histogram 9387 generation 9388 </td> 9389 9390 <td class="entry_units"> 9391 </td> 9392 9393 <td class="entry_range"> 9394 </td> 9395 9396 <td class="entry_notes"> 9397 </td> 9398 9399 <td class="entry_tags"> 9400 <ul class="entry_tags"> 9401 <li><a href="#tag_V1">V1</a></li> 9402 </ul> 9403 </td> 9404 9405 </tr> <!-- end of entry --> 9406 9407 9408 <tr class="entry" id="dynamic_android.statistics.sharpnessMap"> 9409 <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map</td> 9410 <td class="entry_type"> 9411 <span class="entry_type_name">int32</span> 9412 <span class="entry_type_container">x</span> 9413 9414 <span class="entry_type_array"> 9415 n x m x 3 9416 </span> 9417 9418 <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> 9419 9420 9421 </td> <!-- entry_type --> 9422 9423 <td class="entry_description"> 9424 A 3-channel sharpness map,<wbr> based on the raw 9425 sensor data 9426 </td> 9427 9428 <td class="entry_units"> 9429 </td> 9430 9431 <td class="entry_range"> 9432 </td> 9433 9434 <td class="entry_notes"> 9435 If only a monochrome sharpness map is supported,<wbr> 9436 all channels should have the same data 9437 </td> 9438 9439 <td class="entry_tags"> 9440 <ul class="entry_tags"> 9441 <li><a href="#tag_V1">V1</a></li> 9442 </ul> 9443 </td> 9444 9445 </tr> <!-- end of entry --> 9446 9447 9448 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode"> 9449 <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map<wbr>Mode</td> 9450 <td class="entry_type"> 9451 <span class="entry_type_name entry_type_name_enum">byte</span> 9452 9453 9454 9455 <ul class="entry_type_enum"> 9456 <li> 9457 <span class="entry_type_enum_name">OFF</span> 9458 </li> 9459 <li> 9460 <span class="entry_type_enum_name">ON</span> 9461 </li> 9462 </ul> 9463 9464 </td> <!-- entry_type --> 9465 9466 <td class="entry_description"> 9467 Operating mode for sharpness map 9468 generation 9469 </td> 9470 9471 <td class="entry_units"> 9472 </td> 9473 9474 <td class="entry_range"> 9475 </td> 9476 9477 <td class="entry_notes"> 9478 </td> 9479 9480 <td class="entry_tags"> 9481 <ul class="entry_tags"> 9482 <li><a href="#tag_V1">V1</a></li> 9483 </ul> 9484 </td> 9485 9486 </tr> <!-- end of entry --> 9487 9488 9489 9490 <!-- end of kind --> 9491 </tbody> 9492 9493 <!-- end of section --> 9494 <tr><td colspan="7" id="section_tonemap" class="section">tonemap</td></tr> 9495 9496 9497 <tr><td colspan="7" class="kind">controls</td></tr> 9498 9499 <thead> 9500 <tr> 9501 <th class="th_name">Property Name</th> 9502 <th class="th_type">Type</th> 9503 <th class="th_description">Description</th> 9504 <th class="th_units">Units</th> 9505 <th class="th_range">Range</th> 9506 <th class="th_notes">Notes</th> 9507 <th class="th_tags">Tags</th> 9508 </tr> 9509 </thead> 9510 9511 <tbody> 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 <tr class="entry" id="controls_android.tonemap.curveBlue"> 9523 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Blue</td> 9524 <td class="entry_type"> 9525 <span class="entry_type_name">float</span> 9526 9527 9528 9529 9530 </td> <!-- entry_type --> 9531 9532 <td class="entry_description"> 9533 Table mapping blue input values to output 9534 values 9535 </td> 9536 9537 <td class="entry_units"> 9538 same as android.<wbr>tonemap.<wbr>curve<wbr>Red 9539 </td> 9540 9541 <td class="entry_range"> 9542 same as android.<wbr>tonemap.<wbr>curve<wbr>Red 9543 </td> 9544 9545 <td class="entry_notes"> 9546 </td> 9547 9548 <td class="entry_tags"> 9549 </td> 9550 9551 </tr> <!-- end of entry --> 9552 9553 9554 <tr class="entry" id="controls_android.tonemap.curveGreen"> 9555 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Green</td> 9556 <td class="entry_type"> 9557 <span class="entry_type_name">float</span> 9558 9559 9560 9561 9562 </td> <!-- entry_type --> 9563 9564 <td class="entry_description"> 9565 Table mapping green input values to output 9566 values 9567 </td> 9568 9569 <td class="entry_units"> 9570 same as android.<wbr>tonemap.<wbr>curve<wbr>Red 9571 </td> 9572 9573 <td class="entry_range"> 9574 same as android.<wbr>tonemap.<wbr>curve<wbr>Red 9575 </td> 9576 9577 <td class="entry_notes"> 9578 </td> 9579 9580 <td class="entry_tags"> 9581 </td> 9582 9583 </tr> <!-- end of entry --> 9584 9585 9586 <tr class="entry" id="controls_android.tonemap.curveRed"> 9587 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Red</td> 9588 <td class="entry_type"> 9589 <span class="entry_type_name">float</span> 9590 <span class="entry_type_container">x</span> 9591 9592 <span class="entry_type_array"> 9593 n x 2 9594 </span> 9595 9596 <div class="entry_type_notes">A 1D array of pairs of floats.<wbr> mapping a 0-1 input range to a 0-1 output range.<wbr></div> 9597 9598 9599 </td> <!-- entry_type --> 9600 9601 <td class="entry_description"> 9602 Table mapping red input values to output 9603 values 9604 </td> 9605 9606 <td class="entry_units"> 9607 </td> 9608 9609 <td class="entry_range"> 9610 0-1 on input and output coordinates.<wbr> Max entry 9611 count speciied by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points 9612 </td> 9613 9614 <td class="entry_notes"> 9615 .<wbr>The input range must be monotonically increasing 9616 with N,<wbr> and values between entries should be linearly 9617 interpolated.<wbr> For example,<wbr> if the array is: [0.<wbr>0,<wbr> 0.<wbr>0,<wbr> 9618 0.<wbr>3,<wbr> 0.<wbr>5,<wbr> 1.<wbr>0,<wbr> 1.<wbr>0],<wbr> then the input->output mapping 9619 for a few sample points would be: 0 -> 0,<wbr> 0.<wbr>15 -> 9620 0.<wbr>25,<wbr> 0.<wbr>3 -> 0.<wbr>5,<wbr> 0.<wbr>5 -> 0.<wbr>64 9621 </td> 9622 9623 <td class="entry_tags"> 9624 <ul class="entry_tags"> 9625 <li><a href="#tag_DNG">DNG</a></li> 9626 </ul> 9627 </td> 9628 9629 </tr> <!-- end of entry --> 9630 9631 9632 <tr class="entry" id="controls_android.tonemap.mode"> 9633 <td class="entry_name">android.<wbr>tonemap.<wbr>mode</td> 9634 <td class="entry_type"> 9635 <span class="entry_type_name entry_type_name_enum">byte</span> 9636 9637 9638 9639 <ul class="entry_type_enum"> 9640 <li> 9641 <span class="entry_type_enum_name">CONTRAST_CURVE</span> 9642 <span class="entry_type_enum_notes">Use the tone mapping curve specified in 9643 android.<wbr>tonemap.<wbr>curve</span> 9644 </li> 9645 <li> 9646 <span class="entry_type_enum_name">FAST</span> 9647 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 9648 bayer output</span> 9649 </li> 9650 <li> 9651 <span class="entry_type_enum_name">HIGH_QUALITY</span> 9652 <span class="entry_type_enum_notes">Frame rate may be reduced by high 9653 quality</span> 9654 </li> 9655 </ul> 9656 9657 </td> <!-- entry_type --> 9658 9659 <td class="entry_description"> 9660 </td> 9661 9662 <td class="entry_units"> 9663 </td> 9664 9665 <td class="entry_range"> 9666 </td> 9667 9668 <td class="entry_notes"> 9669 </td> 9670 9671 <td class="entry_tags"> 9672 </td> 9673 9674 </tr> <!-- end of entry --> 9675 9676 9677 9678 <!-- end of kind --> 9679 </tbody> 9680 <tr><td colspan="7" class="kind">static</td></tr> 9681 9682 <thead> 9683 <tr> 9684 <th class="th_name">Property Name</th> 9685 <th class="th_type">Type</th> 9686 <th class="th_description">Description</th> 9687 <th class="th_units">Units</th> 9688 <th class="th_range">Range</th> 9689 <th class="th_notes">Notes</th> 9690 <th class="th_tags">Tags</th> 9691 </tr> 9692 </thead> 9693 9694 <tbody> 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 <tr class="entry" id="static_android.tonemap.maxCurvePoints"> 9706 <td class="entry_name">android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points</td> 9707 <td class="entry_type"> 9708 <span class="entry_type_name">int32</span> 9709 9710 9711 9712 9713 </td> <!-- entry_type --> 9714 9715 <td class="entry_description"> 9716 Maximum number of supported points in the 9717 tonemap curve 9718 </td> 9719 9720 <td class="entry_units"> 9721 </td> 9722 9723 <td class="entry_range"> 9724 >= 128 9725 </td> 9726 9727 <td class="entry_notes"> 9728 </td> 9729 9730 <td class="entry_tags"> 9731 </td> 9732 9733 </tr> <!-- end of entry --> 9734 9735 9736 9737 <!-- end of kind --> 9738 </tbody> 9739 <tr><td colspan="7" class="kind">dynamic</td></tr> 9740 9741 <thead> 9742 <tr> 9743 <th class="th_name">Property Name</th> 9744 <th class="th_type">Type</th> 9745 <th class="th_description">Description</th> 9746 <th class="th_units">Units</th> 9747 <th class="th_range">Range</th> 9748 <th class="th_notes">Notes</th> 9749 <th class="th_tags">Tags</th> 9750 </tr> 9751 </thead> 9752 9753 <tbody> 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 <tr class="entry" id="dynamic_android.tonemap.curveBlue"> 9765 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Blue</td> 9766 <td class="entry_type"> 9767 <span class="entry_type_name">float</span> 9768 9769 9770 9771 9772 </td> <!-- entry_type --> 9773 9774 <td class="entry_description"> 9775 Table mapping blue input values to output 9776 values 9777 </td> 9778 9779 <td class="entry_units"> 9780 same as android.<wbr>tonemap.<wbr>curve<wbr>Red 9781 </td> 9782 9783 <td class="entry_range"> 9784 same as android.<wbr>tonemap.<wbr>curve<wbr>Red 9785 </td> 9786 9787 <td class="entry_notes"> 9788 </td> 9789 9790 <td class="entry_tags"> 9791 </td> 9792 9793 </tr> <!-- end of entry --> 9794 9795 9796 <tr class="entry" id="dynamic_android.tonemap.curveGreen"> 9797 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Green</td> 9798 <td class="entry_type"> 9799 <span class="entry_type_name">float</span> 9800 9801 9802 9803 9804 </td> <!-- entry_type --> 9805 9806 <td class="entry_description"> 9807 Table mapping green input values to output 9808 values 9809 </td> 9810 9811 <td class="entry_units"> 9812 same as android.<wbr>tonemap.<wbr>curve<wbr>Red 9813 </td> 9814 9815 <td class="entry_range"> 9816 same as android.<wbr>tonemap.<wbr>curve<wbr>Red 9817 </td> 9818 9819 <td class="entry_notes"> 9820 </td> 9821 9822 <td class="entry_tags"> 9823 </td> 9824 9825 </tr> <!-- end of entry --> 9826 9827 9828 <tr class="entry" id="dynamic_android.tonemap.curveRed"> 9829 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Red</td> 9830 <td class="entry_type"> 9831 <span class="entry_type_name">float</span> 9832 <span class="entry_type_container">x</span> 9833 9834 <span class="entry_type_array"> 9835 n x 2 9836 </span> 9837 9838 <div class="entry_type_notes">A 1D array of pairs of floats.<wbr> mapping a 0-1 input range to a 0-1 output range.<wbr></div> 9839 9840 9841 </td> <!-- entry_type --> 9842 9843 <td class="entry_description"> 9844 Table mapping red input values to output 9845 values 9846 </td> 9847 9848 <td class="entry_units"> 9849 </td> 9850 9851 <td class="entry_range"> 9852 0-1 on input and output coordinates.<wbr> Max entry 9853 count speciied by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points 9854 </td> 9855 9856 <td class="entry_notes"> 9857 .<wbr>The input range must be monotonically increasing 9858 with N,<wbr> and values between entries should be linearly 9859 interpolated.<wbr> For example,<wbr> if the array is: [0.<wbr>0,<wbr> 0.<wbr>0,<wbr> 9860 0.<wbr>3,<wbr> 0.<wbr>5,<wbr> 1.<wbr>0,<wbr> 1.<wbr>0],<wbr> then the input->output mapping 9861 for a few sample points would be: 0 -> 0,<wbr> 0.<wbr>15 -> 9862 0.<wbr>25,<wbr> 0.<wbr>3 -> 0.<wbr>5,<wbr> 0.<wbr>5 -> 0.<wbr>64 9863 </td> 9864 9865 <td class="entry_tags"> 9866 <ul class="entry_tags"> 9867 <li><a href="#tag_DNG">DNG</a></li> 9868 </ul> 9869 </td> 9870 9871 </tr> <!-- end of entry --> 9872 9873 9874 <tr class="entry" id="dynamic_android.tonemap.mode"> 9875 <td class="entry_name">android.<wbr>tonemap.<wbr>mode</td> 9876 <td class="entry_type"> 9877 <span class="entry_type_name entry_type_name_enum">byte</span> 9878 9879 9880 9881 <ul class="entry_type_enum"> 9882 <li> 9883 <span class="entry_type_enum_name">CONTRAST_CURVE</span> 9884 <span class="entry_type_enum_notes">Use the tone mapping curve specified in 9885 android.<wbr>tonemap.<wbr>curve</span> 9886 </li> 9887 <li> 9888 <span class="entry_type_enum_name">FAST</span> 9889 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw 9890 bayer output</span> 9891 </li> 9892 <li> 9893 <span class="entry_type_enum_name">HIGH_QUALITY</span> 9894 <span class="entry_type_enum_notes">Frame rate may be reduced by high 9895 quality</span> 9896 </li> 9897 </ul> 9898 9899 </td> <!-- entry_type --> 9900 9901 <td class="entry_description"> 9902 </td> 9903 9904 <td class="entry_units"> 9905 </td> 9906 9907 <td class="entry_range"> 9908 </td> 9909 9910 <td class="entry_notes"> 9911 </td> 9912 9913 <td class="entry_tags"> 9914 </td> 9915 9916 </tr> <!-- end of entry --> 9917 9918 9919 9920 <!-- end of kind --> 9921 </tbody> 9922 9923 <!-- end of section --> 9924 <tr><td colspan="7" id="section_led" class="section">led</td></tr> 9925 9926 9927 <tr><td colspan="7" class="kind">controls</td></tr> 9928 9929 <thead> 9930 <tr> 9931 <th class="th_name">Property Name</th> 9932 <th class="th_type">Type</th> 9933 <th class="th_description">Description</th> 9934 <th class="th_units">Units</th> 9935 <th class="th_range">Range</th> 9936 <th class="th_notes">Notes</th> 9937 <th class="th_tags">Tags</th> 9938 </tr> 9939 </thead> 9940 9941 <tbody> 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 <tr class="entry" id="controls_android.led.transmit"> 9953 <td class="entry_name">android.<wbr>led.<wbr>transmit</td> 9954 <td class="entry_type"> 9955 <span class="entry_type_name entry_type_name_enum">byte</span> 9956 9957 9958 9959 <ul class="entry_type_enum"> 9960 <li> 9961 <span class="entry_type_enum_name">OFF</span> 9962 </li> 9963 <li> 9964 <span class="entry_type_enum_name">ON</span> 9965 </li> 9966 </ul> 9967 9968 </td> <!-- entry_type --> 9969 9970 <td class="entry_description"> 9971 This LED is nominally used to indicate to the user 9972 that the camera is powered on and may be streaming images back to the 9973 Application Processor.<wbr> In certain rare circumstances,<wbr> the OS may 9974 disable this when video is processed locally and not transmitted to 9975 any untrusted applications.<wbr> 9976 <br> 9977 <br> In particular,<wbr> the LED *must* always be on when the data could be 9978 transmitted off the device.<wbr> The LED *should* always be on whenever 9979 data is stored locally on the device.<wbr> 9980 <br> 9981 <br> The LED *may* be off if a trusted application is using the data that 9982 doesn't violate the above rules.<wbr> 9983 9984 </td> 9985 9986 <td class="entry_units"> 9987 </td> 9988 9989 <td class="entry_range"> 9990 </td> 9991 9992 <td class="entry_notes"> 9993 </td> 9994 9995 <td class="entry_tags"> 9996 </td> 9997 9998 </tr> <!-- end of entry --> 9999 10000 10001 10002 <!-- end of kind --> 10003 </tbody> 10004 <tr><td colspan="7" class="kind">dynamic</td></tr> 10005 10006 <thead> 10007 <tr> 10008 <th class="th_name">Property Name</th> 10009 <th class="th_type">Type</th> 10010 <th class="th_description">Description</th> 10011 <th class="th_units">Units</th> 10012 <th class="th_range">Range</th> 10013 <th class="th_notes">Notes</th> 10014 <th class="th_tags">Tags</th> 10015 </tr> 10016 </thead> 10017 10018 <tbody> 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 <tr class="entry" id="dynamic_android.led.transmit"> 10030 <td class="entry_name">android.<wbr>led.<wbr>transmit</td> 10031 <td class="entry_type"> 10032 <span class="entry_type_name entry_type_name_enum">byte</span> 10033 10034 10035 10036 <ul class="entry_type_enum"> 10037 <li> 10038 <span class="entry_type_enum_name">OFF</span> 10039 </li> 10040 <li> 10041 <span class="entry_type_enum_name">ON</span> 10042 </li> 10043 </ul> 10044 10045 </td> <!-- entry_type --> 10046 10047 <td class="entry_description"> 10048 This LED is nominally used to indicate to the user 10049 that the camera is powered on and may be streaming images back to the 10050 Application Processor.<wbr> In certain rare circumstances,<wbr> the OS may 10051 disable this when video is processed locally and not transmitted to 10052 any untrusted applications.<wbr> 10053 <br> 10054 <br> In particular,<wbr> the LED *must* always be on when the data could be 10055 transmitted off the device.<wbr> The LED *should* always be on whenever 10056 data is stored locally on the device.<wbr> 10057 <br> 10058 <br> The LED *may* be off if a trusted application is using the data that 10059 doesn't violate the above rules.<wbr> 10060 10061 </td> 10062 10063 <td class="entry_units"> 10064 </td> 10065 10066 <td class="entry_range"> 10067 </td> 10068 10069 <td class="entry_notes"> 10070 </td> 10071 10072 <td class="entry_tags"> 10073 </td> 10074 10075 </tr> <!-- end of entry --> 10076 10077 10078 10079 <!-- end of kind --> 10080 </tbody> 10081 <tr><td colspan="7" class="kind">static</td></tr> 10082 10083 <thead> 10084 <tr> 10085 <th class="th_name">Property Name</th> 10086 <th class="th_type">Type</th> 10087 <th class="th_description">Description</th> 10088 <th class="th_units">Units</th> 10089 <th class="th_range">Range</th> 10090 <th class="th_notes">Notes</th> 10091 <th class="th_tags">Tags</th> 10092 </tr> 10093 </thead> 10094 10095 <tbody> 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 <tr class="entry" id="static_android.led.availableLeds"> 10107 <td class="entry_name">android.<wbr>led.<wbr>available<wbr>Leds</td> 10108 <td class="entry_type"> 10109 <span class="entry_type_name entry_type_name_enum">byte</span> 10110 <span class="entry_type_container">x</span> 10111 10112 <span class="entry_type_array"> 10113 n 10114 </span> 10115 10116 10117 <ul class="entry_type_enum"> 10118 <li> 10119 <span class="entry_type_enum_name">TRANSMIT</span> 10120 <span class="entry_type_enum_notes">android.<wbr>led.<wbr>transmit control is used</span> 10121 </li> 10122 </ul> 10123 10124 </td> <!-- entry_type --> 10125 10126 <td class="entry_description"> 10127 A list of camera LEDs that are available on this system.<wbr> 10128 10129 </td> 10130 10131 <td class="entry_units"> 10132 </td> 10133 10134 <td class="entry_range"> 10135 </td> 10136 10137 <td class="entry_notes"> 10138 </td> 10139 10140 <td class="entry_tags"> 10141 </td> 10142 10143 </tr> <!-- end of entry --> 10144 10145 10146 10147 <!-- end of kind --> 10148 </tbody> 10149 10150 <!-- end of section --> 10151 <tr><td colspan="7" id="section_info" class="section">info</td></tr> 10152 10153 10154 <tr><td colspan="7" class="kind">static</td></tr> 10155 10156 <thead> 10157 <tr> 10158 <th class="th_name">Property Name</th> 10159 <th class="th_type">Type</th> 10160 <th class="th_description">Description</th> 10161 <th class="th_units">Units</th> 10162 <th class="th_range">Range</th> 10163 <th class="th_notes">Notes</th> 10164 <th class="th_tags">Tags</th> 10165 </tr> 10166 </thead> 10167 10168 <tbody> 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 <tr class="entry" id="static_android.info.supportedHardwareLevel"> 10180 <td class="entry_name">android.<wbr>info.<wbr>supported<wbr>Hardware<wbr>Level</td> 10181 <td class="entry_type"> 10182 <span class="entry_type_name entry_type_name_enum">byte</span> 10183 10184 10185 10186 <ul class="entry_type_enum"> 10187 <li> 10188 <span class="entry_type_enum_name">LIMITED</span> 10189 </li> 10190 <li> 10191 <span class="entry_type_enum_name">FULL</span> 10192 </li> 10193 </ul> 10194 10195 </td> <!-- entry_type --> 10196 10197 <td class="entry_description"> 10198 10199 The camera 3 HAL device can implement one of two possible operational modes; 10200 limited and full.<wbr> Full support is expected from new higher-end 10201 devices.<wbr> Limited mode has hardware requirements roughly in line with those 10202 for a camera HAL device v1 implementation,<wbr> and is expected from older or 10203 inexpensive devices.<wbr> Full is a strict superset of limited,<wbr> and they share the 10204 same essential operational flow.<wbr> 10205 <br> 10206 <br> For full details refer to "S3.<wbr> Operational Modes" in camera3.<wbr>h 10207 10208 </td> 10209 10210 <td class="entry_units"> 10211 </td> 10212 10213 <td class="entry_range"> 10214 Optional.<wbr> Default value is LIMITED.<wbr> 10215 </td> 10216 10217 <td class="entry_notes"> 10218 </td> 10219 10220 <td class="entry_tags"> 10221 </td> 10222 10223 </tr> <!-- end of entry --> 10224 10225 10226 10227 <!-- end of kind --> 10228 </tbody> 10229 10230 <!-- end of section --> 10231 <!-- </namespace> --> 10232 </table> 10233 10234 <div class="tags" id="tag_index"> 10235 <h2>Tags</h2> 10236 <ul> 10237 <li id="tag_AWB">AWB - 10238 Needed for auto white balance 10239 10240 <ul class="tags_entries"> 10241 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li> 10242 </ul> 10243 </li> <!-- tag_AWB --> 10244 <li id="tag_BC">BC - 10245 Needed for backwards compatibility with old Java API 10246 10247 <ul class="tags_entries"> 10248 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li> 10249 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li> 10250 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li> 10251 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li> 10252 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li> 10253 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li> 10254 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li> 10255 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li> 10256 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li> 10257 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li> 10258 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li> 10259 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li> 10260 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li> 10261 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li> 10262 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li> 10263 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li> 10264 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li> 10265 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li> 10266 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li> 10267 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li> 10268 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li> 10269 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li> 10270 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li> 10271 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li> 10272 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li> 10273 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li> 10274 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li> 10275 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li> 10276 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li> 10277 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li> 10278 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li> 10279 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li> 10280 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li> 10281 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li> 10282 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li> 10283 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li> 10284 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li> 10285 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li> 10286 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li> 10287 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li> 10288 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li> 10289 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li> 10290 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li> 10291 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li> 10292 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li> 10293 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li> 10294 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li> 10295 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li> 10296 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li> 10297 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li> 10298 <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</a> (static)</li> 10299 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li> 10300 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li> 10301 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li> 10302 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li> 10303 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li> 10304 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li> 10305 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li> 10306 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li> 10307 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li> 10308 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li> 10309 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li> 10310 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li> 10311 </ul> 10312 </li> <!-- tag_BC --> 10313 <li id="tag_V1">V1 - 10314 New features for first camera 2 release (API1) 10315 10316 <ul class="tags_entries"> 10317 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li> 10318 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li> 10319 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li> 10320 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li> 10321 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li> 10322 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li> 10323 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li> 10324 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li> 10325 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li> 10326 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li> 10327 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li> 10328 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li> 10329 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li> 10330 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li> 10331 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li> 10332 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li> 10333 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li> 10334 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li> 10335 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li> 10336 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li> 10337 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li> 10338 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li> 10339 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li> 10340 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li> 10341 <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</a> (static)</li> 10342 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li> 10343 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li> 10344 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li> 10345 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li> 10346 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li> 10347 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li> 10348 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li> 10349 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li> 10350 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li> 10351 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li> 10352 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li> 10353 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li> 10354 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li> 10355 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li> 10356 </ul> 10357 </li> <!-- tag_V1 --> 10358 <li id="tag_ADV">ADV - None 10359 <ul class="tags_entries"> 10360 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li> 10361 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li> 10362 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li> 10363 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li> 10364 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li> 10365 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li> 10366 </ul> 10367 </li> <!-- tag_ADV --> 10368 <li id="tag_DNG">DNG - 10369 Needed for DNG file support 10370 10371 <ul class="tags_entries"> 10372 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li> 10373 <li><a href="#static_android.lens.info.shadingMap">android.lens.info.shadingMap</a> (static)</li> 10374 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li> 10375 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li> 10376 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li> 10377 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li> 10378 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li> 10379 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li> 10380 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li> 10381 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li> 10382 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li> 10383 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li> 10384 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li> 10385 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li> 10386 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li> 10387 </ul> 10388 </li> <!-- tag_DNG --> 10389 <li id="tag_EXIF">EXIF - None 10390 <ul class="tags_entries"> 10391 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li> 10392 </ul> 10393 </li> <!-- tag_EXIF --> 10394 </ul> 10395 </div> 10396 10397 [ <a href="#">top</a> ] 10398 10399 </body> 10400 </html> 10401