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