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