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