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