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