blob: 210e9d8d8c079b0ca8f82f0c76989b041cc3e719 [file] [log] [blame]
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001<!DOCTYPE html>
2<html>
3<!-- Copyright (C) 2012 The Android Open Source Project
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16-->
17<head>
18 <!-- automatically generated from html.mako. do NOT edit directly -->
19 <meta charset="utf-8" />
20 <title>Android Camera HAL2.0 Properties</title>
21 <style type="text/css">
22 .section { font-size: 1.5em; font-weight: bold; background-color: beige; padding: 0.5em 0em 0.5em 0.1em }
23 .kind { font-size: 1.2em; font-weight: bold; padding-left: 0.5em; background-color: gray }
24 .entry { background-color: burlywood }
25
26 /* table column sizes */
27 table { table-layout: fixed; width: 100%; word-wrap: break-word }
28 td,th { border: 1px solid; }
29 .th_name { width: 20% }
30 .th_units { width: 10% }
31 .th_tags { width: 5% }
32 .th_notes { width: 30% }
33 .th_type { width: 20% }
34 td { font-size: 0.9em; }
35
36 /* hide the first thead, we need it there only to enforce column sizes */
37 .thead_dummy { visibility: hidden; }
38
39 /* Entry flair */
40 .entry_name { font-family: monospace; font-style: italic; }
41
42 /* Entry type flair */
43 .entry_type_name { color: darkgreen; font-weight: bold; }
Igor Murashkinb556bc42012-12-04 16:07:21 -080044 .entry_type_name_enum:after { color: darkgreen; font-weight: bold; content:" (enum)" }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080045 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
46 .entry_type_enum_notes:before { content:" - " }
47 .entry_type_enum_value:before { content:" = " }
48 .entry_type_enum_value { font-family: monospace; }
49 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
50 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
51
52 /* Entry tags flair */
53 .entry_tags ul { list-style-type: none; }
54
55
56 /* TODO: generate abbr element for each tag link? */
57 /* TODO for each x.y.z try to link it to the entry */
58
59 </style>
60
61 <style>
62
63 {
64 /* broken...
65 supposedly there is a bug in chrome that it lays out tables before
66 it knows its being printed, so the page-break-* styles are ignored
67 */
68 tr { page-break-after: always; page-break-inside: avoid; }
69 }
70
71 </style>
72</head>
73
74
75
76
77<body>
78 <h1>Android Camera HAL2.0 Properties</h1>
79
80 <h2>Table of Contents</h2>
81 <ul class="toc">
82 <li><a href="#tag_index">Tags</a></li>
83
84
85 <li><p class="toc_section"><a href="#section_colorCorrection">colorCorrection</a></p>
86 <ul class="toc_section">
87 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a> (controls)</li>
88 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a> (controls)</li>
89 <li><a href="#dynamic_android.colorCorrection.mode">android.colorCorrection.mode</a> (dynamic)</li>
90 </ul>
91 </li> <!-- toc_section -->
92 <li><p class="toc_section"><a href="#section_control">control</a></p>
93 <ul class="toc_section">
94 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
95 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
96 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
97 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
98 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
99 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -0700100 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800101 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
102 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -0700103 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800104 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
105 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
106 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
107 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
108 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
109 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
110 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
111 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
112 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a> (static)</li>
113 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
114 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a> (static)</li>
115 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
116 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
117 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
118 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
119 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
120 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
121 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
122 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
123 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
124 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a> (dynamic)</li>
125 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a> (dynamic)</li>
126 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a> (dynamic)</li>
127 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a> (dynamic)</li>
128 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a> (dynamic)</li>
129 <li><a href="#dynamic_android.control.afState">android.control.afState</a> (dynamic)</li>
130 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a> (dynamic)</li>
131 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a> (dynamic)</li>
132 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a> (dynamic)</li>
133 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a> (dynamic)</li>
134 <li><a href="#dynamic_android.control.mode">android.control.mode</a> (dynamic)</li>
135 </ul>
136 </li> <!-- toc_section -->
137 <li><p class="toc_section"><a href="#section_demosaic">demosaic</a></p>
138 <ul class="toc_section">
139 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
140 </ul>
141 </li> <!-- toc_section -->
142 <li><p class="toc_section"><a href="#section_edge">edge</a></p>
143 <ul class="toc_section">
144 <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
145 <li><a href="#controls_android.edge.strength">android.edge.strength</a> (controls)</li>
146 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li>
147 </ul>
148 </li> <!-- toc_section -->
149 <li><p class="toc_section"><a href="#section_flash">flash</a></p>
150 <ul class="toc_section">
151 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
152 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
153 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
154 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
155 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
156 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
157 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
158 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a> (dynamic)</li>
159 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a> (dynamic)</li>
160 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a> (dynamic)</li>
161 <li><a href="#dynamic_android.flash.state">android.flash.state</a> (dynamic)</li>
162 </ul>
163 </li> <!-- toc_section -->
164 <li><p class="toc_section"><a href="#section_geometric">geometric</a></p>
165 <ul class="toc_section">
166 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a> (controls)</li>
167 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
168 </ul>
169 </li> <!-- toc_section -->
170 <li><p class="toc_section"><a href="#section_hotPixel">hotPixel</a></p>
171 <ul class="toc_section">
172 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
173 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
174 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
175 </ul>
176 </li> <!-- toc_section -->
177 <li><p class="toc_section"><a href="#section_jpeg">jpeg</a></p>
178 <ul class="toc_section">
179 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
180 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
181 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
182 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
183 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
184 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
185 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
186 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
187 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a> (static)</li>
188 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (dynamic)</li>
189 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (dynamic)</li>
190 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (dynamic)</li>
191 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a> (dynamic)</li>
192 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a> (dynamic)</li>
193 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a> (dynamic)</li>
194 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (dynamic)</li>
195 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (dynamic)</li>
196 </ul>
197 </li> <!-- toc_section -->
198 <li><p class="toc_section"><a href="#section_lens">lens</a></p>
199 <ul class="toc_section">
200 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
201 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
202 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
203 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
204 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
205 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
206 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
207 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
208 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
209 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
210 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
211 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
212 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
213 <li><a href="#static_android.lens.info.shadingMap">android.lens.info.shadingMap</a> (static)</li>
214 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
215 <li><a href="#static_android.lens.facing">android.lens.facing</a> (static)</li>
216 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
217 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
218 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
219 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
220 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
221 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
222 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
223 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
224 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
225 </ul>
226 </li> <!-- toc_section -->
227 <li><p class="toc_section"><a href="#section_noiseReduction">noiseReduction</a></p>
228 <ul class="toc_section">
229 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
230 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a> (controls)</li>
231 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
232 </ul>
233 </li> <!-- toc_section -->
234 <li><p class="toc_section"><a href="#section_quirks">quirks</a></p>
235 <ul class="toc_section">
236 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a> (static)</li>
237 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a> (static)</li>
238 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a> (static)</li>
239 </ul>
240 </li> <!-- toc_section -->
241 <li><p class="toc_section"><a href="#section_request">request</a></p>
242 <ul class="toc_section">
243 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a> (controls)</li>
244 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
245 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
246 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a> (controls)</li>
247 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
248 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
249 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
250 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
251 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a> (dynamic)</li>
252 <li><a href="#dynamic_android.request.id">android.request.id</a> (dynamic)</li>
253 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a> (dynamic)</li>
254 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a> (dynamic)</li>
255 </ul>
256 </li> <!-- toc_section -->
257 <li><p class="toc_section"><a href="#section_scaler">scaler</a></p>
258 <ul class="toc_section">
259 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
260 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
261 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
262 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
263 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
264 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
265 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
266 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
267 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800268 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a> (dynamic)</li>
269 </ul>
270 </li> <!-- toc_section -->
271 <li><p class="toc_section"><a href="#section_sensor">sensor</a></p>
272 <ul class="toc_section">
273 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
274 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
275 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
276 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
277 <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</a> (static)</li>
278 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
279 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
280 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
281 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
282 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
283 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
284 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
285 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
286 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
287 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
288 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
289 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
290 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
291 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
292 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
293 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
294 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
295 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
296 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a> (static)</li>
297 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a> (dynamic)</li>
298 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a> (dynamic)</li>
299 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a> (dynamic)</li>
300 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
301 </ul>
302 </li> <!-- toc_section -->
303 <li><p class="toc_section"><a href="#section_shading">shading</a></p>
304 <ul class="toc_section">
305 <li><a href="#controls_android.shading.mode">android.shading.mode</a> (controls)</li>
306 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
307 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a> (dynamic)</li>
308 </ul>
309 </li> <!-- toc_section -->
310 <li><p class="toc_section"><a href="#section_statistics">statistics</a></p>
311 <ul class="toc_section">
312 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
313 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
314 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
315 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a> (static)</li>
316 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a> (static)</li>
317 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a> (static)</li>
318 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a> (static)</li>
319 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a> (static)</li>
320 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a> (static)</li>
321 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (dynamic)</li>
322 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
323 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
324 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
325 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
326 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
327 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a> (dynamic)</li>
328 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
329 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (dynamic)</li>
330 </ul>
331 </li> <!-- toc_section -->
332 <li><p class="toc_section"><a href="#section_tonemap">tonemap</a></p>
333 <ul class="toc_section">
334 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a> (controls)</li>
335 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a> (controls)</li>
336 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
337 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a> (controls)</li>
338 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a> (static)</li>
339 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a> (dynamic)</li>
340 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a> (dynamic)</li>
341 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a> (dynamic)</li>
342 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a> (dynamic)</li>
343 </ul>
344 </li> <!-- toc_section -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -0700345 <li><p class="toc_section"><a href="#section_led">led</a></p>
346 <ul class="toc_section">
347 <li><a href="#controls_android.led.transmit">android.led.transmit</a> (controls)</li>
348 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a> (dynamic)</li>
349 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a> (static)</li>
350 </ul>
351 </li> <!-- toc_section -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -0700352 <li><p class="toc_section"><a href="#section_info">info</a></p>
353 <ul class="toc_section">
354 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a> (static)</li>
355 </ul>
356 </li> <!-- toc_section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800357 </ul>
358
359 <h1>Properties</h1>
360 <table class="properties">
361
362 <thead class="thead_dummy">
363 <tr>
364 <th class="th_name">Property Name</th>
365 <th class="th_type">Type</th>
366 <th class="th_description">Description</th>
367 <th class="th_units">Units</th>
368 <th class="th_range">Range</th>
369 <th class="th_notes">Notes</th>
370 <th class="th_tags">Tags</th>
371 </tr>
372 </thead> <!-- so that the first occurrence of thead is not
373 above the first occurrence of tr -->
374<!-- <namespace name="android"> -->
375 <tr><td colspan="7" id="section_colorCorrection" class="section">colorCorrection</td></tr>
376
377
378 <tr><td colspan="7" class="kind">controls</td></tr>
379
380 <thead>
381 <tr>
382 <th class="th_name">Property Name</th>
383 <th class="th_type">Type</th>
384 <th class="th_description">Description</th>
385 <th class="th_units">Units</th>
386 <th class="th_range">Range</th>
387 <th class="th_notes">Notes</th>
388 <th class="th_tags">Tags</th>
389 </tr>
390 </thead>
391
392 <tbody>
393
394
395
396
397
398
399
400
401
402
403 <tr class="entry" id="controls_android.colorCorrection.mode">
404 <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>mode</td>
405 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800406 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800407
408
409
410 <ul class="entry_type_enum">
411 <li>
412 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
413 <span class="entry_type_enum_notes">Use the android.<wbr>color<wbr>Correction.<wbr>transform matrix
414 to do color conversion</span>
415 </li>
416 <li>
417 <span class="entry_type_enum_name">FAST</span>
418 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
419 bayer output</span>
420 </li>
421 <li>
422 <span class="entry_type_enum_name">HIGH_QUALITY</span>
423 <span class="entry_type_enum_notes">Frame rate may be reduced by high
424 quality</span>
425 </li>
426 </ul>
427
428 </td> <!-- entry_type -->
429
430 <td class="entry_description">
431 </td>
432
433 <td class="entry_units">
434 </td>
435
436 <td class="entry_range">
437 </td>
438
439 <td class="entry_notes">
440 </td>
441
442 <td class="entry_tags">
443 </td>
444
445 </tr> <!-- end of entry -->
446
447
448 <tr class="entry" id="controls_android.colorCorrection.transform">
449 <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>transform</td>
450 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800451 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800452 <span class="entry_type_container">x</span>
453
454 <span class="entry_type_array">
455 3 x 3
456 </span>
457
458 <div class="entry_type_notes">3x3 float matrix in row-major order</div>
459
460
461 </td> <!-- entry_type -->
462
463 <td class="entry_description">
464 A transform matrix to chromatically adapt
465 pixels in the CIE XYZ (1931) color space from the scene
466 illuminant to the sRGB-standard
467 D65-illuminant
468 </td>
469
470 <td class="entry_units">
471 </td>
472
473 <td class="entry_range">
474 Output values are expected to be in the range
475 (0,<wbr>1)
476 </td>
477
478 <td class="entry_notes">
479 Values outside (0,<wbr>1) should be clamped.<wbr> Need to
480 provide utilities to go from CCT (+hue?),<wbr> or (x,<wbr>y) white
481 point,<wbr> (or AWB mode) to matrix; use linear Bradford
482 algorithm.<wbr>
483 </td>
484
485 <td class="entry_tags">
486 </td>
487
488 </tr> <!-- end of entry -->
489
490
491
492 <!-- end of kind -->
493 </tbody>
494 <tr><td colspan="7" class="kind">dynamic</td></tr>
495
496 <thead>
497 <tr>
498 <th class="th_name">Property Name</th>
499 <th class="th_type">Type</th>
500 <th class="th_description">Description</th>
501 <th class="th_units">Units</th>
502 <th class="th_range">Range</th>
503 <th class="th_notes">Notes</th>
504 <th class="th_tags">Tags</th>
505 </tr>
506 </thead>
507
508 <tbody>
509
510
511
512
513
514
515
516
517
518
519 <tr class="entry" id="dynamic_android.colorCorrection.mode">
520 <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>mode</td>
521 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800522 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800523
524
525
526 <ul class="entry_type_enum">
527 <li>
528 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
529 <span class="entry_type_enum_notes">Use the android.<wbr>color<wbr>Correction.<wbr>transform matrix
530 to do color conversion</span>
531 </li>
532 <li>
533 <span class="entry_type_enum_name">FAST</span>
534 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
535 bayer output</span>
536 </li>
537 <li>
538 <span class="entry_type_enum_name">HIGH_QUALITY</span>
539 <span class="entry_type_enum_notes">Frame rate may be reduced by high
540 quality</span>
541 </li>
542 </ul>
543
544 </td> <!-- entry_type -->
545
546 <td class="entry_description">
547 </td>
548
549 <td class="entry_units">
550 </td>
551
552 <td class="entry_range">
553 </td>
554
555 <td class="entry_notes">
556 </td>
557
558 <td class="entry_tags">
559 </td>
560
561 </tr> <!-- end of entry -->
562
563
564
565 <!-- end of kind -->
566 </tbody>
567
568 <!-- end of section -->
569 <tr><td colspan="7" id="section_control" class="section">control</td></tr>
570
571
572 <tr><td colspan="7" class="kind">controls</td></tr>
573
574 <thead>
575 <tr>
576 <th class="th_name">Property Name</th>
577 <th class="th_type">Type</th>
578 <th class="th_description">Description</th>
579 <th class="th_units">Units</th>
580 <th class="th_range">Range</th>
581 <th class="th_notes">Notes</th>
582 <th class="th_tags">Tags</th>
583 </tr>
584 </thead>
585
586 <tbody>
587
588
589
590
591
592
593
594
595
596
597 <tr class="entry" id="controls_android.control.aeAntibandingMode">
598 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Antibanding<wbr>Mode</td>
599 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800600 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800601
602
603
604 <ul class="entry_type_enum">
605 <li>
606 <span class="entry_type_enum_name">OFF</span>
607 </li>
608 <li>
609 <span class="entry_type_enum_name">50HZ</span>
610 </li>
611 <li>
612 <span class="entry_type_enum_name">60HZ</span>
613 </li>
614 <li>
615 <span class="entry_type_enum_name">AUTO</span>
616 </li>
617 </ul>
618
619 </td> <!-- entry_type -->
620
621 <td class="entry_description">
622 Enum for controlling
623 antibanding
624 </td>
625
626 <td class="entry_units">
627 </td>
628
629 <td class="entry_range">
630
631 android.<wbr>control.<wbr>ae<wbr>Available<wbr>Antibanding<wbr>Modes
632 </td>
633
634 <td class="entry_notes">
635 </td>
636
637 <td class="entry_tags">
638 </td>
639
640 </tr> <!-- end of entry -->
641
642
643 <tr class="entry" id="controls_android.control.aeExposureCompensation">
644 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Exposure<wbr>Compensation</td>
645 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800646 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800647
648
649
650
651 </td> <!-- entry_type -->
652
653 <td class="entry_description">
654 Adjustment to AE target image
655 brightness
656 </td>
657
658 <td class="entry_units">
659 count of positive/<wbr>negative EV steps
660 </td>
661
662 <td class="entry_range">
663 </td>
664
665 <td class="entry_notes">
666 For example,<wbr> if EV step is 0.<wbr>333,<wbr> '6' will mean an
667 exposure compensation of +2 EV; -3 will mean an exposure
668 compensation of -1
669 </td>
670
671 <td class="entry_tags">
672 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -0800673 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800674 </ul>
675 </td>
676
677 </tr> <!-- end of entry -->
678
679
680 <tr class="entry" id="controls_android.control.aeLock">
681 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Lock</td>
682 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800683 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800684
685
686
687 <ul class="entry_type_enum">
688 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -0800689 <span class="entry_type_enum_name">OFF</span>
690 <span class="entry_type_enum_notes">Autoexposure lock is disabled; the AE algorithm
691 is free to update its parameters.<wbr></span>
692 </li>
693 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800694 <span class="entry_type_enum_name">ON</span>
695 <span class="entry_type_enum_notes">Autoexposure lock is enabled; the AE algorithm
696 must not update the exposure and sensitivity parameters
697 while the lock is active</span>
698 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800699 </ul>
700
701 </td> <!-- entry_type -->
702
703 <td class="entry_description">
704 Whether AE is currently locked to its latest
705 calculated values
706 </td>
707
708 <td class="entry_units">
709 </td>
710
711 <td class="entry_range">
712 </td>
713
714 <td class="entry_notes">
715 Note that even when AE is locked,<wbr> the flash may be
716 fired if the AE mode is ON_<wbr>AUTO_<wbr>FLASH /<wbr> ON_<wbr>ALWAYS_<wbr>FLASH /<wbr>
717 ON_<wbr>AUTO_<wbr>FLASH_<wbr>REDEYE.<wbr>
718 </td>
719
720 <td class="entry_tags">
721 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -0800722 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800723 </ul>
724 </td>
725
726 </tr> <!-- end of entry -->
727
728
729 <tr class="entry" id="controls_android.control.aeMode">
730 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Mode</td>
731 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800732 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800733
734
735
736 <ul class="entry_type_enum">
737 <li>
738 <span class="entry_type_enum_name">OFF</span>
739 <span class="entry_type_enum_notes">Autoexposure is disabled; sensor.<wbr>exposureTime
740 and sensor.<wbr>sensitivity are used</span>
741 </li>
742 <li>
743 <span class="entry_type_enum_name">ON</span>
744 <span class="entry_type_enum_notes">Autoexposure is active,<wbr> no flash
745 control</span>
746 </li>
747 <li>
748 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
749 <span class="entry_type_enum_notes">if flash exists Autoexposure is active,<wbr> auto
750 flash control; flash may be fired when precapture
751 trigger is activated,<wbr> and for captures for which
752 captureIntent = STILL_<wbr>CAPTURE</span>
753 </li>
754 <li>
755 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
756 <span class="entry_type_enum_notes">if flash exists Autoexposure is active,<wbr> auto
757 flash control for precapture trigger and always flash
758 when captureIntent = STILL_<wbr>CAPTURE</span>
759 </li>
760 <li>
761 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
762 <span class="entry_type_enum_notes">optional Automatic red eye reduction with flash.<wbr>
763 If deemed necessary,<wbr> red eye reduction sequence should
764 fire when precapture trigger is activated,<wbr> and final
765 flash should fire when captureIntent =
766 STILL_<wbr>CAPTURE</span>
767 </li>
768 </ul>
769
770 </td> <!-- entry_type -->
771
772 <td class="entry_description">
773 Whether AE is currently updating the sensor
774 exposure and sensitivity fields
775 </td>
776
777 <td class="entry_units">
778 </td>
779
780 <td class="entry_range">
781 android.<wbr>control.<wbr>ae<wbr>Available<wbr>Modes
782 </td>
783
784 <td class="entry_notes">
785 Only effective if android.<wbr>control.<wbr>mode =
786 AUTO
787 </td>
788
789 <td class="entry_tags">
790 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -0800791 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800792 </ul>
793 </td>
794
795 </tr> <!-- end of entry -->
796
797
798 <tr class="entry" id="controls_android.control.aeRegions">
799 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Regions</td>
800 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800801 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800802 <span class="entry_type_container">x</span>
803
804 <span class="entry_type_array">
805 5 x area_count
806 </span>
807
808
809
810 </td> <!-- entry_type -->
811
812 <td class="entry_description">
813 List of areas to use for
814 metering
815 </td>
816
817 <td class="entry_units">
818 </td>
819
820 <td class="entry_range">
821 </td>
822
823 <td class="entry_notes">
824 Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
825 xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the
826 active pixel array,<wbr> with (0,<wbr>0) being the top-left of the
827 active pixel array,<wbr> and
828 (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
829 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
830 bottom-right point of the active pixel array.<wbr> The weight
831 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
832 no specific metering area needs to be used by the HAL.<wbr> If
833 the metering region is outside the current
834 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
835 sections outside the region and output the used sections
836 in the frame metadata
837 </td>
838
839 <td class="entry_tags">
840 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -0800841 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800842 </ul>
843 </td>
844
845 </tr> <!-- end of entry -->
846
847
848 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
849 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Target<wbr>Fps<wbr>Range</td>
850 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800851 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800852 <span class="entry_type_container">x</span>
853
854 <span class="entry_type_array">
855 2
856 </span>
857
858
859
860 </td> <!-- entry_type -->
861
862 <td class="entry_description">
863 Range over which fps can be adjusted to
864 maintain exposure
865 </td>
866
867 <td class="entry_units">
868 </td>
869
870 <td class="entry_range">
871 android.<wbr>control.<wbr>ae<wbr>Available<wbr>Target<wbr>Fps<wbr>Ranges
872 </td>
873
874 <td class="entry_notes">
875 Only constrains AE algorithm,<wbr> not manual control
876 of android.<wbr>sensor.<wbr>exposure<wbr>Time
877 </td>
878
879 <td class="entry_tags">
880 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -0800881 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800882 </ul>
883 </td>
884
885 </tr> <!-- end of entry -->
886
887
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -0700888 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
889 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Precapture<wbr>Trigger</td>
890 <td class="entry_type">
891 <span class="entry_type_name entry_type_name_enum">byte</span>
892
893
894
895 <ul class="entry_type_enum">
896 <li>
897 <span class="entry_type_enum_name">IDLE</span>
898 <span class="entry_type_enum_notes">The trigger is idle.<wbr></span>
899 </li>
900 <li>
901 <span class="entry_type_enum_name">START</span>
902 <span class="entry_type_enum_notes">The precapture metering sequence
903 must be started.<wbr> The exact effect of the precapture
904 trigger depends on the current AE mode and
905 state.<wbr></span>
906 </li>
907 </ul>
908
909 </td> <!-- entry_type -->
910
911 <td class="entry_description">
912 Whether the HAL must trigger precapture
913 metering.<wbr>
914 </td>
915
916 <td class="entry_units">
917 </td>
918
919 <td class="entry_range">
920 </td>
921
922 <td class="entry_notes">
923 This entry is normally set to IDLE,<wbr> or is not
924 included at all in the request settings.<wbr> When included and
925 set to START,<wbr> the HAL must trigger the autoexposure
926 precapture metering sequence.<wbr> The effect of AE precapture
927 trigger depends on the current AE mode and state; see the
928 camera HAL device v3 header for details.<wbr>
929 </td>
930
931 <td class="entry_tags">
932 <ul class="entry_tags">
933 <li><a href="#tag_BC">BC</a></li>
934 </ul>
935 </td>
936
937 </tr> <!-- end of entry -->
938
939
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800940 <tr class="entry" id="controls_android.control.afMode">
941 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Mode</td>
942 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800943 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800944
945
946
947 <ul class="entry_type_enum">
948 <li>
949 <span class="entry_type_enum_name">OFF</span>
950 <span class="entry_type_enum_notes">The 3A routines do not control the lens;
951 android.<wbr>lens.<wbr>focus<wbr>Position is controlled by the
952 application</span>
953 </li>
954 <li>
955 <span class="entry_type_enum_name">AUTO</span>
956 <span class="entry_type_enum_notes">if lens is not fixed focus.<wbr> Use
957 android.<wbr>lens.<wbr>minimum<wbr>Focus<wbr>Distance to determine if lens
958 is fixed focus In this mode,<wbr> the lens does not move
959 unless the autofocus trigger action is called.<wbr> When
960 that trigger is activated,<wbr> AF must transition to
961 ACTIVE_<wbr>SCAN,<wbr> then to the outcome of the scan (FOCUSED
962 or NOT_<wbr>FOCUSED).<wbr> Triggering cancel AF resets the lens
963 position to default,<wbr> and sets the AF state to
964 INACTIVE.<wbr></span>
965 </li>
966 <li>
967 <span class="entry_type_enum_name">MACRO</span>
968 <span class="entry_type_enum_notes">In this mode,<wbr> the lens does not move unless the
969 autofocus trigger action is called.<wbr> When that trigger
970 is activated,<wbr> AF must transition to ACTIVE_<wbr>SCAN,<wbr> then
971 to the outcome of the scan (FOCUSED or NOT_<wbr>FOCUSED).<wbr>
972 Triggering cancel AF resets the lens position to
973 default,<wbr> and sets the AF state to
974 INACTIVE.<wbr></span>
975 </li>
976 <li>
977 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
978 <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens
979 position continually to attempt to provide a
980 constantly-in-focus image stream.<wbr> The focusing behavior
981 should be suitable for good quality video recording;
982 typically this means slower focus movement and no
983 overshoots.<wbr> When the AF trigger is not involved,<wbr> the AF
984 algorithm should start in INACTIVE state,<wbr> and then
985 transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states
986 as appropriate.<wbr> When the AF trigger is activated,<wbr> the
987 algorithm should immediately transition into AF_<wbr>FOCUSED
988 or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the lens
989 position until a cancel AF trigger is received.<wbr> Once
990 cancel is received,<wbr> the algorithm should transition
991 back to INACTIVE and resume passive scan.<wbr> Note that
992 this behavior is not identical to CONTINUOUS_<wbr>PICTURE,<wbr>
993 since an ongoing PASSIVE_<wbr>SCAN must immediately be
994 canceled.<wbr></span>
995 </li>
996 <li>
997 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
998 <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens
999 position continually to attempt to provide a
1000 constantly-in-focus image stream.<wbr> The focusing behavior
1001 should be suitable for still image capture; typically
1002 this means focusing as fast as possible.<wbr> When the AF
1003 trigger is not involved,<wbr> the AF algorithm should start
1004 in INACTIVE state,<wbr> and then transition into
1005 PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states as appropriate
1006 as it attempts to maintain focus.<wbr> When the AF trigger
1007 is activated,<wbr> the algorithm should finish its
1008 PASSIVE_<wbr>SCAN if active,<wbr> and then transition into
1009 AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock
1010 the lens position until a cancel AF trigger is
1011 received.<wbr> When the AF cancel trigger is activated,<wbr> the
1012 algorithm should transition back to INACTIVE and then
1013 act as if it has just been started.<wbr></span>
1014 </li>
1015 <li>
1016 <span class="entry_type_enum_name">EDOF</span>
1017 <span class="entry_type_enum_notes">Extended depth of field (digital focus).<wbr> AF
1018 trigger is ignored,<wbr> AF state should always be
1019 INACTIVE.<wbr></span>
1020 </li>
1021 </ul>
1022
1023 </td> <!-- entry_type -->
1024
1025 <td class="entry_description">
1026 Whether AF is currently enabled,<wbr> and what
1027 mode it is set to
1028 </td>
1029
1030 <td class="entry_units">
1031 </td>
1032
1033 <td class="entry_range">
1034 </td>
1035
1036 <td class="entry_notes">
1037 </td>
1038
1039 <td class="entry_tags">
1040 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001041 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001042 </ul>
1043 </td>
1044
1045 </tr> <!-- end of entry -->
1046
1047
1048 <tr class="entry" id="controls_android.control.afRegions">
1049 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Regions</td>
1050 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001051 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001052 <span class="entry_type_container">x</span>
1053
1054 <span class="entry_type_array">
1055 5 x area_count
1056 </span>
1057
1058
1059
1060 </td> <!-- entry_type -->
1061
1062 <td class="entry_description">
1063 List of areas to use for focus
1064 estimation
1065 </td>
1066
1067 <td class="entry_units">
1068 </td>
1069
1070 <td class="entry_range">
1071 </td>
1072
1073 <td class="entry_notes">
1074 Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
1075 xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the
1076 active pixel array,<wbr> with (0,<wbr>0) being the top-left of the
1077 active pixel array,<wbr> and
1078 (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
1079 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
1080 bottom-right point of the active pixel array.<wbr> The weight
1081 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
1082 no specific focus area needs to be used by the HAL.<wbr> If
1083 the focusing region is outside the current
1084 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
1085 sections outside the region and output the used sections
1086 in the frame metadata
1087 </td>
1088
1089 <td class="entry_tags">
1090 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001091 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001092 </ul>
1093 </td>
1094
1095 </tr> <!-- end of entry -->
1096
1097
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001098 <tr class="entry" id="controls_android.control.afTrigger">
1099 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Trigger</td>
1100 <td class="entry_type">
1101 <span class="entry_type_name entry_type_name_enum">byte</span>
1102
1103
1104
1105 <ul class="entry_type_enum">
1106 <li>
1107 <span class="entry_type_enum_name">IDLE</span>
1108 <span class="entry_type_enum_notes">The trigger is idle.<wbr></span>
1109 </li>
1110 <li>
1111 <span class="entry_type_enum_name">START</span>
1112 <span class="entry_type_enum_notes">Autofocus must trigger now.<wbr></span>
1113 </li>
1114 <li>
1115 <span class="entry_type_enum_name">CANCEL</span>
1116 <span class="entry_type_enum_notes">Autofocus must return to initial
1117 state,<wbr> and cancel any active trigger.<wbr></span>
1118 </li>
1119 </ul>
1120
1121 </td> <!-- entry_type -->
1122
1123 <td class="entry_description">
1124 Whether the HAL must trigger autofocus.<wbr>
1125 </td>
1126
1127 <td class="entry_units">
1128 </td>
1129
1130 <td class="entry_range">
1131 </td>
1132
1133 <td class="entry_notes">
1134 This entry is normally set to IDLE,<wbr> or is not
1135 included at all in the request settings.<wbr> When included and
1136 set to START,<wbr> the HAL must trigger the autofocus
1137 algorithm.<wbr> The effect of AF trigger depends on the current
1138 AF mode and state; see the camera HAL device v3 header for
1139 details.<wbr> When set to CANCEL,<wbr> the HAL must cancel any active
1140 trigger,<wbr> and return to initial AF state.<wbr>
1141 </td>
1142
1143 <td class="entry_tags">
1144 <ul class="entry_tags">
1145 <li><a href="#tag_BC">BC</a></li>
1146 </ul>
1147 </td>
1148
1149 </tr> <!-- end of entry -->
1150
1151
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001152 <tr class="entry" id="controls_android.control.awbLock">
1153 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Lock</td>
1154 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001155 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001156
1157
1158
1159 <ul class="entry_type_enum">
1160 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001161 <span class="entry_type_enum_name">OFF</span>
1162 <span class="entry_type_enum_notes">Auto-whitebalance lock is disabled; the AWB
1163 algorithm is free to update its parameters if in AUTO
1164 mode.<wbr></span>
1165 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001166 <li>
1167 <span class="entry_type_enum_name">ON</span>
1168 <span class="entry_type_enum_notes">Auto-whitebalance lock is enabled; the AWB
1169 algorithm must not update the exposure and sensitivity
1170 parameters while the lock is active</span>
1171 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001172 </ul>
1173
1174 </td> <!-- entry_type -->
1175
1176 <td class="entry_description">
1177 Whether AWB is currently locked to its
1178 latest calculated values
1179 </td>
1180
1181 <td class="entry_units">
1182 </td>
1183
1184 <td class="entry_range">
1185 </td>
1186
1187 <td class="entry_notes">
1188 Note that AWB lock is only meaningful for AUTO
1189 mode; in other modes,<wbr> AWB is already fixed to a specific
1190 setting
1191 </td>
1192
1193 <td class="entry_tags">
1194 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001195 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001196 </ul>
1197 </td>
1198
1199 </tr> <!-- end of entry -->
1200
1201
1202 <tr class="entry" id="controls_android.control.awbMode">
1203 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Mode</td>
1204 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001205 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001206
1207
1208
1209 <ul class="entry_type_enum">
1210 <li>
1211 <span class="entry_type_enum_name">OFF</span>
1212 </li>
1213 <li>
1214 <span class="entry_type_enum_name">AUTO</span>
1215 </li>
1216 <li>
1217 <span class="entry_type_enum_name">INCANDESCENT</span>
1218 </li>
1219 <li>
1220 <span class="entry_type_enum_name">FLUORESCENT</span>
1221 </li>
1222 <li>
1223 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
1224 </li>
1225 <li>
1226 <span class="entry_type_enum_name">DAYLIGHT</span>
1227 </li>
1228 <li>
1229 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
1230 </li>
1231 <li>
1232 <span class="entry_type_enum_name">TWILIGHT</span>
1233 </li>
1234 <li>
1235 <span class="entry_type_enum_name">SHADE</span>
1236 </li>
1237 </ul>
1238
1239 </td> <!-- entry_type -->
1240
1241 <td class="entry_description">
1242 Whether AWB is currently setting the color
1243 transform fields,<wbr> and what its illumination target
1244 is
1245 </td>
1246
1247 <td class="entry_units">
1248 </td>
1249
1250 <td class="entry_range">
1251 </td>
1252
1253 <td class="entry_notes">
1254 [BC - AWB lock,<wbr>AWB modes]
1255 </td>
1256
1257 <td class="entry_tags">
1258 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001259 <li><a href="#tag_BC">BC</a></li>
1260 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001261 </ul>
1262 </td>
1263
1264 </tr> <!-- end of entry -->
1265
1266
1267 <tr class="entry" id="controls_android.control.awbRegions">
1268 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Regions</td>
1269 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001270 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001271 <span class="entry_type_container">x</span>
1272
1273 <span class="entry_type_array">
1274 5 x area_count
1275 </span>
1276
1277
1278
1279 </td> <!-- entry_type -->
1280
1281 <td class="entry_description">
1282 List of areas to use for illuminant
1283 estimation
1284 </td>
1285
1286 <td class="entry_units">
1287 </td>
1288
1289 <td class="entry_range">
1290 </td>
1291
1292 <td class="entry_notes">
1293 Only used in AUTO mode.<wbr> Each area is a rectangle
1294 plus weight: xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax,<wbr> weight.<wbr> The
1295 coordinate system is based on the active pixel array,<wbr>
1296 with (0,<wbr>0) being the top-left of the active pixel array,<wbr>
1297 and (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
1298 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
1299 bottom-right point of the active pixel array.<wbr> The weight
1300 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
1301 no specific metering area needs to be used by the HAL.<wbr> If
1302 the metering region is outside the current
1303 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
1304 sections outside the region and output the used sections
1305 in the frame metadata
1306 </td>
1307
1308 <td class="entry_tags">
1309 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001310 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001311 </ul>
1312 </td>
1313
1314 </tr> <!-- end of entry -->
1315
1316
1317 <tr class="entry" id="controls_android.control.captureIntent">
1318 <td class="entry_name">android.<wbr>control.<wbr>capture<wbr>Intent</td>
1319 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001320 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001321
1322
1323
1324 <ul class="entry_type_enum">
1325 <li>
1326 <span class="entry_type_enum_name">CUSTOM</span>
1327 <span class="entry_type_enum_notes">This request doesn't fall into the other
1328 categories.<wbr> Default to preview-like
1329 behavior.<wbr></span>
1330 </li>
1331 <li>
1332 <span class="entry_type_enum_name">PREVIEW</span>
1333 <span class="entry_type_enum_notes">This request is for a preview-like usecase.<wbr> The
1334 precapture trigger may be used to start off a metering
1335 w/<wbr>flash sequence</span>
1336 </li>
1337 <li>
1338 <span class="entry_type_enum_name">STILL_CAPTURE</span>
1339 <span class="entry_type_enum_notes">This request is for a still capture-type
1340 usecase.<wbr></span>
1341 </li>
1342 <li>
1343 <span class="entry_type_enum_name">VIDEO_RECORD</span>
1344 <span class="entry_type_enum_notes">This request is for a video recording
1345 usecase.<wbr></span>
1346 </li>
1347 <li>
1348 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
1349 <span class="entry_type_enum_notes">This request is for a video snapshot (still
1350 image while recording video) usecase</span>
1351 </li>
1352 <li>
1353 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
1354 <span class="entry_type_enum_notes">This request is for a ZSL usecase; the
1355 application will stream full-resolution images and
1356 reprocess one or several later for a final
1357 capture</span>
1358 </li>
1359 </ul>
1360
1361 </td> <!-- entry_type -->
1362
1363 <td class="entry_description">
1364 Information to 3A routines about the purpose
1365 of this capture,<wbr> to help decide optimal 3A
1366 strategy
1367 </td>
1368
1369 <td class="entry_units">
1370 </td>
1371
1372 <td class="entry_range">
1373 all must be supported
1374 </td>
1375
1376 <td class="entry_notes">
1377 Only used if android.<wbr>control.<wbr>mode != OFF.<wbr>
1378 </td>
1379
1380 <td class="entry_tags">
1381 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001382 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001383 </ul>
1384 </td>
1385
1386 </tr> <!-- end of entry -->
1387
1388
1389 <tr class="entry" id="controls_android.control.effectMode">
1390 <td class="entry_name">android.<wbr>control.<wbr>effect<wbr>Mode</td>
1391 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001392 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001393
1394
1395
1396 <ul class="entry_type_enum">
1397 <li>
1398 <span class="entry_type_enum_name">OFF</span>
1399 </li>
1400 <li>
1401 <span class="entry_type_enum_name">MONO</span>
1402 <span class="entry_type_enum_optional">optional</span>
1403 </li>
1404 <li>
1405 <span class="entry_type_enum_name">NEGATIVE</span>
1406 <span class="entry_type_enum_optional">optional</span>
1407 </li>
1408 <li>
1409 <span class="entry_type_enum_name">SOLARIZE</span>
1410 <span class="entry_type_enum_optional">optional</span>
1411 </li>
1412 <li>
1413 <span class="entry_type_enum_name">SEPIA</span>
1414 <span class="entry_type_enum_optional">optional</span>
1415 </li>
1416 <li>
1417 <span class="entry_type_enum_name">POSTERIZE</span>
1418 <span class="entry_type_enum_optional">optional</span>
1419 </li>
1420 <li>
1421 <span class="entry_type_enum_name">WHITEBOARD</span>
1422 <span class="entry_type_enum_optional">optional</span>
1423 </li>
1424 <li>
1425 <span class="entry_type_enum_name">BLACKBOARD</span>
1426 <span class="entry_type_enum_optional">optional</span>
1427 </li>
1428 <li>
1429 <span class="entry_type_enum_name">AQUA</span>
1430 <span class="entry_type_enum_optional">optional</span>
1431 </li>
1432 </ul>
1433
1434 </td> <!-- entry_type -->
1435
1436 <td class="entry_description">
1437 Whether any special color effect is in use.<wbr>
1438 Only used if android.<wbr>control.<wbr>mode != OFF
1439 </td>
1440
1441 <td class="entry_units">
1442 </td>
1443
1444 <td class="entry_range">
1445 android.<wbr>control.<wbr>available<wbr>Effects
1446 </td>
1447
1448 <td class="entry_notes">
1449 </td>
1450
1451 <td class="entry_tags">
1452 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001453 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001454 </ul>
1455 </td>
1456
1457 </tr> <!-- end of entry -->
1458
1459
1460 <tr class="entry" id="controls_android.control.mode">
1461 <td class="entry_name">android.<wbr>control.<wbr>mode</td>
1462 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001463 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001464
1465
1466
1467 <ul class="entry_type_enum">
1468 <li>
1469 <span class="entry_type_enum_name">OFF</span>
1470 <span class="entry_type_enum_notes">Full application control of pipeline.<wbr> All 3A
1471 routines are disabled,<wbr> no other settings in
1472 android.<wbr>control.<wbr>* have any effect</span>
1473 </li>
1474 <li>
1475 <span class="entry_type_enum_name">AUTO</span>
1476 <span class="entry_type_enum_notes">Use settings for each individual 3A routine.<wbr>
1477 Manual control of capture parameters is disabled.<wbr> All
1478 controls in android.<wbr>control.<wbr>* besides sceneMode take
1479 effect</span>
1480 </li>
1481 <li>
1482 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
1483 <span class="entry_type_enum_notes">Use specific scene mode.<wbr> Enabling this disables
1484 control.<wbr>aeMode,<wbr> control.<wbr>awbMode and control.<wbr>afMode
1485 controls; the HAL must ignore those settings while
1486 USE_<wbr>SCENE_<wbr>MODE is active (except for FACE_<wbr>PRIORITY
1487 scene mode).<wbr> Other control entries are still active.<wbr>
1488 This setting can only be used if availableSceneModes !=
1489 UNSUPPORTED</span>
1490 </li>
1491 </ul>
1492
1493 </td> <!-- entry_type -->
1494
1495 <td class="entry_description">
1496 Overall mode of 3A control
1497 routines
1498 </td>
1499
1500 <td class="entry_units">
1501 </td>
1502
1503 <td class="entry_range">
1504 all must be supported
1505 </td>
1506
1507 <td class="entry_notes">
1508 </td>
1509
1510 <td class="entry_tags">
1511 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001512 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001513 </ul>
1514 </td>
1515
1516 </tr> <!-- end of entry -->
1517
1518
1519 <tr class="entry" id="controls_android.control.sceneMode">
1520 <td class="entry_name">android.<wbr>control.<wbr>scene<wbr>Mode</td>
1521 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001522 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001523
1524
1525
1526 <ul class="entry_type_enum">
1527 <li>
1528 <span class="entry_type_enum_name">UNSUPPORTED</span>
1529 <span class="entry_type_enum_value">0</span>
1530 </li>
1531 <li>
1532 <span class="entry_type_enum_name">FACE_PRIORITY</span>
1533 <span class="entry_type_enum_notes">if face detection support exists Use face
1534 detection data to drive 3A routines.<wbr> If face detection
1535 statistics are disabled,<wbr> should still operate correctly
1536 (but not return face detection statistics to the
1537 framework).<wbr> Unlike the other scene modes,<wbr> aeMode,<wbr>
1538 awbMode,<wbr> and afMode remain active when FACE_<wbr>PRIORITY is
1539 set.<wbr> This is due to compatibility concerns with the old
1540 camera API</span>
1541 </li>
1542 <li>
1543 <span class="entry_type_enum_name">ACTION</span>
1544 <span class="entry_type_enum_optional">optional</span>
1545 </li>
1546 <li>
1547 <span class="entry_type_enum_name">PORTRAIT</span>
1548 <span class="entry_type_enum_optional">optional</span>
1549 </li>
1550 <li>
1551 <span class="entry_type_enum_name">LANDSCAPE</span>
1552 <span class="entry_type_enum_optional">optional</span>
1553 </li>
1554 <li>
1555 <span class="entry_type_enum_name">NIGHT</span>
1556 <span class="entry_type_enum_optional">optional</span>
1557 </li>
1558 <li>
1559 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
1560 <span class="entry_type_enum_optional">optional</span>
1561 </li>
1562 <li>
1563 <span class="entry_type_enum_name">THEATRE</span>
1564 <span class="entry_type_enum_optional">optional</span>
1565 </li>
1566 <li>
1567 <span class="entry_type_enum_name">BEACH</span>
1568 <span class="entry_type_enum_optional">optional</span>
1569 </li>
1570 <li>
1571 <span class="entry_type_enum_name">SNOW</span>
1572 <span class="entry_type_enum_optional">optional</span>
1573 </li>
1574 <li>
1575 <span class="entry_type_enum_name">SUNSET</span>
1576 <span class="entry_type_enum_optional">optional</span>
1577 </li>
1578 <li>
1579 <span class="entry_type_enum_name">STEADYPHOTO</span>
1580 <span class="entry_type_enum_optional">optional</span>
1581 </li>
1582 <li>
1583 <span class="entry_type_enum_name">FIREWORKS</span>
1584 <span class="entry_type_enum_optional">optional</span>
1585 </li>
1586 <li>
1587 <span class="entry_type_enum_name">SPORTS</span>
1588 <span class="entry_type_enum_optional">optional</span>
1589 </li>
1590 <li>
1591 <span class="entry_type_enum_name">PARTY</span>
1592 <span class="entry_type_enum_optional">optional</span>
1593 </li>
1594 <li>
1595 <span class="entry_type_enum_name">CANDLELIGHT</span>
1596 <span class="entry_type_enum_optional">optional</span>
1597 </li>
1598 <li>
1599 <span class="entry_type_enum_name">BARCODE</span>
1600 <span class="entry_type_enum_optional">optional</span>
1601 </li>
1602 </ul>
1603
1604 </td> <!-- entry_type -->
1605
1606 <td class="entry_description">
1607 Which scene mode is active when
1608 android.<wbr>control.<wbr>mode = SCENE_<wbr>MODE
1609 </td>
1610
1611 <td class="entry_units">
1612 </td>
1613
1614 <td class="entry_range">
1615 android.<wbr>control.<wbr>available<wbr>Scene<wbr>Modes
1616 </td>
1617
1618 <td class="entry_notes">
1619 </td>
1620
1621 <td class="entry_tags">
1622 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001623 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001624 </ul>
1625 </td>
1626
1627 </tr> <!-- end of entry -->
1628
1629
1630 <tr class="entry" id="controls_android.control.videoStabilizationMode">
1631 <td class="entry_name">android.<wbr>control.<wbr>video<wbr>Stabilization<wbr>Mode</td>
1632 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001633 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001634
1635
1636
1637 <ul class="entry_type_enum">
1638 <li>
1639 <span class="entry_type_enum_name">OFF</span>
1640 </li>
1641 <li>
1642 <span class="entry_type_enum_name">ON</span>
1643 </li>
1644 </ul>
1645
1646 </td> <!-- entry_type -->
1647
1648 <td class="entry_description">
1649 Whether video stabilization is
1650 active
1651 </td>
1652
1653 <td class="entry_units">
1654 </td>
1655
1656 <td class="entry_range">
1657 </td>
1658
1659 <td class="entry_notes">
1660 If enabled,<wbr> video stabilization can modify the
1661 android.<wbr>scaler.<wbr>crop<wbr>Region to keep the video stream
1662 stabilized
1663 </td>
1664
1665 <td class="entry_tags">
1666 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001667 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001668 </ul>
1669 </td>
1670
1671 </tr> <!-- end of entry -->
1672
1673
1674
1675 <!-- end of kind -->
1676 </tbody>
1677 <tr><td colspan="7" class="kind">static</td></tr>
1678
1679 <thead>
1680 <tr>
1681 <th class="th_name">Property Name</th>
1682 <th class="th_type">Type</th>
1683 <th class="th_description">Description</th>
1684 <th class="th_units">Units</th>
1685 <th class="th_range">Range</th>
1686 <th class="th_notes">Notes</th>
1687 <th class="th_tags">Tags</th>
1688 </tr>
1689 </thead>
1690
1691 <tbody>
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
1703 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Antibanding<wbr>Modes</td>
1704 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001705 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001706 <span class="entry_type_container">x</span>
1707
1708 <span class="entry_type_array">
1709 n
1710 </span>
1711
1712 <div class="entry_type_notes">list of enums</div>
1713
1714
1715 </td> <!-- entry_type -->
1716
1717 <td class="entry_description">
1718 Which set of antibanding modes are
1719 supported
1720 </td>
1721
1722 <td class="entry_units">
1723 </td>
1724
1725 <td class="entry_range">
1726 </td>
1727
1728 <td class="entry_notes">
1729 </td>
1730
1731 <td class="entry_tags">
1732 </td>
1733
1734 </tr> <!-- end of entry -->
1735
1736
1737 <tr class="entry" id="static_android.control.aeAvailableModes">
1738 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Modes</td>
1739 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001740 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001741 <span class="entry_type_container">x</span>
1742
1743 <span class="entry_type_array">
1744 n
1745 </span>
1746
1747 <div class="entry_type_notes">list of enums</div>
1748
1749
1750 </td> <!-- entry_type -->
1751
1752 <td class="entry_description">
1753 Which subset of AE modes is
1754 supported
1755 </td>
1756
1757 <td class="entry_units">
1758 </td>
1759
1760 <td class="entry_range">
1761 OFF,<wbr> ON must be supported.<wbr>
1762 ON_<wbr>AUTO_<wbr>FLASH/<wbr>ON_<wbr>ALWAYS_<wbr>FLASH must be supported if flash
1763 unit is available
1764 </td>
1765
1766 <td class="entry_notes">
1767 </td>
1768
1769 <td class="entry_tags">
1770 </td>
1771
1772 </tr> <!-- end of entry -->
1773
1774
1775 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
1776 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Target<wbr>Fps<wbr>Ranges</td>
1777 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001778 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001779 <span class="entry_type_container">x</span>
1780
1781 <span class="entry_type_array">
1782 2 x n
1783 </span>
1784
1785 <div class="entry_type_notes">list of pairs of frame rates</div>
1786
1787
1788 </td> <!-- entry_type -->
1789
1790 <td class="entry_description">
1791 List of frame rate ranges supported by the
1792 AE algorithm/<wbr>hardware
1793 </td>
1794
1795 <td class="entry_units">
1796 </td>
1797
1798 <td class="entry_range">
1799 </td>
1800
1801 <td class="entry_notes">
1802 </td>
1803
1804 <td class="entry_tags">
1805 </td>
1806
1807 </tr> <!-- end of entry -->
1808
1809
1810 <tr class="entry" id="static_android.control.aeCompensationRange">
1811 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Range</td>
1812 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001813 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001814 <span class="entry_type_container">x</span>
1815
1816 <span class="entry_type_array">
1817 2
1818 </span>
1819
1820
1821
1822 </td> <!-- entry_type -->
1823
1824 <td class="entry_description">
1825 Maximum and minimum exposure compensation
1826 setting,<wbr> in counts of
1827 android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Step<wbr>Size
1828 </td>
1829
1830 <td class="entry_units">
1831 </td>
1832
1833 <td class="entry_range">
1834 At least (-2,<wbr>2)/<wbr>(exp compensation step
1835 size)
1836 </td>
1837
1838 <td class="entry_notes">
1839 </td>
1840
1841 <td class="entry_tags">
1842 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001843 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001844 </ul>
1845 </td>
1846
1847 </tr> <!-- end of entry -->
1848
1849
1850 <tr class="entry" id="static_android.control.aeCompensationStep">
1851 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Step</td>
1852 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001853 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001854
1855
1856
1857
1858 </td> <!-- entry_type -->
1859
1860 <td class="entry_description">
1861 Smallest step by which exposure compensation
1862 can be changed
1863 </td>
1864
1865 <td class="entry_units">
1866 </td>
1867
1868 <td class="entry_range">
1869 <= 1/<wbr>2
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.afAvailableModes">
1885 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Available<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</div>
1895
1896
1897 </td> <!-- entry_type -->
1898
1899 <td class="entry_description">
1900 List of AF modes that can be
1901 selected
1902 </td>
1903
1904 <td class="entry_units">
1905 </td>
1906
1907 <td class="entry_range">
1908 OFF must be included.<wbr> AUTO must be supported if
1909 lens allows for changing focus
1910 </td>
1911
1912 <td class="entry_notes">
1913 </td>
1914
1915 <td class="entry_tags">
1916 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001917 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001918 </ul>
1919 </td>
1920
1921 </tr> <!-- end of entry -->
1922
1923
1924 <tr class="entry" id="static_android.control.availableEffects">
1925 <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Effects</td>
1926 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001927 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001928 <span class="entry_type_container">x</span>
1929
1930 <span class="entry_type_array">
1931 n
1932 </span>
1933
1934 <div class="entry_type_notes">list of enums</div>
1935
1936
1937 </td> <!-- entry_type -->
1938
1939 <td class="entry_description">
1940 what subset of the full color effect enum
1941 list is supported
1942 </td>
1943
1944 <td class="entry_units">
1945 </td>
1946
1947 <td class="entry_range">
1948 OFF must be listed
1949 </td>
1950
1951 <td class="entry_notes">
1952 </td>
1953
1954 <td class="entry_tags">
1955 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001956 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001957 </ul>
1958 </td>
1959
1960 </tr> <!-- end of entry -->
1961
1962
1963 <tr class="entry" id="static_android.control.availableSceneModes">
1964 <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Scene<wbr>Modes</td>
1965 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001966 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001967 <span class="entry_type_container">x</span>
1968
1969 <span class="entry_type_array">
1970 n
1971 </span>
1972
1973 <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>
1974
1975
1976 </td> <!-- entry_type -->
1977
1978 <td class="entry_description">
1979 what subset of the scene mode enum list is
1980 supported.<wbr>
1981 </td>
1982
1983 <td class="entry_units">
1984 </td>
1985
1986 <td class="entry_range">
1987 SCENE_<wbr>MODE_<wbr>FACE_<wbr>PRIORITY must be supported if face
1988 detection is supported
1989 </td>
1990
1991 <td class="entry_notes">
1992 </td>
1993
1994 <td class="entry_tags">
1995 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001996 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001997 </ul>
1998 </td>
1999
2000 </tr> <!-- end of entry -->
2001
2002
2003 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
2004 <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Video<wbr>Stabilization<wbr>Modes</td>
2005 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002006 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002007 <span class="entry_type_container">x</span>
2008
2009 <span class="entry_type_array">
2010 n
2011 </span>
2012
2013 <div class="entry_type_notes">List of enums.<wbr></div>
2014
2015
2016 </td> <!-- entry_type -->
2017
2018 <td class="entry_description">
2019 List of video stabilization modes that can
2020 be supported
2021 </td>
2022
2023 <td class="entry_units">
2024 </td>
2025
2026 <td class="entry_range">
2027 OFF must be included
2028 </td>
2029
2030 <td class="entry_notes">
2031 </td>
2032
2033 <td class="entry_tags">
2034 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002035 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002036 </ul>
2037 </td>
2038
2039 </tr> <!-- end of entry -->
2040
2041
2042 <tr class="entry" id="static_android.control.awbAvailableModes">
2043 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Available<wbr>Modes</td>
2044 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002045 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07002046 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002047
Alex Raya4251d92013-04-30 16:43:44 -07002048 <span class="entry_type_array">
2049 n
2050 </span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002051
Alex Raya4251d92013-04-30 16:43:44 -07002052 <div class="entry_type_notes">List of enums (android.<wbr>control.<wbr>awb<wbr>Mode)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002053
2054
2055 </td> <!-- entry_type -->
2056
2057 <td class="entry_description">
2058 </td>
2059
2060 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002061 </td>
2062
2063 <td class="entry_range">
2064 OFF,<wbr> AUTO must be included
2065 </td>
2066
2067 <td class="entry_notes">
2068 </td>
2069
2070 <td class="entry_tags">
2071 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002072 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002073 </ul>
2074 </td>
2075
2076 </tr> <!-- end of entry -->
2077
2078
2079 <tr class="entry" id="static_android.control.maxRegions">
2080 <td class="entry_name">android.<wbr>control.<wbr>max<wbr>Regions</td>
2081 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002082 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002083
2084
2085
2086
2087 </td> <!-- entry_type -->
2088
2089 <td class="entry_description">
2090 For AE,<wbr> AWB,<wbr> and AF,<wbr> how many individual
2091 regions can be listed for metering?
2092 </td>
2093
2094 <td class="entry_units">
2095 </td>
2096
2097 <td class="entry_range">
2098 >= 1
2099 </td>
2100
2101 <td class="entry_notes">
2102 </td>
2103
2104 <td class="entry_tags">
2105 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002106 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002107 </ul>
2108 </td>
2109
2110 </tr> <!-- end of entry -->
2111
2112
2113 <tr class="entry" id="static_android.control.sceneModeOverrides">
2114 <td class="entry_name">android.<wbr>control.<wbr>scene<wbr>Mode<wbr>Overrides</td>
2115 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002116 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002117 <span class="entry_type_container">x</span>
2118
2119 <span class="entry_type_array">
2120 3 x lengthavailablescenemodes
2121 </span>
2122
2123
2124
2125 </td> <!-- entry_type -->
2126
2127 <td class="entry_description">
2128 List of AE,<wbr> AWB,<wbr> and AF modes to use for
2129 each available scene mode
2130 </td>
2131
2132 <td class="entry_units">
2133 </td>
2134
2135 <td class="entry_range">
2136 For each listed scene mode,<wbr> lists the aeMode,<wbr>
2137 awbMode,<wbr> and afMode that the HAL wants to use for that
2138 scene mode.<wbr> For each entry,<wbr> the order is {aeMode,<wbr>
2139 awbMode,<wbr> afMode} in order of increasing index
2140 </td>
2141
2142 <td class="entry_notes">
2143 When a scene mode is enabled,<wbr> the HAL is expected
2144 to override aeMode,<wbr> awbMode,<wbr> and afMode with its
2145 preferred settings for that scene mode.<wbr> To simplify
2146 communication with old camera API applications,<wbr> the
2147 service wants this override list in the static metadata.<wbr>
2148 The order of this list matches that of
2149 availableSceneModes,<wbr> with 3 entires for each scene mode.<wbr>
2150 The overrides listed for SCENE_<wbr>MODE_<wbr>FACE_<wbr>PRIORITY are
2151 ignored,<wbr> since for that mode,<wbr> the application-set aeMode,<wbr>
2152 awbMode,<wbr> and afMode are used instead,<wbr> like they are when
2153 android.<wbr>control.<wbr>mode is AUTO.<wbr> It is recommended that for
2154 FACE_<wbr>PRIORITY,<wbr> the overrides should be set to 0.<wbr> As an
2155 example,<wbr> if availableSceneModes is { FACE_<wbr>PRIORITY,<wbr>
2156 ACTION,<wbr> NIGHT },<wbr> then the service expects this field to
2157 have 9 entries; for example { 0 ,<wbr> 0,<wbr> 0,<wbr> ON_<wbr>AUTO_<wbr>FLASH,<wbr>
2158 AUTO,<wbr> CONTINUOUS_<wbr>PICTURE,<wbr> ON_<wbr>AUTO_<wbr>FLASH,<wbr> INCANDESCENT,<wbr>
2159 AUTO }
2160 </td>
2161
2162 <td class="entry_tags">
2163 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002164 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002165 </ul>
2166 </td>
2167
2168 </tr> <!-- end of entry -->
2169
2170
2171
2172 <!-- end of kind -->
2173 </tbody>
2174 <tr><td colspan="7" class="kind">dynamic</td></tr>
2175
2176 <thead>
2177 <tr>
2178 <th class="th_name">Property Name</th>
2179 <th class="th_type">Type</th>
2180 <th class="th_description">Description</th>
2181 <th class="th_units">Units</th>
2182 <th class="th_range">Range</th>
2183 <th class="th_notes">Notes</th>
2184 <th class="th_tags">Tags</th>
2185 </tr>
2186 </thead>
2187
2188 <tbody>
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
2200 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Precapture<wbr>Id</td>
2201 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002202 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002203
2204
2205
2206
2207 </td> <!-- entry_type -->
2208
2209 <td class="entry_description">
2210 The ID sent with the latest
2211 CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING call
2212 </td>
2213
2214 <td class="entry_units">
2215 </td>
2216
2217 <td class="entry_range">
2218 </td>
2219
2220 <td class="entry_notes">
2221 Must be 0 if no
2222 CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING trigger received yet
2223 by HAL.<wbr> Always updated even if AE algorithm ignores the
2224 trigger
2225 </td>
2226
2227 <td class="entry_tags">
2228 </td>
2229
2230 </tr> <!-- end of entry -->
2231
2232
2233 <tr class="entry" id="dynamic_android.control.aeRegions">
2234 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Regions</td>
2235 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002236 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002237 <span class="entry_type_container">x</span>
2238
2239 <span class="entry_type_array">
2240 5 x area_count
2241 </span>
2242
2243
2244
2245 </td> <!-- entry_type -->
2246
2247 <td class="entry_description">
2248 List of areas to use for
2249 metering
2250 </td>
2251
2252 <td class="entry_units">
2253 </td>
2254
2255 <td class="entry_range">
2256 </td>
2257
2258 <td class="entry_notes">
2259 Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
2260 xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the
2261 active pixel array,<wbr> with (0,<wbr>0) being the top-left of the
2262 active pixel array,<wbr> and
2263 (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
2264 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
2265 bottom-right point of the active pixel array.<wbr> The weight
2266 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
2267 no specific metering area needs to be used by the HAL.<wbr> If
2268 the metering region is outside the current
2269 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
2270 sections outside the region and output the used sections
2271 in the frame metadata
2272 </td>
2273
2274 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002275 <ul class="entry_tags">
2276 <li><a href="#tag_BC">BC</a></li>
2277 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002278 </td>
2279
2280 </tr> <!-- end of entry -->
2281
2282
2283 <tr class="entry" id="dynamic_android.control.aeState">
2284 <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>State</td>
2285 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002286 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002287
2288
2289
2290 <ul class="entry_type_enum">
2291 <li>
2292 <span class="entry_type_enum_name">INACTIVE</span>
Alex Ray7aeb05e2013-03-27 16:26:41 -07002293 <span class="entry_type_enum_notes">AE is off.<wbr> When a camera device is opened,<wbr> it starts in
2294 this state.<wbr></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002295 </li>
2296 <li>
2297 <span class="entry_type_enum_name">SEARCHING</span>
2298 <span class="entry_type_enum_notes">AE doesn't yet have a good set of control values
2299 for the current scene</span>
2300 </li>
2301 <li>
2302 <span class="entry_type_enum_name">CONVERGED</span>
2303 <span class="entry_type_enum_notes">AE has a good set of control values for the
2304 current scene</span>
2305 </li>
2306 <li>
2307 <span class="entry_type_enum_name">LOCKED</span>
2308 <span class="entry_type_enum_notes">AE has been locked (aeMode =
2309 LOCKED)</span>
2310 </li>
2311 <li>
2312 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
2313 <span class="entry_type_enum_notes">AE has a good set of control values,<wbr> but flash
2314 needs to be fired for good quality still
2315 capture</span>
2316 </li>
2317 <li>
2318 <span class="entry_type_enum_name">PRECAPTURE</span>
2319 <span class="entry_type_enum_notes">AE has been asked to do a precapture sequence
2320 (through the
2321 trigger_<wbr>action(CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING)
2322 call),<wbr> and is currently executing it.<wbr> Once PRECAPTURE
2323 completes,<wbr> AE will transition to CONVERGED or
2324 FLASH_<wbr>REQUIRED as appropriate</span>
2325 </li>
2326 </ul>
2327
2328 </td> <!-- entry_type -->
2329
2330 <td class="entry_description">
2331 Current state of AE algorithm
2332 </td>
2333
2334 <td class="entry_units">
2335 </td>
2336
2337 <td class="entry_range">
2338 </td>
2339
2340 <td class="entry_notes">
2341 Whenever the AE algorithm state changes,<wbr> a
2342 MSG_<wbr>AUTOEXPOSURE notification must be send if a
2343 notification callback is registered.<wbr>
2344 </td>
2345
2346 <td class="entry_tags">
2347 </td>
2348
2349 </tr> <!-- end of entry -->
2350
2351
2352 <tr class="entry" id="dynamic_android.control.afMode">
2353 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Mode</td>
2354 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002355 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002356
2357
2358
2359 <ul class="entry_type_enum">
2360 <li>
2361 <span class="entry_type_enum_name">OFF</span>
2362 <span class="entry_type_enum_notes">The 3A routines do not control the lens;
2363 android.<wbr>lens.<wbr>focus<wbr>Position is controlled by the
2364 application</span>
2365 </li>
2366 <li>
2367 <span class="entry_type_enum_name">AUTO</span>
2368 <span class="entry_type_enum_notes">if lens is not fixed focus.<wbr> Use
2369 android.<wbr>lens.<wbr>minimum<wbr>Focus<wbr>Distance to determine if lens
2370 is fixed focus In this mode,<wbr> the lens does not move
2371 unless the autofocus trigger action is called.<wbr> When
2372 that trigger is activated,<wbr> AF must transition to
2373 ACTIVE_<wbr>SCAN,<wbr> then to the outcome of the scan (FOCUSED
2374 or NOT_<wbr>FOCUSED).<wbr> Triggering cancel AF resets the lens
2375 position to default,<wbr> and sets the AF state to
2376 INACTIVE.<wbr></span>
2377 </li>
2378 <li>
2379 <span class="entry_type_enum_name">MACRO</span>
2380 <span class="entry_type_enum_notes">In this mode,<wbr> the lens does not move unless the
2381 autofocus trigger action is called.<wbr> When that trigger
2382 is activated,<wbr> AF must transition to ACTIVE_<wbr>SCAN,<wbr> then
2383 to the outcome of the scan (FOCUSED or NOT_<wbr>FOCUSED).<wbr>
2384 Triggering cancel AF resets the lens position to
2385 default,<wbr> and sets the AF state to
2386 INACTIVE.<wbr></span>
2387 </li>
2388 <li>
2389 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
2390 <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens
2391 position continually to attempt to provide a
2392 constantly-in-focus image stream.<wbr> The focusing behavior
2393 should be suitable for good quality video recording;
2394 typically this means slower focus movement and no
2395 overshoots.<wbr> When the AF trigger is not involved,<wbr> the AF
2396 algorithm should start in INACTIVE state,<wbr> and then
2397 transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states
2398 as appropriate.<wbr> When the AF trigger is activated,<wbr> the
2399 algorithm should immediately transition into AF_<wbr>FOCUSED
2400 or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the lens
2401 position until a cancel AF trigger is received.<wbr> Once
2402 cancel is received,<wbr> the algorithm should transition
2403 back to INACTIVE and resume passive scan.<wbr> Note that
2404 this behavior is not identical to CONTINUOUS_<wbr>PICTURE,<wbr>
2405 since an ongoing PASSIVE_<wbr>SCAN must immediately be
2406 canceled.<wbr></span>
2407 </li>
2408 <li>
2409 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
2410 <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens
2411 position continually to attempt to provide a
2412 constantly-in-focus image stream.<wbr> The focusing behavior
2413 should be suitable for still image capture; typically
2414 this means focusing as fast as possible.<wbr> When the AF
2415 trigger is not involved,<wbr> the AF algorithm should start
2416 in INACTIVE state,<wbr> and then transition into
2417 PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states as appropriate
2418 as it attempts to maintain focus.<wbr> When the AF trigger
2419 is activated,<wbr> the algorithm should finish its
2420 PASSIVE_<wbr>SCAN if active,<wbr> and then transition into
2421 AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock
2422 the lens position until a cancel AF trigger is
2423 received.<wbr> When the AF cancel trigger is activated,<wbr> the
2424 algorithm should transition back to INACTIVE and then
2425 act as if it has just been started.<wbr></span>
2426 </li>
2427 <li>
2428 <span class="entry_type_enum_name">EDOF</span>
2429 <span class="entry_type_enum_notes">Extended depth of field (digital focus).<wbr> AF
2430 trigger is ignored,<wbr> AF state should always be
2431 INACTIVE.<wbr></span>
2432 </li>
2433 </ul>
2434
2435 </td> <!-- entry_type -->
2436
2437 <td class="entry_description">
2438 Whether AF is currently enabled,<wbr> and what
2439 mode it is set to
2440 </td>
2441
2442 <td class="entry_units">
2443 </td>
2444
2445 <td class="entry_range">
2446 </td>
2447
2448 <td class="entry_notes">
2449 </td>
2450
2451 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002452 <ul class="entry_tags">
2453 <li><a href="#tag_BC">BC</a></li>
2454 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002455 </td>
2456
2457 </tr> <!-- end of entry -->
2458
2459
2460 <tr class="entry" id="dynamic_android.control.afRegions">
2461 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Regions</td>
2462 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002463 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002464 <span class="entry_type_container">x</span>
2465
2466 <span class="entry_type_array">
2467 5 x area_count
2468 </span>
2469
2470
2471
2472 </td> <!-- entry_type -->
2473
2474 <td class="entry_description">
2475 List of areas to use for focus
2476 estimation
2477 </td>
2478
2479 <td class="entry_units">
2480 </td>
2481
2482 <td class="entry_range">
2483 </td>
2484
2485 <td class="entry_notes">
2486 Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
2487 xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the
2488 active pixel array,<wbr> with (0,<wbr>0) being the top-left of the
2489 active pixel array,<wbr> and
2490 (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
2491 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
2492 bottom-right point of the active pixel array.<wbr> The weight
2493 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
2494 no specific focus area needs to be used by the HAL.<wbr> If
2495 the focusing region is outside the current
2496 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
2497 sections outside the region and output the used sections
2498 in the frame metadata
2499 </td>
2500
2501 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002502 <ul class="entry_tags">
2503 <li><a href="#tag_BC">BC</a></li>
2504 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002505 </td>
2506
2507 </tr> <!-- end of entry -->
2508
2509
2510 <tr class="entry" id="dynamic_android.control.afState">
2511 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>State</td>
2512 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002513 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002514
2515
2516
2517 <ul class="entry_type_enum">
2518 <li>
2519 <span class="entry_type_enum_name">INACTIVE</span>
2520 <span class="entry_type_enum_notes">AF off or has not yet tried to scan/<wbr>been asked
Alex Ray7aeb05e2013-03-27 16:26:41 -07002521 to scan.<wbr> When a camera device is opened,<wbr> it starts in
2522 this state.<wbr></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002523 </li>
2524 <li>
2525 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
2526 <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported AF is
2527 currently doing an AF scan initiated by a continuous
2528 autofocus mode</span>
2529 </li>
2530 <li>
2531 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
2532 <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported AF currently
2533 believes it is in focus,<wbr> but may restart scanning at
2534 any time.<wbr></span>
2535 </li>
2536 <li>
2537 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
2538 <span class="entry_type_enum_notes">if AUTO or MACRO modes are supported AF is doing
2539 an AF scan because it was triggered by AF
2540 trigger</span>
2541 </li>
2542 <li>
2543 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
2544 <span class="entry_type_enum_notes">if any AF mode besides OFF is supported AF
2545 believes it is focused correctly and is
2546 locked</span>
2547 </li>
2548 <li>
2549 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
2550 <span class="entry_type_enum_notes">if any AF mode besides OFF is supported AF has
2551 failed to focus successfully and is
2552 locked</span>
2553 </li>
2554 </ul>
2555
2556 </td> <!-- entry_type -->
2557
2558 <td class="entry_description">
2559 Current state of AF algorithm
2560 </td>
2561
2562 <td class="entry_units">
2563 </td>
2564
2565 <td class="entry_range">
2566 </td>
2567
2568 <td class="entry_notes">
2569 Whenever the AF algorithm state changes,<wbr> a
2570 MSG_<wbr>AUTOFOCUS notification must be send if a notification
2571 callback is registered.<wbr>
2572 </td>
2573
2574 <td class="entry_tags">
2575 </td>
2576
2577 </tr> <!-- end of entry -->
2578
2579
2580 <tr class="entry" id="dynamic_android.control.afTriggerId">
2581 <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Trigger<wbr>Id</td>
2582 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002583 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002584
2585
2586
2587
2588 </td> <!-- entry_type -->
2589
2590 <td class="entry_description">
2591 The ID sent with the latest
2592 CAMERA2_<wbr>TRIGGER_<wbr>AUTOFOCUS call
2593 </td>
2594
2595 <td class="entry_units">
2596 </td>
2597
2598 <td class="entry_range">
2599 </td>
2600
2601 <td class="entry_notes">
2602 Must be 0 if no CAMERA2_<wbr>TRIGGER_<wbr>AUTOFOCUS trigger
2603 received yet by HAL.<wbr> Always updated even if AF algorithm
2604 ignores the trigger
2605 </td>
2606
2607 <td class="entry_tags">
2608 </td>
2609
2610 </tr> <!-- end of entry -->
2611
2612
2613 <tr class="entry" id="dynamic_android.control.awbMode">
2614 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Mode</td>
2615 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002616 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002617
2618
2619
2620 <ul class="entry_type_enum">
2621 <li>
2622 <span class="entry_type_enum_name">OFF</span>
2623 </li>
2624 <li>
2625 <span class="entry_type_enum_name">AUTO</span>
2626 </li>
2627 <li>
2628 <span class="entry_type_enum_name">INCANDESCENT</span>
2629 </li>
2630 <li>
2631 <span class="entry_type_enum_name">FLUORESCENT</span>
2632 </li>
2633 <li>
2634 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
2635 </li>
2636 <li>
2637 <span class="entry_type_enum_name">DAYLIGHT</span>
2638 </li>
2639 <li>
2640 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
2641 </li>
2642 <li>
2643 <span class="entry_type_enum_name">TWILIGHT</span>
2644 </li>
2645 <li>
2646 <span class="entry_type_enum_name">SHADE</span>
2647 </li>
2648 </ul>
2649
2650 </td> <!-- entry_type -->
2651
2652 <td class="entry_description">
2653 Whether AWB is currently setting the color
2654 transform fields,<wbr> and what its illumination target
2655 is
2656 </td>
2657
2658 <td class="entry_units">
2659 </td>
2660
2661 <td class="entry_range">
2662 </td>
2663
2664 <td class="entry_notes">
2665 [BC - AWB lock,<wbr>AWB modes]
2666 </td>
2667
2668 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002669 <ul class="entry_tags">
2670 <li><a href="#tag_BC">BC</a></li>
2671 <li><a href="#tag_AWB">AWB</a></li>
2672 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002673 </td>
2674
2675 </tr> <!-- end of entry -->
2676
2677
2678 <tr class="entry" id="dynamic_android.control.awbRegions">
2679 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Regions</td>
2680 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002681 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002682 <span class="entry_type_container">x</span>
2683
2684 <span class="entry_type_array">
2685 5 x area_count
2686 </span>
2687
2688
2689
2690 </td> <!-- entry_type -->
2691
2692 <td class="entry_description">
2693 List of areas to use for illuminant
2694 estimation
2695 </td>
2696
2697 <td class="entry_units">
2698 </td>
2699
2700 <td class="entry_range">
2701 </td>
2702
2703 <td class="entry_notes">
2704 Only used in AUTO mode.<wbr> Each area is a rectangle
2705 plus weight: xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax,<wbr> weight.<wbr> The
2706 coordinate system is based on the active pixel array,<wbr>
2707 with (0,<wbr>0) being the top-left of the active pixel array,<wbr>
2708 and (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
2709 android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
2710 bottom-right point of the active pixel array.<wbr> The weight
2711 should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
2712 no specific metering area needs to be used by the HAL.<wbr> If
2713 the metering region is outside the current
2714 android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
2715 sections outside the region and output the used sections
2716 in the frame metadata
2717 </td>
2718
2719 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002720 <ul class="entry_tags">
2721 <li><a href="#tag_BC">BC</a></li>
2722 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002723 </td>
2724
2725 </tr> <!-- end of entry -->
2726
2727
2728 <tr class="entry" id="dynamic_android.control.awbState">
2729 <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>State</td>
2730 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002731 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002732
2733
2734
2735 <ul class="entry_type_enum">
2736 <li>
2737 <span class="entry_type_enum_name">INACTIVE</span>
Alex Ray7aeb05e2013-03-27 16:26:41 -07002738 <span class="entry_type_enum_notes">AWB is not in auto mode.<wbr> When a camera device is opened,<wbr> it
2739 starts in this state.<wbr></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002740 </li>
2741 <li>
2742 <span class="entry_type_enum_name">SEARCHING</span>
2743 <span class="entry_type_enum_notes">AWB doesn't yet have a good set of control
2744 values for the current scene</span>
2745 </li>
2746 <li>
2747 <span class="entry_type_enum_name">CONVERGED</span>
2748 <span class="entry_type_enum_notes">AWB has a good set of control values for the
2749 current scene</span>
2750 </li>
2751 <li>
2752 <span class="entry_type_enum_name">LOCKED</span>
2753 <span class="entry_type_enum_notes">AE has been locked (aeMode =
2754 LOCKED)</span>
2755 </li>
2756 </ul>
2757
2758 </td> <!-- entry_type -->
2759
2760 <td class="entry_description">
2761 Current state of AWB algorithm
2762 </td>
2763
2764 <td class="entry_units">
2765 </td>
2766
2767 <td class="entry_range">
2768 </td>
2769
2770 <td class="entry_notes">
2771 Whenever the AWB algorithm state changes,<wbr> a
2772 MSG_<wbr>AUTOWHITEBALANCE notification must be send if a
2773 notification callback is registered.<wbr>
2774 </td>
2775
2776 <td class="entry_tags">
2777 </td>
2778
2779 </tr> <!-- end of entry -->
2780
2781
2782 <tr class="entry" id="dynamic_android.control.mode">
2783 <td class="entry_name">android.<wbr>control.<wbr>mode</td>
2784 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002785 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002786
2787
2788
2789 <ul class="entry_type_enum">
2790 <li>
2791 <span class="entry_type_enum_name">OFF</span>
2792 <span class="entry_type_enum_notes">Full application control of pipeline.<wbr> All 3A
2793 routines are disabled,<wbr> no other settings in
2794 android.<wbr>control.<wbr>* have any effect</span>
2795 </li>
2796 <li>
2797 <span class="entry_type_enum_name">AUTO</span>
2798 <span class="entry_type_enum_notes">Use settings for each individual 3A routine.<wbr>
2799 Manual control of capture parameters is disabled.<wbr> All
2800 controls in android.<wbr>control.<wbr>* besides sceneMode take
2801 effect</span>
2802 </li>
2803 <li>
2804 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
2805 <span class="entry_type_enum_notes">Use specific scene mode.<wbr> Enabling this disables
2806 control.<wbr>aeMode,<wbr> control.<wbr>awbMode and control.<wbr>afMode
2807 controls; the HAL must ignore those settings while
2808 USE_<wbr>SCENE_<wbr>MODE is active (except for FACE_<wbr>PRIORITY
2809 scene mode).<wbr> Other control entries are still active.<wbr>
2810 This setting can only be used if availableSceneModes !=
2811 UNSUPPORTED</span>
2812 </li>
2813 </ul>
2814
2815 </td> <!-- entry_type -->
2816
2817 <td class="entry_description">
2818 Overall mode of 3A control
2819 routines
2820 </td>
2821
2822 <td class="entry_units">
2823 </td>
2824
2825 <td class="entry_range">
2826 all must be supported
2827 </td>
2828
2829 <td class="entry_notes">
2830 </td>
2831
2832 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002833 <ul class="entry_tags">
2834 <li><a href="#tag_BC">BC</a></li>
2835 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002836 </td>
2837
2838 </tr> <!-- end of entry -->
2839
2840
2841
2842 <!-- end of kind -->
2843 </tbody>
2844
2845 <!-- end of section -->
2846 <tr><td colspan="7" id="section_demosaic" class="section">demosaic</td></tr>
2847
2848
2849 <tr><td colspan="7" class="kind">controls</td></tr>
2850
2851 <thead>
2852 <tr>
2853 <th class="th_name">Property Name</th>
2854 <th class="th_type">Type</th>
2855 <th class="th_description">Description</th>
2856 <th class="th_units">Units</th>
2857 <th class="th_range">Range</th>
2858 <th class="th_notes">Notes</th>
2859 <th class="th_tags">Tags</th>
2860 </tr>
2861 </thead>
2862
2863 <tbody>
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874 <tr class="entry" id="controls_android.demosaic.mode">
2875 <td class="entry_name">android.<wbr>demosaic.<wbr>mode</td>
2876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002877 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002878
2879
2880
2881 <ul class="entry_type_enum">
2882 <li>
2883 <span class="entry_type_enum_name">FAST</span>
2884 <span class="entry_type_enum_notes">Minimal or no slowdown of frame rate compared to
2885 Bayer RAW output</span>
2886 </li>
2887 <li>
2888 <span class="entry_type_enum_name">HIGH_QUALITY</span>
2889 <span class="entry_type_enum_notes">High-quality may reduce output frame
2890 rate</span>
2891 </li>
2892 </ul>
2893
2894 </td> <!-- entry_type -->
2895
2896 <td class="entry_description">
2897 Controls the quality of the demosaicing
2898 processing
2899 </td>
2900
2901 <td class="entry_units">
2902 </td>
2903
2904 <td class="entry_range">
2905 </td>
2906
2907 <td class="entry_notes">
2908 </td>
2909
2910 <td class="entry_tags">
2911 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002912 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002913 </ul>
2914 </td>
2915
2916 </tr> <!-- end of entry -->
2917
2918
2919
2920 <!-- end of kind -->
2921 </tbody>
2922
2923 <!-- end of section -->
2924 <tr><td colspan="7" id="section_edge" class="section">edge</td></tr>
2925
2926
2927 <tr><td colspan="7" class="kind">controls</td></tr>
2928
2929 <thead>
2930 <tr>
2931 <th class="th_name">Property Name</th>
2932 <th class="th_type">Type</th>
2933 <th class="th_description">Description</th>
2934 <th class="th_units">Units</th>
2935 <th class="th_range">Range</th>
2936 <th class="th_notes">Notes</th>
2937 <th class="th_tags">Tags</th>
2938 </tr>
2939 </thead>
2940
2941 <tbody>
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952 <tr class="entry" id="controls_android.edge.mode">
2953 <td class="entry_name">android.<wbr>edge.<wbr>mode</td>
2954 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002955 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002956
2957
2958
2959 <ul class="entry_type_enum">
2960 <li>
2961 <span class="entry_type_enum_name">OFF</span>
2962 <span class="entry_type_enum_notes">No edge enhancement is applied</span>
2963 </li>
2964 <li>
2965 <span class="entry_type_enum_name">FAST</span>
2966 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
2967 bayer output</span>
2968 </li>
2969 <li>
2970 <span class="entry_type_enum_name">HIGH_QUALITY</span>
2971 <span class="entry_type_enum_notes">Frame rate may be reduced by high
2972 quality</span>
2973 </li>
2974 </ul>
2975
2976 </td> <!-- entry_type -->
2977
2978 <td class="entry_description">
2979 Operation mode for edge
2980 enhancement
2981 </td>
2982
2983 <td class="entry_units">
2984 </td>
2985
2986 <td class="entry_range">
2987 </td>
2988
2989 <td class="entry_notes">
2990 </td>
2991
2992 <td class="entry_tags">
2993 </td>
2994
2995 </tr> <!-- end of entry -->
2996
2997
2998 <tr class="entry" id="controls_android.edge.strength">
2999 <td class="entry_name">android.<wbr>edge.<wbr>strength</td>
3000 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003001 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003002
3003
3004
3005
3006 </td> <!-- entry_type -->
3007
3008 <td class="entry_description">
3009 Control the amount of edge enhancement
3010 applied to the images
3011 </td>
3012
3013 <td class="entry_units">
3014 1-10; 10 is maximum sharpening
3015 </td>
3016
3017 <td class="entry_range">
3018 </td>
3019
3020 <td class="entry_notes">
3021 </td>
3022
3023 <td class="entry_tags">
3024 </td>
3025
3026 </tr> <!-- end of entry -->
3027
3028
3029
3030 <!-- end of kind -->
3031 </tbody>
3032 <tr><td colspan="7" class="kind">dynamic</td></tr>
3033
3034 <thead>
3035 <tr>
3036 <th class="th_name">Property Name</th>
3037 <th class="th_type">Type</th>
3038 <th class="th_description">Description</th>
3039 <th class="th_units">Units</th>
3040 <th class="th_range">Range</th>
3041 <th class="th_notes">Notes</th>
3042 <th class="th_tags">Tags</th>
3043 </tr>
3044 </thead>
3045
3046 <tbody>
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057 <tr class="entry" id="dynamic_android.edge.mode">
3058 <td class="entry_name">android.<wbr>edge.<wbr>mode</td>
3059 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003060 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003061
3062
3063
3064 <ul class="entry_type_enum">
3065 <li>
3066 <span class="entry_type_enum_name">OFF</span>
3067 <span class="entry_type_enum_notes">No edge enhancement is applied</span>
3068 </li>
3069 <li>
3070 <span class="entry_type_enum_name">FAST</span>
3071 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
3072 bayer output</span>
3073 </li>
3074 <li>
3075 <span class="entry_type_enum_name">HIGH_QUALITY</span>
3076 <span class="entry_type_enum_notes">Frame rate may be reduced by high
3077 quality</span>
3078 </li>
3079 </ul>
3080
3081 </td> <!-- entry_type -->
3082
3083 <td class="entry_description">
3084 Operation mode for edge
3085 enhancement
3086 </td>
3087
3088 <td class="entry_units">
3089 </td>
3090
3091 <td class="entry_range">
3092 </td>
3093
3094 <td class="entry_notes">
3095 </td>
3096
3097 <td class="entry_tags">
3098 </td>
3099
3100 </tr> <!-- end of entry -->
3101
3102
3103
3104 <!-- end of kind -->
3105 </tbody>
3106
3107 <!-- end of section -->
3108 <tr><td colspan="7" id="section_flash" class="section">flash</td></tr>
3109
3110
3111 <tr><td colspan="7" class="kind">controls</td></tr>
3112
3113 <thead>
3114 <tr>
3115 <th class="th_name">Property Name</th>
3116 <th class="th_type">Type</th>
3117 <th class="th_description">Description</th>
3118 <th class="th_units">Units</th>
3119 <th class="th_range">Range</th>
3120 <th class="th_notes">Notes</th>
3121 <th class="th_tags">Tags</th>
3122 </tr>
3123 </thead>
3124
3125 <tbody>
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136 <tr class="entry" id="controls_android.flash.firingPower">
3137 <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Power</td>
3138 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003139 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003140
3141
3142
3143
3144 </td> <!-- entry_type -->
3145
3146 <td class="entry_description">
3147 Power for flash firing/<wbr>torch
3148 </td>
3149
3150 <td class="entry_units">
3151 10 is max power; 0 is no flash.<wbr> Linear
3152 </td>
3153
3154 <td class="entry_range">
3155 0 - 10
3156 </td>
3157
3158 <td class="entry_notes">
3159 Power for snapshot may use a different scale than
3160 for torch mode.<wbr> Only one entry for torch mode will be
3161 used
3162 </td>
3163
3164 <td class="entry_tags">
3165 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003166 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003167 </ul>
3168 </td>
3169
3170 </tr> <!-- end of entry -->
3171
3172
3173 <tr class="entry" id="controls_android.flash.firingTime">
3174 <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Time</td>
3175 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003176 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003177
3178
3179
3180
3181 </td> <!-- entry_type -->
3182
3183 <td class="entry_description">
3184 Firing time of flash relative to start of
3185 exposure
3186 </td>
3187
3188 <td class="entry_units">
3189 nanoseconds
3190 </td>
3191
3192 <td class="entry_range">
3193 0-(exposure time-flash duration)
3194 </td>
3195
3196 <td class="entry_notes">
3197 Clamped to (0,<wbr> exposure time - flash
3198 duration).<wbr>
3199 </td>
3200
3201 <td class="entry_tags">
3202 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003203 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003204 </ul>
3205 </td>
3206
3207 </tr> <!-- end of entry -->
3208
3209
3210 <tr class="entry" id="controls_android.flash.mode">
3211 <td class="entry_name">android.<wbr>flash.<wbr>mode</td>
3212 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003213 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003214
3215
3216
3217 <ul class="entry_type_enum">
3218 <li>
3219 <span class="entry_type_enum_name">OFF</span>
3220 <span class="entry_type_enum_notes">Do not fire the flash for this
3221 capture</span>
3222 </li>
3223 <li>
3224 <span class="entry_type_enum_name">SINGLE</span>
3225 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Fire flash
3226 for this capture based on firingPower,<wbr>
3227 firingTime.<wbr></span>
3228 </li>
3229 <li>
3230 <span class="entry_type_enum_name">TORCH</span>
3231 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash
3232 continuously on,<wbr> power set by
3233 firingPower</span>
3234 </li>
3235 </ul>
3236
3237 </td> <!-- entry_type -->
3238
3239 <td class="entry_description">
3240 Select flash operation mode
3241 </td>
3242
3243 <td class="entry_units">
3244 </td>
3245
3246 <td class="entry_range">
3247 </td>
3248
3249 <td class="entry_notes">
3250 </td>
3251
3252 <td class="entry_tags">
3253 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003254 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003255 </ul>
3256 </td>
3257
3258 </tr> <!-- end of entry -->
3259
3260
3261
3262 <!-- end of kind -->
3263 </tbody>
3264 <tr><td colspan="7" class="kind">static</td></tr>
3265
3266 <thead>
3267 <tr>
3268 <th class="th_name">Property Name</th>
3269 <th class="th_type">Type</th>
3270 <th class="th_description">Description</th>
3271 <th class="th_units">Units</th>
3272 <th class="th_range">Range</th>
3273 <th class="th_notes">Notes</th>
3274 <th class="th_tags">Tags</th>
3275 </tr>
3276 </thead>
3277
3278 <tbody>
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291 <tr class="entry" id="static_android.flash.info.available">
3292 <td class="entry_name">android.<wbr>flash.<wbr>info.<wbr>available</td>
3293 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003294 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003295
3296
3297
3298
3299 </td> <!-- entry_type -->
3300
3301 <td class="entry_description">
3302 Whether this camera has a
3303 flash
3304 </td>
3305
3306 <td class="entry_units">
3307 boolean (0 = false,<wbr> otherwise true)
3308 </td>
3309
3310 <td class="entry_range">
3311 </td>
3312
3313 <td class="entry_notes">
3314 If no flash,<wbr> none of the flash controls do
3315 anything.<wbr> All other metadata should return 0
3316 </td>
3317
3318 <td class="entry_tags">
3319 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003320 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003321 </ul>
3322 </td>
3323
3324 </tr> <!-- end of entry -->
3325
3326
3327 <tr class="entry" id="static_android.flash.info.chargeDuration">
3328 <td class="entry_name">android.<wbr>flash.<wbr>info.<wbr>charge<wbr>Duration</td>
3329 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003330 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003331
3332
3333
3334
3335 </td> <!-- entry_type -->
3336
3337 <td class="entry_description">
3338 Time taken before flash can fire
3339 again
3340 </td>
3341
3342 <td class="entry_units">
3343 nanoseconds
3344 </td>
3345
3346 <td class="entry_range">
3347 0-1e9
3348 </td>
3349
3350 <td class="entry_notes">
3351 1 second too long/<wbr>too short for recharge? Should
3352 this be power-dependent?
3353 </td>
3354
3355 <td class="entry_tags">
3356 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003357 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003358 </ul>
3359 </td>
3360
3361 </tr> <!-- end of entry -->
3362
3363
3364
3365
3366
3367 <tr class="entry" id="static_android.flash.colorTemperature">
3368 <td class="entry_name">android.<wbr>flash.<wbr>color<wbr>Temperature</td>
3369 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003370 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003371
3372
3373
3374
3375 </td> <!-- entry_type -->
3376
3377 <td class="entry_description">
3378 The x,<wbr>y whitepoint of the
3379 flash
3380 </td>
3381
3382 <td class="entry_units">
3383 pair of floats
3384 </td>
3385
3386 <td class="entry_range">
3387 0-1 for both
3388 </td>
3389
3390 <td class="entry_notes">
3391 </td>
3392
3393 <td class="entry_tags">
3394 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003395 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003396 </ul>
3397 </td>
3398
3399 </tr> <!-- end of entry -->
3400
3401
3402 <tr class="entry" id="static_android.flash.maxEnergy">
3403 <td class="entry_name">android.<wbr>flash.<wbr>max<wbr>Energy</td>
3404 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003405 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003406
3407
3408
3409
3410 </td> <!-- entry_type -->
3411
3412 <td class="entry_description">
3413 Max energy output of the flash for a full
3414 power single flash
3415 </td>
3416
3417 <td class="entry_units">
3418 lumen-seconds
3419 </td>
3420
3421 <td class="entry_range">
3422 >= 0
3423 </td>
3424
3425 <td class="entry_notes">
3426 </td>
3427
3428 <td class="entry_tags">
3429 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003430 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003431 </ul>
3432 </td>
3433
3434 </tr> <!-- end of entry -->
3435
3436
3437
3438 <!-- end of kind -->
3439 </tbody>
3440 <tr><td colspan="7" class="kind">dynamic</td></tr>
3441
3442 <thead>
3443 <tr>
3444 <th class="th_name">Property Name</th>
3445 <th class="th_type">Type</th>
3446 <th class="th_description">Description</th>
3447 <th class="th_units">Units</th>
3448 <th class="th_range">Range</th>
3449 <th class="th_notes">Notes</th>
3450 <th class="th_tags">Tags</th>
3451 </tr>
3452 </thead>
3453
3454 <tbody>
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465 <tr class="entry" id="dynamic_android.flash.firingPower">
3466 <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Power</td>
3467 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003468 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003469
3470
3471
3472
3473 </td> <!-- entry_type -->
3474
3475 <td class="entry_description">
3476 Power for flash firing/<wbr>torch
3477 </td>
3478
3479 <td class="entry_units">
3480 10 is max power; 0 is no flash.<wbr> Linear
3481 </td>
3482
3483 <td class="entry_range">
3484 0 - 10
3485 </td>
3486
3487 <td class="entry_notes">
3488 Power for snapshot may use a different scale than
3489 for torch mode.<wbr> Only one entry for torch mode will be
3490 used
3491 </td>
3492
3493 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003494 <ul class="entry_tags">
3495 <li><a href="#tag_V1">V1</a></li>
3496 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003497 </td>
3498
3499 </tr> <!-- end of entry -->
3500
3501
3502 <tr class="entry" id="dynamic_android.flash.firingTime">
3503 <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Time</td>
3504 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003505 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003506
3507
3508
3509
3510 </td> <!-- entry_type -->
3511
3512 <td class="entry_description">
3513 Firing time of flash relative to start of
3514 exposure
3515 </td>
3516
3517 <td class="entry_units">
3518 nanoseconds
3519 </td>
3520
3521 <td class="entry_range">
3522 0-(exposure time-flash duration)
3523 </td>
3524
3525 <td class="entry_notes">
3526 Clamped to (0,<wbr> exposure time - flash
3527 duration).<wbr>
3528 </td>
3529
3530 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003531 <ul class="entry_tags">
3532 <li><a href="#tag_V1">V1</a></li>
3533 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003534 </td>
3535
3536 </tr> <!-- end of entry -->
3537
3538
3539 <tr class="entry" id="dynamic_android.flash.mode">
3540 <td class="entry_name">android.<wbr>flash.<wbr>mode</td>
3541 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003542 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003543
3544
3545
3546 <ul class="entry_type_enum">
3547 <li>
3548 <span class="entry_type_enum_name">OFF</span>
3549 <span class="entry_type_enum_notes">Do not fire the flash for this
3550 capture</span>
3551 </li>
3552 <li>
3553 <span class="entry_type_enum_name">SINGLE</span>
3554 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Fire flash
3555 for this capture based on firingPower,<wbr>
3556 firingTime.<wbr></span>
3557 </li>
3558 <li>
3559 <span class="entry_type_enum_name">TORCH</span>
3560 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash
3561 continuously on,<wbr> power set by
3562 firingPower</span>
3563 </li>
3564 </ul>
3565
3566 </td> <!-- entry_type -->
3567
3568 <td class="entry_description">
3569 Select flash operation mode
3570 </td>
3571
3572 <td class="entry_units">
3573 </td>
3574
3575 <td class="entry_range">
3576 </td>
3577
3578 <td class="entry_notes">
3579 </td>
3580
3581 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003582 <ul class="entry_tags">
3583 <li><a href="#tag_BC">BC</a></li>
3584 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003585 </td>
3586
3587 </tr> <!-- end of entry -->
3588
3589
3590 <tr class="entry" id="dynamic_android.flash.state">
3591 <td class="entry_name">android.<wbr>flash.<wbr>state</td>
3592 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003593 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003594
3595
3596
3597 <ul class="entry_type_enum">
3598 <li>
3599 <span class="entry_type_enum_name">UNAVAILABLE</span>
3600 <span class="entry_type_enum_notes">No flash on camera</span>
3601 </li>
3602 <li>
3603 <span class="entry_type_enum_name">CHARGING</span>
3604 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash is
3605 charging and cannot be fired</span>
3606 </li>
3607 <li>
3608 <span class="entry_type_enum_name">READY</span>
3609 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash is
3610 ready to fire</span>
3611 </li>
3612 <li>
3613 <span class="entry_type_enum_name">FIRED</span>
3614 <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash fired
3615 for this capture</span>
3616 </li>
3617 </ul>
3618
3619 </td> <!-- entry_type -->
3620
3621 <td class="entry_description">
3622 Current state of the flash
3623 unit
3624 </td>
3625
3626 <td class="entry_units">
3627 </td>
3628
3629 <td class="entry_range">
3630 </td>
3631
3632 <td class="entry_notes">
3633 </td>
3634
3635 <td class="entry_tags">
3636 </td>
3637
3638 </tr> <!-- end of entry -->
3639
3640
3641
3642 <!-- end of kind -->
3643 </tbody>
3644
3645 <!-- end of section -->
3646 <tr><td colspan="7" id="section_geometric" class="section">geometric</td></tr>
3647
3648
3649 <tr><td colspan="7" class="kind">controls</td></tr>
3650
3651 <thead>
3652 <tr>
3653 <th class="th_name">Property Name</th>
3654 <th class="th_type">Type</th>
3655 <th class="th_description">Description</th>
3656 <th class="th_units">Units</th>
3657 <th class="th_range">Range</th>
3658 <th class="th_notes">Notes</th>
3659 <th class="th_tags">Tags</th>
3660 </tr>
3661 </thead>
3662
3663 <tbody>
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674 <tr class="entry" id="controls_android.geometric.mode">
3675 <td class="entry_name">android.<wbr>geometric.<wbr>mode</td>
3676 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003677 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003678
3679
3680
3681 <ul class="entry_type_enum">
3682 <li>
3683 <span class="entry_type_enum_name">OFF</span>
3684 <span class="entry_type_enum_notes">No geometric correction is
3685 applied</span>
3686 </li>
3687 <li>
3688 <span class="entry_type_enum_name">FAST</span>
3689 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
3690 bayer output</span>
3691 </li>
3692 <li>
3693 <span class="entry_type_enum_name">HIGH_QUALITY</span>
3694 <span class="entry_type_enum_notes">Frame rate may be reduced by high
3695 quality</span>
3696 </li>
3697 </ul>
3698
3699 </td> <!-- entry_type -->
3700
3701 <td class="entry_description">
3702 Operating mode of geometric
3703 correction
3704 </td>
3705
3706 <td class="entry_units">
3707 </td>
3708
3709 <td class="entry_range">
3710 </td>
3711
3712 <td class="entry_notes">
3713 </td>
3714
3715 <td class="entry_tags">
3716 </td>
3717
3718 </tr> <!-- end of entry -->
3719
3720
3721 <tr class="entry" id="controls_android.geometric.strength">
3722 <td class="entry_name">android.<wbr>geometric.<wbr>strength</td>
3723 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003724 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003725
3726
3727
3728
3729 </td> <!-- entry_type -->
3730
3731 <td class="entry_description">
3732 Control the amount of shading correction
3733 applied to the images
3734 </td>
3735
3736 <td class="entry_units">
3737 unitless: 1-10; 10 is full shading
3738 compensation
3739 </td>
3740
3741 <td class="entry_range">
3742 </td>
3743
3744 <td class="entry_notes">
3745 </td>
3746
3747 <td class="entry_tags">
3748 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003749 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003750 </ul>
3751 </td>
3752
3753 </tr> <!-- end of entry -->
3754
3755
3756
3757 <!-- end of kind -->
3758 </tbody>
3759
3760 <!-- end of section -->
3761 <tr><td colspan="7" id="section_hotPixel" class="section">hotPixel</td></tr>
3762
3763
3764 <tr><td colspan="7" class="kind">controls</td></tr>
3765
3766 <thead>
3767 <tr>
3768 <th class="th_name">Property Name</th>
3769 <th class="th_type">Type</th>
3770 <th class="th_description">Description</th>
3771 <th class="th_units">Units</th>
3772 <th class="th_range">Range</th>
3773 <th class="th_notes">Notes</th>
3774 <th class="th_tags">Tags</th>
3775 </tr>
3776 </thead>
3777
3778 <tbody>
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789 <tr class="entry" id="controls_android.hotPixel.mode">
3790 <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>mode</td>
3791 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003792 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003793
3794
3795
3796 <ul class="entry_type_enum">
3797 <li>
3798 <span class="entry_type_enum_name">OFF</span>
3799 <span class="entry_type_enum_notes">No hot pixel correction can be
3800 applied</span>
3801 </li>
3802 <li>
3803 <span class="entry_type_enum_name">FAST</span>
3804 <span class="entry_type_enum_notes">Frame rate must not be reduced compared to raw
3805 Bayer output</span>
3806 </li>
3807 <li>
3808 <span class="entry_type_enum_name">HIGH_QUALITY</span>
3809 <span class="entry_type_enum_notes">Frame rate may be reduced by high
3810 quality</span>
3811 </li>
3812 </ul>
3813
3814 </td> <!-- entry_type -->
3815
3816 <td class="entry_description">
3817 Set operational mode for hot pixel
3818 correction
3819 </td>
3820
3821 <td class="entry_units">
3822 </td>
3823
3824 <td class="entry_range">
3825 </td>
3826
3827 <td class="entry_notes">
3828 </td>
3829
3830 <td class="entry_tags">
3831 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003832 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003833 </ul>
3834 </td>
3835
3836 </tr> <!-- end of entry -->
3837
3838
3839
3840 <!-- end of kind -->
3841 </tbody>
3842 <tr><td colspan="7" class="kind">static</td></tr>
3843
3844 <thead>
3845 <tr>
3846 <th class="th_name">Property Name</th>
3847 <th class="th_type">Type</th>
3848 <th class="th_description">Description</th>
3849 <th class="th_units">Units</th>
3850 <th class="th_range">Range</th>
3851 <th class="th_notes">Notes</th>
3852 <th class="th_tags">Tags</th>
3853 </tr>
3854 </thead>
3855
3856 <tbody>
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869 <tr class="entry" id="static_android.hotPixel.info.map">
3870 <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>info.<wbr>map</td>
3871 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003872 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003873 <span class="entry_type_container">x</span>
3874
3875 <span class="entry_type_array">
3876 2 x n
3877 </span>
3878
3879 <div class="entry_type_notes">list of coordinates based on android.<wbr>sensor.<wbr>pixel<wbr>Array<wbr>Size</div>
3880
3881
3882 </td> <!-- entry_type -->
3883
3884 <td class="entry_description">
3885 Location of hot/<wbr>defective pixels on
3886 sensor
3887 </td>
3888
3889 <td class="entry_units">
3890 </td>
3891
3892 <td class="entry_range">
3893 </td>
3894
3895 <td class="entry_notes">
3896 </td>
3897
3898 <td class="entry_tags">
3899 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003900 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003901 </ul>
3902 </td>
3903
3904 </tr> <!-- end of entry -->
3905
3906
3907
3908
3909
3910
3911 <!-- end of kind -->
3912 </tbody>
3913 <tr><td colspan="7" class="kind">dynamic</td></tr>
3914
3915 <thead>
3916 <tr>
3917 <th class="th_name">Property Name</th>
3918 <th class="th_type">Type</th>
3919 <th class="th_description">Description</th>
3920 <th class="th_units">Units</th>
3921 <th class="th_range">Range</th>
3922 <th class="th_notes">Notes</th>
3923 <th class="th_tags">Tags</th>
3924 </tr>
3925 </thead>
3926
3927 <tbody>
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938 <tr class="entry" id="dynamic_android.hotPixel.mode">
3939 <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>mode</td>
3940 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003941 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003942
3943
3944
3945 <ul class="entry_type_enum">
3946 <li>
3947 <span class="entry_type_enum_name">OFF</span>
3948 <span class="entry_type_enum_notes">No hot pixel correction can be
3949 applied</span>
3950 </li>
3951 <li>
3952 <span class="entry_type_enum_name">FAST</span>
3953 <span class="entry_type_enum_notes">Frame rate must not be reduced compared to raw
3954 Bayer output</span>
3955 </li>
3956 <li>
3957 <span class="entry_type_enum_name">HIGH_QUALITY</span>
3958 <span class="entry_type_enum_notes">Frame rate may be reduced by high
3959 quality</span>
3960 </li>
3961 </ul>
3962
3963 </td> <!-- entry_type -->
3964
3965 <td class="entry_description">
3966 Set operational mode for hot pixel
3967 correction
3968 </td>
3969
3970 <td class="entry_units">
3971 </td>
3972
3973 <td class="entry_range">
3974 </td>
3975
3976 <td class="entry_notes">
3977 </td>
3978
3979 <td class="entry_tags">
3980 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003981 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003982 </ul>
3983 </td>
3984
3985 </tr> <!-- end of entry -->
3986
3987
3988
3989 <!-- end of kind -->
3990 </tbody>
3991
3992 <!-- end of section -->
3993 <tr><td colspan="7" id="section_jpeg" class="section">jpeg</td></tr>
3994
3995
3996 <tr><td colspan="7" class="kind">controls</td></tr>
3997
3998 <thead>
3999 <tr>
4000 <th class="th_name">Property Name</th>
4001 <th class="th_type">Type</th>
4002 <th class="th_description">Description</th>
4003 <th class="th_units">Units</th>
4004 <th class="th_range">Range</th>
4005 <th class="th_notes">Notes</th>
4006 <th class="th_tags">Tags</th>
4007 </tr>
4008 </thead>
4009
4010 <tbody>
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
4022 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Coordinates</td>
4023 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004024 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004025 <span class="entry_type_container">x</span>
4026
4027 <span class="entry_type_array">
4028 3
4029 </span>
4030
4031 <div class="entry_type_notes">latitude,<wbr> longitude,<wbr> altitude.<wbr> First two in degrees,<wbr> the third in meters</div>
4032
4033
4034 </td> <!-- entry_type -->
4035
4036 <td class="entry_description">
4037 GPS coordinates to include in output JPEG
4038 EXIF
4039 </td>
4040
4041 <td class="entry_units">
4042 </td>
4043
4044 <td class="entry_range">
4045 (-180 - 180],<wbr> [-90,<wbr>90],<wbr> [-inf,<wbr> inf]
4046 </td>
4047
4048 <td class="entry_notes">
4049 </td>
4050
4051 <td class="entry_tags">
4052 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004053 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004054 </ul>
4055 </td>
4056
4057 </tr> <!-- end of entry -->
4058
4059
4060 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
4061 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Processing<wbr>Method</td>
4062 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004063 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004064
4065
4066
4067
4068 </td> <!-- entry_type -->
4069
4070 <td class="entry_description">
4071 32 characters describing GPS algorithm to
4072 include in EXIF
4073 </td>
4074
4075 <td class="entry_units">
4076 UTF-8 null-terminated string
4077 </td>
4078
4079 <td class="entry_range">
4080 </td>
4081
4082 <td class="entry_notes">
4083 </td>
4084
4085 <td class="entry_tags">
4086 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004087 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004088 </ul>
4089 </td>
4090
4091 </tr> <!-- end of entry -->
4092
4093
4094 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
4095 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Timestamp</td>
4096 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004097 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004098
4099
4100
4101
4102 </td> <!-- entry_type -->
4103
4104 <td class="entry_description">
4105 Time GPS fix was made to include in
4106 EXIF
4107 </td>
4108
4109 <td class="entry_units">
4110 UTC in seconds since January 1,<wbr> 1970
4111 </td>
4112
4113 <td class="entry_range">
4114 </td>
4115
4116 <td class="entry_notes">
4117 </td>
4118
4119 <td class="entry_tags">
4120 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004121 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004122 </ul>
4123 </td>
4124
4125 </tr> <!-- end of entry -->
4126
4127
4128 <tr class="entry" id="controls_android.jpeg.orientation">
4129 <td class="entry_name">android.<wbr>jpeg.<wbr>orientation</td>
4130 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004131 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004132
4133
4134
4135
4136 </td> <!-- entry_type -->
4137
4138 <td class="entry_description">
4139 Orientation of JPEG image to
4140 write
4141 </td>
4142
4143 <td class="entry_units">
4144 Degrees in multiples of 90
4145 </td>
4146
4147 <td class="entry_range">
4148 0,<wbr> 90,<wbr> 180,<wbr> 270
4149 </td>
4150
4151 <td class="entry_notes">
4152 </td>
4153
4154 <td class="entry_tags">
4155 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004156 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004157 </ul>
4158 </td>
4159
4160 </tr> <!-- end of entry -->
4161
4162
4163 <tr class="entry" id="controls_android.jpeg.quality">
4164 <td class="entry_name">android.<wbr>jpeg.<wbr>quality</td>
4165 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004166 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004167
4168
4169
4170
4171 </td> <!-- entry_type -->
4172
4173 <td class="entry_description">
4174 Compression quality of the final JPEG
4175 image
4176 </td>
4177
4178 <td class="entry_units">
4179 </td>
4180
4181 <td class="entry_range">
4182 1-100; larger is higher quality
4183 </td>
4184
4185 <td class="entry_notes">
4186 85-95 is typical usage range
4187 </td>
4188
4189 <td class="entry_tags">
4190 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004191 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004192 </ul>
4193 </td>
4194
4195 </tr> <!-- end of entry -->
4196
4197
4198 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
4199 <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Quality</td>
4200 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004201 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004202
4203
4204
4205
4206 </td> <!-- entry_type -->
4207
4208 <td class="entry_description">
4209 Compression quality of JPEG
4210 thumbnail
4211 </td>
4212
4213 <td class="entry_units">
4214 </td>
4215
4216 <td class="entry_range">
4217 1-100; larger is higher quality
4218 </td>
4219
4220 <td class="entry_notes">
4221 </td>
4222
4223 <td class="entry_tags">
4224 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004225 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004226 </ul>
4227 </td>
4228
4229 </tr> <!-- end of entry -->
4230
4231
4232 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
4233 <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Size</td>
4234 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004235 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004236 <span class="entry_type_container">x</span>
4237
4238 <span class="entry_type_array">
4239 2
4240 </span>
4241
4242
4243
4244 </td> <!-- entry_type -->
4245
4246 <td class="entry_description">
4247 Resolution of embedded JPEG
4248 thumbnail
4249 </td>
4250
4251 <td class="entry_units">
4252 </td>
4253
4254 <td class="entry_range">
4255 from android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes
4256 </td>
4257
4258 <td class="entry_notes">
4259 </td>
4260
4261 <td class="entry_tags">
4262 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004263 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004264 </ul>
4265 </td>
4266
4267 </tr> <!-- end of entry -->
4268
4269
4270
4271 <!-- end of kind -->
4272 </tbody>
4273 <tr><td colspan="7" class="kind">static</td></tr>
4274
4275 <thead>
4276 <tr>
4277 <th class="th_name">Property Name</th>
4278 <th class="th_type">Type</th>
4279 <th class="th_description">Description</th>
4280 <th class="th_units">Units</th>
4281 <th class="th_range">Range</th>
4282 <th class="th_notes">Notes</th>
4283 <th class="th_tags">Tags</th>
4284 </tr>
4285 </thead>
4286
4287 <tbody>
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
4299 <td class="entry_name">android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes</td>
4300 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004301 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004302 <span class="entry_type_container">x</span>
4303
4304 <span class="entry_type_array">
4305 2 x n
4306 </span>
4307
4308 <div class="entry_type_notes">list of resolution pairs</div>
4309
4310
4311 </td> <!-- entry_type -->
4312
4313 <td class="entry_description">
4314 Supported resolutions for the JPEG
4315 thumbnail
4316 </td>
4317
4318 <td class="entry_units">
4319 </td>
4320
4321 <td class="entry_range">
4322 Must include at least one valid resolution,<wbr> plus
4323 (0,<wbr>0) for no thumbnail generation
4324 </td>
4325
4326 <td class="entry_notes">
4327 </td>
4328
4329 <td class="entry_tags">
4330 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004331 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004332 </ul>
4333 </td>
4334
4335 </tr> <!-- end of entry -->
4336
4337
4338 <tr class="entry" id="static_android.jpeg.maxSize">
4339 <td class="entry_name">android.<wbr>jpeg.<wbr>max<wbr>Size</td>
4340 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004341 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004342
4343
4344
4345
4346 </td> <!-- entry_type -->
4347
4348 <td class="entry_description">
4349 Maximum size in bytes for the compressed
4350 JPEG buffer
4351 </td>
4352
4353 <td class="entry_units">
4354 </td>
4355
4356 <td class="entry_range">
4357 Must be large enough to fit any JPEG produced by
4358 the camera
4359 </td>
4360
4361 <td class="entry_notes">
4362 This is used for sizing the gralloc buffers for
4363 JPEG
4364 </td>
4365
4366 <td class="entry_tags">
4367 </td>
4368
4369 </tr> <!-- end of entry -->
4370
4371
4372
4373 <!-- end of kind -->
4374 </tbody>
4375 <tr><td colspan="7" class="kind">dynamic</td></tr>
4376
4377 <thead>
4378 <tr>
4379 <th class="th_name">Property Name</th>
4380 <th class="th_type">Type</th>
4381 <th class="th_description">Description</th>
4382 <th class="th_units">Units</th>
4383 <th class="th_range">Range</th>
4384 <th class="th_notes">Notes</th>
4385 <th class="th_tags">Tags</th>
4386 </tr>
4387 </thead>
4388
4389 <tbody>
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
4401 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Coordinates</td>
4402 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004403 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004404 <span class="entry_type_container">x</span>
4405
4406 <span class="entry_type_array">
4407 3
4408 </span>
4409
4410 <div class="entry_type_notes">latitude,<wbr> longitude,<wbr> altitude.<wbr> First two in degrees,<wbr> the third in meters</div>
4411
4412
4413 </td> <!-- entry_type -->
4414
4415 <td class="entry_description">
4416 GPS coordinates to include in output JPEG
4417 EXIF
4418 </td>
4419
4420 <td class="entry_units">
4421 </td>
4422
4423 <td class="entry_range">
4424 (-180 - 180],<wbr> [-90,<wbr>90],<wbr> [-inf,<wbr> inf]
4425 </td>
4426
4427 <td class="entry_notes">
4428 </td>
4429
4430 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004431 <ul class="entry_tags">
4432 <li><a href="#tag_BC">BC</a></li>
4433 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004434 </td>
4435
4436 </tr> <!-- end of entry -->
4437
4438
4439 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
4440 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Processing<wbr>Method</td>
4441 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004442 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004443
4444
4445
4446
4447 </td> <!-- entry_type -->
4448
4449 <td class="entry_description">
4450 32 characters describing GPS algorithm to
4451 include in EXIF
4452 </td>
4453
4454 <td class="entry_units">
4455 UTF-8 null-terminated string
4456 </td>
4457
4458 <td class="entry_range">
4459 </td>
4460
4461 <td class="entry_notes">
4462 </td>
4463
4464 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004465 <ul class="entry_tags">
4466 <li><a href="#tag_BC">BC</a></li>
4467 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004468 </td>
4469
4470 </tr> <!-- end of entry -->
4471
4472
4473 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
4474 <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Timestamp</td>
4475 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004476 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004477
4478
4479
4480
4481 </td> <!-- entry_type -->
4482
4483 <td class="entry_description">
4484 Time GPS fix was made to include in
4485 EXIF
4486 </td>
4487
4488 <td class="entry_units">
4489 UTC in seconds since January 1,<wbr> 1970
4490 </td>
4491
4492 <td class="entry_range">
4493 </td>
4494
4495 <td class="entry_notes">
4496 </td>
4497
4498 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004499 <ul class="entry_tags">
4500 <li><a href="#tag_BC">BC</a></li>
4501 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004502 </td>
4503
4504 </tr> <!-- end of entry -->
4505
4506
4507 <tr class="entry" id="dynamic_android.jpeg.orientation">
4508 <td class="entry_name">android.<wbr>jpeg.<wbr>orientation</td>
4509 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004510 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004511
4512
4513
4514
4515 </td> <!-- entry_type -->
4516
4517 <td class="entry_description">
4518 Orientation of JPEG image to
4519 write
4520 </td>
4521
4522 <td class="entry_units">
4523 Degrees in multiples of 90
4524 </td>
4525
4526 <td class="entry_range">
4527 0,<wbr> 90,<wbr> 180,<wbr> 270
4528 </td>
4529
4530 <td class="entry_notes">
4531 </td>
4532
4533 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004534 <ul class="entry_tags">
4535 <li><a href="#tag_BC">BC</a></li>
4536 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004537 </td>
4538
4539 </tr> <!-- end of entry -->
4540
4541
4542 <tr class="entry" id="dynamic_android.jpeg.quality">
4543 <td class="entry_name">android.<wbr>jpeg.<wbr>quality</td>
4544 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004545 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004546
4547
4548
4549
4550 </td> <!-- entry_type -->
4551
4552 <td class="entry_description">
4553 Compression quality of the final JPEG
4554 image
4555 </td>
4556
4557 <td class="entry_units">
4558 </td>
4559
4560 <td class="entry_range">
4561 1-100; larger is higher quality
4562 </td>
4563
4564 <td class="entry_notes">
4565 85-95 is typical usage range
4566 </td>
4567
4568 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004569 <ul class="entry_tags">
4570 <li><a href="#tag_BC">BC</a></li>
4571 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004572 </td>
4573
4574 </tr> <!-- end of entry -->
4575
4576
4577 <tr class="entry" id="dynamic_android.jpeg.size">
4578 <td class="entry_name">android.<wbr>jpeg.<wbr>size</td>
4579 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004580 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004581
4582
4583
4584
4585 </td> <!-- entry_type -->
4586
4587 <td class="entry_description">
4588 The size of the compressed JPEG image,<wbr> in
4589 bytes
4590 </td>
4591
4592 <td class="entry_units">
4593 </td>
4594
4595 <td class="entry_range">
4596 >= 0
4597 </td>
4598
4599 <td class="entry_notes">
4600 If no JPEG output is produced for the request,<wbr>
4601 this must be 0.<wbr> Otherwise,<wbr> this describes the real size
4602 of the compressed JPEG image placed in the output stream.<wbr>
4603 More specifically,<wbr> if android.<wbr>jpeg.<wbr>max<wbr>Size = 1000000,<wbr> and
4604 a specific capture has android.<wbr>jpeg.<wbr>size = 500000,<wbr> then
4605 the output buffer from the JPEG stream will be 1000000
4606 bytes,<wbr> of which the first 500000 make up the real
4607 data.<wbr>
4608 </td>
4609
4610 <td class="entry_tags">
4611 </td>
4612
4613 </tr> <!-- end of entry -->
4614
4615
4616 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
4617 <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Quality</td>
4618 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004619 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004620
4621
4622
4623
4624 </td> <!-- entry_type -->
4625
4626 <td class="entry_description">
4627 Compression quality of JPEG
4628 thumbnail
4629 </td>
4630
4631 <td class="entry_units">
4632 </td>
4633
4634 <td class="entry_range">
4635 1-100; larger is higher quality
4636 </td>
4637
4638 <td class="entry_notes">
4639 </td>
4640
4641 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004642 <ul class="entry_tags">
4643 <li><a href="#tag_BC">BC</a></li>
4644 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004645 </td>
4646
4647 </tr> <!-- end of entry -->
4648
4649
4650 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
4651 <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Size</td>
4652 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004653 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004654 <span class="entry_type_container">x</span>
4655
4656 <span class="entry_type_array">
4657 2
4658 </span>
4659
4660
4661
4662 </td> <!-- entry_type -->
4663
4664 <td class="entry_description">
4665 Resolution of embedded JPEG
4666 thumbnail
4667 </td>
4668
4669 <td class="entry_units">
4670 </td>
4671
4672 <td class="entry_range">
4673 from android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes
4674 </td>
4675
4676 <td class="entry_notes">
4677 </td>
4678
4679 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004680 <ul class="entry_tags">
4681 <li><a href="#tag_BC">BC</a></li>
4682 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004683 </td>
4684
4685 </tr> <!-- end of entry -->
4686
4687
4688
4689 <!-- end of kind -->
4690 </tbody>
4691
4692 <!-- end of section -->
4693 <tr><td colspan="7" id="section_lens" class="section">lens</td></tr>
4694
4695
4696 <tr><td colspan="7" class="kind">controls</td></tr>
4697
4698 <thead>
4699 <tr>
4700 <th class="th_name">Property Name</th>
4701 <th class="th_type">Type</th>
4702 <th class="th_description">Description</th>
4703 <th class="th_units">Units</th>
4704 <th class="th_range">Range</th>
4705 <th class="th_notes">Notes</th>
4706 <th class="th_tags">Tags</th>
4707 </tr>
4708 </thead>
4709
4710 <tbody>
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721 <tr class="entry" id="controls_android.lens.aperture">
4722 <td class="entry_name">android.<wbr>lens.<wbr>aperture</td>
4723 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004724 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004725
4726
4727
4728
4729 </td> <!-- entry_type -->
4730
4731 <td class="entry_description">
4732 Size of the lens aperture
4733 </td>
4734
4735 <td class="entry_units">
4736 f-number (f/<wbr>NNN)
4737 </td>
4738
4739 <td class="entry_range">
4740 android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures
4741 </td>
4742
4743 <td class="entry_notes">
4744 Will not be supported on most devices.<wbr> Can only
4745 pick from supported list
4746 </td>
4747
4748 <td class="entry_tags">
4749 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004750 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004751 </ul>
4752 </td>
4753
4754 </tr> <!-- end of entry -->
4755
4756
4757 <tr class="entry" id="controls_android.lens.filterDensity">
4758 <td class="entry_name">android.<wbr>lens.<wbr>filter<wbr>Density</td>
4759 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004760 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004761
4762
4763
4764
4765 </td> <!-- entry_type -->
4766
4767 <td class="entry_description">
4768 State of lens neutral density
4769 filter(s)
4770 </td>
4771
4772 <td class="entry_units">
4773 number of stops of filtering
4774 </td>
4775
4776 <td class="entry_range">
4777 android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities
4778 </td>
4779
4780 <td class="entry_notes">
4781 Will not be supported on most devices.<wbr> Can only
4782 pick from supported list
4783 </td>
4784
4785 <td class="entry_tags">
4786 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004787 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004788 </ul>
4789 </td>
4790
4791 </tr> <!-- end of entry -->
4792
4793
4794 <tr class="entry" id="controls_android.lens.focalLength">
4795 <td class="entry_name">android.<wbr>lens.<wbr>focal<wbr>Length</td>
4796 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004797 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004798
4799
4800
4801
4802 </td> <!-- entry_type -->
4803
4804 <td class="entry_description">
4805 Lens optical zoom setting
4806 </td>
4807
4808 <td class="entry_units">
4809 focal length in mm
4810 </td>
4811
4812 <td class="entry_range">
4813 > 0
4814 </td>
4815
4816 <td class="entry_notes">
4817 Will not be supported on most devices.<wbr>
4818 </td>
4819
4820 <td class="entry_tags">
4821 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004822 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004823 </ul>
4824 </td>
4825
4826 </tr> <!-- end of entry -->
4827
4828
4829 <tr class="entry" id="controls_android.lens.focusDistance">
4830 <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Distance</td>
4831 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004832 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004833
4834
4835
4836
4837 </td> <!-- entry_type -->
4838
4839 <td class="entry_description">
4840 Distance to plane of sharpest focus,<wbr>
4841 measured from frontmost surface of the lens
4842 </td>
4843
4844 <td class="entry_units">
4845 diopters (1/<wbr>m)
4846 </td>
4847
4848 <td class="entry_range">
4849 >= 0
4850 </td>
4851
4852 <td class="entry_notes">
4853 0 = infinity focus.<wbr> Used value should be clamped
4854 to (0,<wbr>minimum focus distance)
4855 </td>
4856
4857 <td class="entry_tags">
4858 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004859 <li><a href="#tag_BC">BC</a></li>
4860 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004861 </ul>
4862 </td>
4863
4864 </tr> <!-- end of entry -->
4865
4866
4867 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
4868 <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Stabilization<wbr>Mode</td>
4869 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004870 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004871
4872
4873
4874 <ul class="entry_type_enum">
4875 <li>
4876 <span class="entry_type_enum_name">OFF</span>
4877 </li>
4878 <li>
4879 <span class="entry_type_enum_name">ON</span>
4880 <span class="entry_type_enum_optional">optional</span>
4881 </li>
4882 </ul>
4883
4884 </td> <!-- entry_type -->
4885
4886 <td class="entry_description">
4887 Whether optical image stabilization is
4888 enabled.<wbr>
4889 </td>
4890
4891 <td class="entry_units">
4892 </td>
4893
4894 <td class="entry_range">
4895 android.<wbr>lens.<wbr>available<wbr>Optical<wbr>Stabilization
4896 </td>
4897
4898 <td class="entry_notes">
4899 Will not be supported on most devices.<wbr>
4900 </td>
4901
4902 <td class="entry_tags">
4903 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004904 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004905 </ul>
4906 </td>
4907
4908 </tr> <!-- end of entry -->
4909
4910
4911
4912 <!-- end of kind -->
4913 </tbody>
4914 <tr><td colspan="7" class="kind">static</td></tr>
4915
4916 <thead>
4917 <tr>
4918 <th class="th_name">Property Name</th>
4919 <th class="th_type">Type</th>
4920 <th class="th_description">Description</th>
4921 <th class="th_units">Units</th>
4922 <th class="th_range">Range</th>
4923 <th class="th_notes">Notes</th>
4924 <th class="th_tags">Tags</th>
4925 </tr>
4926 </thead>
4927
4928 <tbody>
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941 <tr class="entry" id="static_android.lens.info.availableApertures">
4942 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures</td>
4943 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004944 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004945 <span class="entry_type_container">x</span>
4946
4947 <span class="entry_type_array">
4948 n
4949 </span>
4950
4951
4952
4953 </td> <!-- entry_type -->
4954
4955 <td class="entry_description">
4956 List of supported aperture
4957 values
4958 </td>
4959
4960 <td class="entry_units">
4961 </td>
4962
4963 <td class="entry_range">
4964 one entry required,<wbr> > 0
4965 </td>
4966
4967 <td class="entry_notes">
4968 If variable aperture not available,<wbr> only setting
4969 should be for the fixed aperture
4970 </td>
4971
4972 <td class="entry_tags">
4973 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004974 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004975 </ul>
4976 </td>
4977
4978 </tr> <!-- end of entry -->
4979
4980
4981 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
4982 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities</td>
4983 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004984 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004985 <span class="entry_type_container">x</span>
4986
4987 <span class="entry_type_array">
4988 n
4989 </span>
4990
4991
4992
4993 </td> <!-- entry_type -->
4994
4995 <td class="entry_description">
4996 List of supported ND filter
4997 values
4998 </td>
4999
5000 <td class="entry_units">
5001 </td>
5002
5003 <td class="entry_range">
5004 one entry required,<wbr> >= 0
5005 </td>
5006
5007 <td class="entry_notes">
5008 If not available,<wbr> only setting is 0.<wbr> Otherwise,<wbr>
5009 lists the available exposure index values for dimming
5010 (2 would mean the filter is set to reduce incoming
5011 light by two stops)
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_V1">V1</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.availableFocalLengths">
5024 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Focal<wbr>Lengths</td>
5025 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005026 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005027 <span class="entry_type_container">x</span>
5028
5029 <span class="entry_type_array">
5030 n
5031 </span>
5032
5033 <div class="entry_type_notes">the list of available focal lengths</div>
5034
5035
5036 </td> <!-- entry_type -->
5037
5038 <td class="entry_description">
5039 If fitted with optical zoom,<wbr> what focal
5040 lengths are available.<wbr> If not,<wbr> the static focal
5041 length
5042 </td>
5043
5044 <td class="entry_units">
5045 </td>
5046
5047 <td class="entry_range">
5048 > 0
5049 </td>
5050
5051 <td class="entry_notes">
5052 If optical zoom not supported,<wbr> only one value
5053 should be reported
5054 </td>
5055
5056 <td class="entry_tags">
5057 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005058 <li><a href="#tag_BC">BC</a></li>
5059 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005060 </ul>
5061 </td>
5062
5063 </tr> <!-- end of entry -->
5064
5065
5066 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
5067 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Optical<wbr>Stabilization</td>
5068 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005069 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005070 <span class="entry_type_container">x</span>
5071
5072 <span class="entry_type_array">
5073 n
5074 </span>
5075
5076 <div class="entry_type_notes">list of enums</div>
5077
5078
5079 </td> <!-- entry_type -->
5080
5081 <td class="entry_description">
5082 List of supported optical image
5083 stabilization modes
5084 </td>
5085
5086 <td class="entry_units">
5087 </td>
5088
5089 <td class="entry_range">
5090 </td>
5091
5092 <td class="entry_notes">
5093 </td>
5094
5095 <td class="entry_tags">
5096 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005097 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005098 </ul>
5099 </td>
5100
5101 </tr> <!-- end of entry -->
5102
5103
5104 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
5105 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>geometric<wbr>Correction<wbr>Map</td>
5106 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005107 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005108 <span class="entry_type_container">x</span>
5109
5110 <span class="entry_type_array">
5111 2 x 3 x n x m
5112 </span>
5113
5114 <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>
5115
5116
5117 </td> <!-- entry_type -->
5118
5119 <td class="entry_description">
5120 A low-resolution map for correction of
5121 geometric distortions and chromatic aberrations,<wbr> per
5122 color channel
5123 </td>
5124
5125 <td class="entry_units">
5126 </td>
5127
5128 <td class="entry_range">
5129 N,<wbr> M >= 2
5130 </td>
5131
5132 <td class="entry_notes">
5133 [DNG wants a function instead].<wbr> What's easiest
5134 for implementers? With an array size (M,<wbr> N),<wbr> entry (i,<wbr>
5135 j) provides the destination for pixel (i/<wbr>(M-1) * width,<wbr>
5136 j/<wbr>(N-1) * height).<wbr> Data is row-major,<wbr> with each array
5137 entry being ( (X,<wbr> Y)_<wbr>r,<wbr> (X,<wbr> Y)_<wbr>g,<wbr> (X,<wbr> Y)_<wbr>b ) )
5138 </td>
5139
5140 <td class="entry_tags">
5141 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005142 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005143 </ul>
5144 </td>
5145
5146 </tr> <!-- end of entry -->
5147
5148
5149 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
5150 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>geometric<wbr>Correction<wbr>Map<wbr>Size</td>
5151 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005152 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005153 <span class="entry_type_container">x</span>
5154
5155 <span class="entry_type_array">
5156 2
5157 </span>
5158
5159 <div class="entry_type_notes">width and height of geometric correction map</div>
5160
5161
5162 </td> <!-- entry_type -->
5163
5164 <td class="entry_description">
5165 Dimensions of geometric correction
5166 map
5167 </td>
5168
5169 <td class="entry_units">
5170 </td>
5171
5172 <td class="entry_range">
5173 Both values >= 2
5174 </td>
5175
5176 <td class="entry_notes">
5177 </td>
5178
5179 <td class="entry_tags">
5180 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005181 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005182 </ul>
5183 </td>
5184
5185 </tr> <!-- end of entry -->
5186
5187
5188 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
5189 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>hyperfocal<wbr>Distance</td>
5190 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005191 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005192
5193
5194
5195
5196 </td> <!-- entry_type -->
5197
5198 <td class="entry_description">
5199 Hyperfocal distance for this lens; set to
5200 0 if fixed focus
5201 </td>
5202
5203 <td class="entry_units">
5204 diopters
5205 </td>
5206
5207 <td class="entry_range">
5208 >= 0
5209 </td>
5210
5211 <td class="entry_notes">
5212 The hyperfocal distance is used for the old
5213 API's 'fixed' setting
5214 </td>
5215
5216 <td class="entry_tags">
5217 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005218 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005219 </ul>
5220 </td>
5221
5222 </tr> <!-- end of entry -->
5223
5224
5225 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
5226 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>minimum<wbr>Focus<wbr>Distance</td>
5227 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005228 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005229
5230
5231
5232
5233 </td> <!-- entry_type -->
5234
5235 <td class="entry_description">
5236 Shortest distance from frontmost surface
5237 of the lens that can be focused correctly
5238 </td>
5239
5240 <td class="entry_units">
5241 diopters
5242 </td>
5243
5244 <td class="entry_range">
5245 >= 0
5246 </td>
5247
5248 <td class="entry_notes">
5249 If the lens is fixed-focus,<wbr> this should be
5250 0
5251 </td>
5252
5253 <td class="entry_tags">
5254 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005255 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005256 </ul>
5257 </td>
5258
5259 </tr> <!-- end of entry -->
5260
5261
5262 <tr class="entry" id="static_android.lens.info.shadingMap">
5263 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>shading<wbr>Map</td>
5264 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005265 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005266 <span class="entry_type_container">x</span>
5267
5268 <span class="entry_type_array">
5269 3 x n x m
5270 </span>
5271
5272 <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>
5273
5274
5275 </td> <!-- entry_type -->
5276
5277 <td class="entry_description">
5278 A low-resolution map of lens shading,<wbr> per
5279 color channel
5280 </td>
5281
5282 <td class="entry_units">
5283 </td>
5284
5285 <td class="entry_range">
5286 Each gain factor is >= 1
5287 </td>
5288
5289 <td class="entry_notes">
5290 Assume bilinear interpolation of map.<wbr> The least
5291 shaded section of the image should have a gain factor
5292 of 1; all other sections should have gains above
5293 1.<wbr>
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_DNG">DNG</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.info.shadingMapSize">
5306 <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>shading<wbr>Map<wbr>Size</td>
5307 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005308 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005309 <span class="entry_type_container">x</span>
5310
5311 <span class="entry_type_array">
5312 2
5313 </span>
5314
5315 <div class="entry_type_notes">width and height of lens shading map</div>
5316
5317
5318 </td> <!-- entry_type -->
5319
5320 <td class="entry_description">
5321 Dimensions of lens shading
5322 map
5323 </td>
5324
5325 <td class="entry_units">
5326 </td>
5327
5328 <td class="entry_range">
5329 Both values >= 1
5330 </td>
5331
5332 <td class="entry_notes">
5333 </td>
5334
5335 <td class="entry_tags">
5336 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005337 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005338 </ul>
5339 </td>
5340
5341 </tr> <!-- end of entry -->
5342
5343
5344
5345
5346
5347 <tr class="entry" id="static_android.lens.facing">
5348 <td class="entry_name">android.<wbr>lens.<wbr>facing</td>
5349 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005350 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005351
5352
5353
5354 <ul class="entry_type_enum">
5355 <li>
5356 <span class="entry_type_enum_name">FRONT</span>
5357 </li>
5358 <li>
5359 <span class="entry_type_enum_name">BACK</span>
5360 </li>
5361 </ul>
5362
5363 </td> <!-- entry_type -->
5364
5365 <td class="entry_description">
5366 Direction the camera faces relative to
5367 device screen
5368 </td>
5369
5370 <td class="entry_units">
5371 </td>
5372
5373 <td class="entry_range">
5374 </td>
5375
5376 <td class="entry_notes">
5377 </td>
5378
5379 <td class="entry_tags">
5380 </td>
5381
5382 </tr> <!-- end of entry -->
5383
5384
5385 <tr class="entry" id="static_android.lens.opticalAxisAngle">
5386 <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Axis<wbr>Angle</td>
5387 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005388 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005389 <span class="entry_type_container">x</span>
5390
5391 <span class="entry_type_array">
5392 2
5393 </span>
5394
5395 <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>
5396
5397
5398 </td> <!-- entry_type -->
5399
5400 <td class="entry_description">
5401 Relative angle of camera optical axis to the
5402 perpendicular axis from the display
5403 </td>
5404
5405 <td class="entry_units">
5406 </td>
5407
5408 <td class="entry_range">
5409 [0-90) for first angle,<wbr> [0-360) for second
5410 </td>
5411
5412 <td class="entry_notes">
5413 Examples: (0,<wbr>0) means that the camera optical axis
5414 is perpendicular to the display surface; (45,<wbr>0) means
5415 that the camera points 45 degrees up when device is held
5416 upright; (45,<wbr>90) means the camera points 45 degrees to
5417 the right when the device is held upright.<wbr> Use FACING
5418 field to determine perpendicular outgoing
5419 direction
5420 </td>
5421
5422 <td class="entry_tags">
5423 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005424 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005425 </ul>
5426 </td>
5427
5428 </tr> <!-- end of entry -->
5429
5430
5431 <tr class="entry" id="static_android.lens.position">
5432 <td class="entry_name">android.<wbr>lens.<wbr>position</td>
5433 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005434 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005435 <span class="entry_type_container">x</span>
5436
5437 <span class="entry_type_array">
5438 3, location in mm, in the sensor coordinate
5439 system
5440 </span>
5441
5442
5443
5444 </td> <!-- entry_type -->
5445
5446 <td class="entry_description">
5447 Coordinates of camera optical axis on
5448 device
5449 </td>
5450
5451 <td class="entry_units">
5452 </td>
5453
5454 <td class="entry_range">
5455 </td>
5456
5457 <td class="entry_notes">
5458 </td>
5459
5460 <td class="entry_tags">
5461 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005462 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005463 </ul>
5464 </td>
5465
5466 </tr> <!-- end of entry -->
5467
5468
5469
5470 <!-- end of kind -->
5471 </tbody>
5472 <tr><td colspan="7" class="kind">dynamic</td></tr>
5473
5474 <thead>
5475 <tr>
5476 <th class="th_name">Property Name</th>
5477 <th class="th_type">Type</th>
5478 <th class="th_description">Description</th>
5479 <th class="th_units">Units</th>
5480 <th class="th_range">Range</th>
5481 <th class="th_notes">Notes</th>
5482 <th class="th_tags">Tags</th>
5483 </tr>
5484 </thead>
5485
5486 <tbody>
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497 <tr class="entry" id="dynamic_android.lens.aperture">
5498 <td class="entry_name">android.<wbr>lens.<wbr>aperture</td>
5499 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005500 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005501
5502
5503
5504
5505 </td> <!-- entry_type -->
5506
5507 <td class="entry_description">
5508 Size of the lens aperture
5509 </td>
5510
5511 <td class="entry_units">
5512 f-number (f/<wbr>NNN)
5513 </td>
5514
5515 <td class="entry_range">
5516 android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures
5517 </td>
5518
5519 <td class="entry_notes">
5520 Will not be supported on most devices.<wbr> Can only
5521 pick from supported list
5522 </td>
5523
5524 <td class="entry_tags">
5525 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005526 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005527 </ul>
5528 </td>
5529
5530 </tr> <!-- end of entry -->
5531
5532
5533 <tr class="entry" id="dynamic_android.lens.filterDensity">
5534 <td class="entry_name">android.<wbr>lens.<wbr>filter<wbr>Density</td>
5535 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005536 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005537
5538
5539
5540
5541 </td> <!-- entry_type -->
5542
5543 <td class="entry_description">
5544 State of lens neutral density
5545 filter(s)
5546 </td>
5547
5548 <td class="entry_units">
5549 number of stops of filtering
5550 </td>
5551
5552 <td class="entry_range">
5553 android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities
5554 </td>
5555
5556 <td class="entry_notes">
5557 Will not be supported on most devices.<wbr> Can only
5558 pick from supported list
5559 </td>
5560
5561 <td class="entry_tags">
5562 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005563 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005564 </ul>
5565 </td>
5566
5567 </tr> <!-- end of entry -->
5568
5569
5570 <tr class="entry" id="dynamic_android.lens.focalLength">
5571 <td class="entry_name">android.<wbr>lens.<wbr>focal<wbr>Length</td>
5572 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005573 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005574
5575
5576
5577
5578 </td> <!-- entry_type -->
5579
5580 <td class="entry_description">
5581 Lens optical zoom setting
5582 </td>
5583
5584 <td class="entry_units">
5585 focal length in mm
5586 </td>
5587
5588 <td class="entry_range">
5589 > 0
5590 </td>
5591
5592 <td class="entry_notes">
5593 Will not be supported on most devices.<wbr>
5594 </td>
5595
5596 <td class="entry_tags">
5597 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005598 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005599 </ul>
5600 </td>
5601
5602 </tr> <!-- end of entry -->
5603
5604
5605 <tr class="entry" id="dynamic_android.lens.focusDistance">
5606 <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Distance</td>
5607 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005608 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005609
5610
5611
5612
5613 </td> <!-- entry_type -->
5614
5615 <td class="entry_description">
5616 Distance to plane of sharpest focus,<wbr>
5617 measured from frontmost surface of the lens
5618 </td>
5619
5620 <td class="entry_units">
5621 diopters (1/<wbr>m)
5622 </td>
5623
5624 <td class="entry_range">
5625 >= 0
5626 </td>
5627
5628 <td class="entry_notes">
5629 Should be zero for fixed-focus cameras
5630 </td>
5631
5632 <td class="entry_tags">
5633 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005634 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005635 </ul>
5636 </td>
5637
5638 </tr> <!-- end of entry -->
5639
5640
5641 <tr class="entry" id="dynamic_android.lens.focusRange">
5642 <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Range</td>
5643 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005644 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005645
5646
5647
5648
5649 </td> <!-- entry_type -->
5650
5651 <td class="entry_description">
5652 The range of scene distances that are in
5653 sharp focus (depth of field)
5654 </td>
5655
5656 <td class="entry_units">
5657 pair of focus distances in diopters: (near,<wbr>
5658 far)
5659 </td>
5660
5661 <td class="entry_range">
5662 >=0
5663 </td>
5664
5665 <td class="entry_notes">
5666 If variable focus not supported,<wbr> can still report
5667 fixed depth of field range
5668 </td>
5669
5670 <td class="entry_tags">
5671 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005672 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005673 </ul>
5674 </td>
5675
5676 </tr> <!-- end of entry -->
5677
5678
5679 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
5680 <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Stabilization<wbr>Mode</td>
5681 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005682 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005683
5684
5685
5686 <ul class="entry_type_enum">
5687 <li>
5688 <span class="entry_type_enum_name">OFF</span>
5689 </li>
5690 <li>
5691 <span class="entry_type_enum_name">ON</span>
5692 <span class="entry_type_enum_optional">optional</span>
5693 </li>
5694 </ul>
5695
5696 </td> <!-- entry_type -->
5697
5698 <td class="entry_description">
5699 Whether optical image stabilization is
5700 enabled.<wbr>
5701 </td>
5702
5703 <td class="entry_units">
5704 </td>
5705
5706 <td class="entry_range">
5707 android.<wbr>lens.<wbr>available<wbr>Optical<wbr>Stabilization
5708 </td>
5709
5710 <td class="entry_notes">
5711 Will not be supported on most devices.<wbr>
5712 </td>
5713
5714 <td class="entry_tags">
5715 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005716 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005717 </ul>
5718 </td>
5719
5720 </tr> <!-- end of entry -->
5721
5722
5723 <tr class="entry" id="dynamic_android.lens.state">
5724 <td class="entry_name">android.<wbr>lens.<wbr>state</td>
5725 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005726 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005727
5728
5729
5730 <ul class="entry_type_enum">
5731 <li>
5732 <span class="entry_type_enum_name">STATIONARY</span>
5733 </li>
5734 </ul>
5735
5736 </td> <!-- entry_type -->
5737
5738 <td class="entry_description">
5739 Current lens status
5740 </td>
5741
5742 <td class="entry_units">
5743 </td>
5744
5745 <td class="entry_range">
5746 </td>
5747
5748 <td class="entry_notes">
5749 </td>
5750
5751 <td class="entry_tags">
5752 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005753 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005754 </ul>
5755 </td>
5756
5757 </tr> <!-- end of entry -->
5758
5759
5760
5761 <!-- end of kind -->
5762 </tbody>
5763
5764 <!-- end of section -->
5765 <tr><td colspan="7" id="section_noiseReduction" class="section">noiseReduction</td></tr>
5766
5767
5768 <tr><td colspan="7" class="kind">controls</td></tr>
5769
5770 <thead>
5771 <tr>
5772 <th class="th_name">Property Name</th>
5773 <th class="th_type">Type</th>
5774 <th class="th_description">Description</th>
5775 <th class="th_units">Units</th>
5776 <th class="th_range">Range</th>
5777 <th class="th_notes">Notes</th>
5778 <th class="th_tags">Tags</th>
5779 </tr>
5780 </thead>
5781
5782 <tbody>
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793 <tr class="entry" id="controls_android.noiseReduction.mode">
5794 <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>mode</td>
5795 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005796 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005797
5798
5799
5800 <ul class="entry_type_enum">
5801 <li>
5802 <span class="entry_type_enum_name">OFF</span>
5803 <span class="entry_type_enum_notes">No noise reduction is applied</span>
5804 </li>
5805 <li>
5806 <span class="entry_type_enum_name">FAST</span>
5807 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
5808 bayer output</span>
5809 </li>
5810 <li>
5811 <span class="entry_type_enum_name">HIGH_QUALITY</span>
5812 <span class="entry_type_enum_notes">May slow down frame rate to provide highest
5813 quality</span>
5814 </li>
5815 </ul>
5816
5817 </td> <!-- entry_type -->
5818
5819 <td class="entry_description">
5820 Mode of operation for the noise reduction
5821 algorithm
5822 </td>
5823
5824 <td class="entry_units">
5825 </td>
5826
5827 <td class="entry_range">
5828 android.<wbr>noise<wbr>Reduction.<wbr>available<wbr>Modes
5829 </td>
5830
5831 <td class="entry_notes">
5832 </td>
5833
5834 <td class="entry_tags">
5835 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005836 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005837 </ul>
5838 </td>
5839
5840 </tr> <!-- end of entry -->
5841
5842
5843 <tr class="entry" id="controls_android.noiseReduction.strength">
5844 <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>strength</td>
5845 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005846 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005847
5848
5849
5850
5851 </td> <!-- entry_type -->
5852
5853 <td class="entry_description">
5854 Control the amount of noise reduction
5855 applied to the images
5856 </td>
5857
5858 <td class="entry_units">
5859 1-10; 10 is max noise reduction
5860 </td>
5861
5862 <td class="entry_range">
5863 1 - 10
5864 </td>
5865
5866 <td class="entry_notes">
5867 </td>
5868
5869 <td class="entry_tags">
5870 </td>
5871
5872 </tr> <!-- end of entry -->
5873
5874
5875
5876 <!-- end of kind -->
5877 </tbody>
5878 <tr><td colspan="7" class="kind">dynamic</td></tr>
5879
5880 <thead>
5881 <tr>
5882 <th class="th_name">Property Name</th>
5883 <th class="th_type">Type</th>
5884 <th class="th_description">Description</th>
5885 <th class="th_units">Units</th>
5886 <th class="th_range">Range</th>
5887 <th class="th_notes">Notes</th>
5888 <th class="th_tags">Tags</th>
5889 </tr>
5890 </thead>
5891
5892 <tbody>
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903 <tr class="entry" id="dynamic_android.noiseReduction.mode">
5904 <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>mode</td>
5905 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005906 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005907
5908
5909
5910 <ul class="entry_type_enum">
5911 <li>
5912 <span class="entry_type_enum_name">OFF</span>
5913 <span class="entry_type_enum_notes">No noise reduction is applied</span>
5914 </li>
5915 <li>
5916 <span class="entry_type_enum_name">FAST</span>
5917 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
5918 bayer output</span>
5919 </li>
5920 <li>
5921 <span class="entry_type_enum_name">HIGH_QUALITY</span>
5922 <span class="entry_type_enum_notes">May slow down frame rate to provide highest
5923 quality</span>
5924 </li>
5925 </ul>
5926
5927 </td> <!-- entry_type -->
5928
5929 <td class="entry_description">
5930 Mode of operation for the noise reduction
5931 algorithm
5932 </td>
5933
5934 <td class="entry_units">
5935 </td>
5936
5937 <td class="entry_range">
5938 android.<wbr>noise<wbr>Reduction.<wbr>available<wbr>Modes
5939 </td>
5940
5941 <td class="entry_notes">
5942 </td>
5943
5944 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005945 <ul class="entry_tags">
5946 <li><a href="#tag_V1">V1</a></li>
5947 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005948 </td>
5949
5950 </tr> <!-- end of entry -->
5951
5952
5953
5954 <!-- end of kind -->
5955 </tbody>
5956
5957 <!-- end of section -->
5958 <tr><td colspan="7" id="section_quirks" class="section">quirks</td></tr>
5959
5960
5961 <tr><td colspan="7" class="kind">static</td></tr>
5962
5963 <thead>
5964 <tr>
5965 <th class="th_name">Property Name</th>
5966 <th class="th_type">Type</th>
5967 <th class="th_description">Description</th>
5968 <th class="th_units">Units</th>
5969 <th class="th_range">Range</th>
5970 <th class="th_notes">Notes</th>
5971 <th class="th_tags">Tags</th>
5972 </tr>
5973 </thead>
5974
5975 <tbody>
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986 <tr class="entry" id="static_android.quirks.meteringCropRegion">
5987 <td class="entry_name">android.<wbr>quirks.<wbr>metering<wbr>Crop<wbr>Region</td>
5988 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005989 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005990
5991
5992
5993
5994 </td> <!-- entry_type -->
5995
5996 <td class="entry_description">
5997 If set to 1,<wbr> the camera service does not
5998 scale 'normalized' coordinates with respect to the crop
5999 region.<wbr> This applies to metering input (a{e,<wbr>f,<wbr>wb}Region
6000 and output (face rectangles).<wbr>
6001 </td>
6002
6003 <td class="entry_units">
6004 </td>
6005
6006 <td class="entry_range">
6007 </td>
6008
6009 <td class="entry_notes">
6010 Normalized coordinates refer to those in the
6011 (-1000,<wbr>1000) range mentioned in the
6012 android.<wbr>hardware.<wbr><wbr>Camera API.<wbr> HAL implementations should
6013 instead always use and emit sensor array-relative
6014 coordinates for all region data.<wbr> Does not need to be
6015 listed in static metadata.<wbr> Support will be removed in
6016 future versions of camera service.<wbr>
6017 </td>
6018
6019 <td class="entry_tags">
6020 </td>
6021
6022 </tr> <!-- end of entry -->
6023
6024
6025 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
6026 <td class="entry_name">android.<wbr>quirks.<wbr>trigger<wbr>Af<wbr>With<wbr>Auto</td>
6027 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006028 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006029
6030
6031
6032
6033 </td> <!-- entry_type -->
6034
6035 <td class="entry_description">
6036 If set to 1,<wbr> then the camera service always
6037 switches to FOCUS_<wbr>MODE_<wbr>AUTO before issuing a AF
6038 trigger.<wbr>
6039 </td>
6040
6041 <td class="entry_units">
6042 </td>
6043
6044 <td class="entry_range">
6045 </td>
6046
6047 <td class="entry_notes">
6048 HAL implementations should implement AF trigger
6049 modes for AUTO,<wbr> MACRO,<wbr> CONTINUOUS_<wbr>FOCUS,<wbr> and
6050 CONTINUOUS_<wbr>PICTURE modes instead of using this flag.<wbr> Does
6051 not need to be listed in static metadata.<wbr> Support will be
6052 removed in future versions of camera service
6053 </td>
6054
6055 <td class="entry_tags">
6056 </td>
6057
6058 </tr> <!-- end of entry -->
6059
6060
6061 <tr class="entry" id="static_android.quirks.useZslFormat">
6062 <td class="entry_name">android.<wbr>quirks.<wbr>use<wbr>Zsl<wbr>Format</td>
6063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006064 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006065
6066
6067
6068
6069 </td> <!-- entry_type -->
6070
6071 <td class="entry_description">
6072 If set to 1,<wbr> the camera service uses
6073 CAMERA2_<wbr>PIXEL_<wbr>FORMAT_<wbr>ZSL instead of
6074 HAL_<wbr>PIXEL_<wbr>FORMAT_<wbr>IMPLEMENTATION_<wbr>DEFINED for the zero
6075 shutter lag stream
6076 </td>
6077
6078 <td class="entry_units">
6079 </td>
6080
6081 <td class="entry_range">
6082 </td>
6083
6084 <td class="entry_notes">
6085 HAL implementations should use gralloc usage flags
6086 to determine that a stream will be used for
6087 zero-shutter-lag,<wbr> instead of relying on an explicit
6088 format setting.<wbr> Does not need to be listed in static
6089 metadata.<wbr> Support will be removed in future versions of
6090 camera service.<wbr>
6091 </td>
6092
6093 <td class="entry_tags">
6094 </td>
6095
6096 </tr> <!-- end of entry -->
6097
6098
6099
6100 <!-- end of kind -->
6101 </tbody>
6102
6103 <!-- end of section -->
6104 <tr><td colspan="7" id="section_request" class="section">request</td></tr>
6105
6106
6107 <tr><td colspan="7" class="kind">controls</td></tr>
6108
6109 <thead>
6110 <tr>
6111 <th class="th_name">Property Name</th>
6112 <th class="th_type">Type</th>
6113 <th class="th_description">Description</th>
6114 <th class="th_units">Units</th>
6115 <th class="th_range">Range</th>
6116 <th class="th_notes">Notes</th>
6117 <th class="th_tags">Tags</th>
6118 </tr>
6119 </thead>
6120
6121 <tbody>
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132 <tr class="entry" id="controls_android.request.frameCount">
6133 <td class="entry_name">android.<wbr>request.<wbr>frame<wbr>Count</td>
6134 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006135 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006136
6137
6138
6139
6140 </td> <!-- entry_type -->
6141
6142 <td class="entry_description">
6143 A frame counter set by the framework.<wbr> Must
6144 be maintained unchanged in output frame
6145 </td>
6146
6147 <td class="entry_units">
6148 incrementing integer
6149 </td>
6150
6151 <td class="entry_range">
6152 Any int
6153 </td>
6154
6155 <td class="entry_notes">
6156 </td>
6157
6158 <td class="entry_tags">
6159 </td>
6160
6161 </tr> <!-- end of entry -->
6162
6163
6164 <tr class="entry" id="controls_android.request.id">
6165 <td class="entry_name">android.<wbr>request.<wbr>id</td>
6166 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006167 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006168
6169
6170
6171
6172 </td> <!-- entry_type -->
6173
6174 <td class="entry_description">
6175 An application-specified ID for the current
6176 request.<wbr> Must be maintained unchanged in output
6177 frame
6178 </td>
6179
6180 <td class="entry_units">
6181 arbitrary integer assigned by application
6182 </td>
6183
6184 <td class="entry_range">
6185 Any int
6186 </td>
6187
6188 <td class="entry_notes">
6189 </td>
6190
6191 <td class="entry_tags">
6192 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006193 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006194 </ul>
6195 </td>
6196
6197 </tr> <!-- end of entry -->
6198
6199
6200 <tr class="entry" id="controls_android.request.inputStreams">
6201 <td class="entry_name">android.<wbr>request.<wbr>input<wbr>Streams</td>
6202 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006203 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006204
6205
6206
6207
6208 </td> <!-- entry_type -->
6209
6210 <td class="entry_description">
6211 List which camera reprocess stream is used
6212 for the source of reprocessing data.<wbr>
6213 </td>
6214
6215 <td class="entry_units">
6216 List of camera reprocess stream IDs
6217 </td>
6218
6219 <td class="entry_range">
6220 Typically,<wbr> only one entry allowed,<wbr> must be a valid
6221 reprocess stream ID.<wbr> If android.<wbr>jpeg.<wbr>needs<wbr>Thumbnail is
6222 set,<wbr> then multiple reprocess streams may be included in a
6223 single request; they must be different scaled versions of
6224 the same image.<wbr>
6225 </td>
6226
6227 <td class="entry_notes">
6228 Only meaningful when android.<wbr>request.<wbr>type ==
6229 REPROCESS.<wbr> Ignored otherwise
6230 </td>
6231
6232 <td class="entry_tags">
6233 </td>
6234
6235 </tr> <!-- end of entry -->
6236
6237
6238 <tr class="entry" id="controls_android.request.metadataMode">
6239 <td class="entry_name">android.<wbr>request.<wbr>metadata<wbr>Mode</td>
6240 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006241 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006242
6243
6244
6245 <ul class="entry_type_enum">
6246 <li>
6247 <span class="entry_type_enum_name">NONE</span>
6248 <span class="entry_type_enum_notes">No metadata should be produced on output,<wbr> except
6249 for application-bound buffer data.<wbr> If no
6250 application-bound streams exist,<wbr> no frame should be
6251 placed in the output frame queue.<wbr> If such streams
6252 exist,<wbr> a frame should be placed on the output queue
6253 with null metadata but with the necessary output buffer
6254 information.<wbr> Timestamp information should still be
6255 included with any output stream buffers</span>
6256 </li>
6257 <li>
6258 <span class="entry_type_enum_name">FULL</span>
6259 <span class="entry_type_enum_notes">All metadata should be produced.<wbr> Statistics will
6260 only be produced if they are separately
6261 enabled</span>
6262 </li>
6263 </ul>
6264
6265 </td> <!-- entry_type -->
6266
6267 <td class="entry_description">
6268 How much metadata to produce on
6269 output
6270 </td>
6271
6272 <td class="entry_units">
6273 </td>
6274
6275 <td class="entry_range">
6276 </td>
6277
6278 <td class="entry_notes">
6279 </td>
6280
6281 <td class="entry_tags">
6282 </td>
6283
6284 </tr> <!-- end of entry -->
6285
6286
6287 <tr class="entry" id="controls_android.request.outputStreams">
6288 <td class="entry_name">android.<wbr>request.<wbr>output<wbr>Streams</td>
6289 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006290 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006291
6292
6293
6294
6295 </td> <!-- entry_type -->
6296
6297 <td class="entry_description">
6298 Lists which camera output streams image data
6299 from this capture must be sent to
6300 </td>
6301
6302 <td class="entry_units">
6303 List of camera stream IDs
6304 </td>
6305
6306 <td class="entry_range">
6307 List must only include streams that have been
6308 created
6309 </td>
6310
6311 <td class="entry_notes">
6312 If no output streams are listed,<wbr> then the image
6313 data should simply be discarded.<wbr> The image data must
6314 still be captured for metadata and statistics production,<wbr>
6315 and the lens and flash must operate as requested.<wbr>
6316 </td>
6317
6318 <td class="entry_tags">
6319 </td>
6320
6321 </tr> <!-- end of entry -->
6322
6323
6324 <tr class="entry" id="controls_android.request.type">
6325 <td class="entry_name">android.<wbr>request.<wbr>type</td>
6326 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006327 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006328
6329
6330
6331 <ul class="entry_type_enum">
6332 <li>
6333 <span class="entry_type_enum_name">CAPTURE</span>
6334 <span class="entry_type_enum_notes">Capture a new image from the imaging hardware,<wbr>
6335 and process it according to the
6336 settings</span>
6337 </li>
6338 <li>
6339 <span class="entry_type_enum_name">REPROCESS</span>
6340 <span class="entry_type_enum_notes">Process previously captured data; the
6341 android.<wbr>request.<wbr>input<wbr>Stream parameter determines the
6342 source reprocessing stream.<wbr> TODO: Mark dynamic metadata
6343 needed for reprocessing with [RP]</span>
6344 </li>
6345 </ul>
6346
6347 </td> <!-- entry_type -->
6348
6349 <td class="entry_description">
6350 The type of the request; either CAPTURE or
6351 REPROCESS
6352 </td>
6353
6354 <td class="entry_units">
6355 </td>
6356
6357 <td class="entry_range">
6358 </td>
6359
6360 <td class="entry_notes">
6361 </td>
6362
6363 <td class="entry_tags">
6364 </td>
6365
6366 </tr> <!-- end of entry -->
6367
6368
6369
6370 <!-- end of kind -->
6371 </tbody>
6372 <tr><td colspan="7" class="kind">static</td></tr>
6373
6374 <thead>
6375 <tr>
6376 <th class="th_name">Property Name</th>
6377 <th class="th_type">Type</th>
6378 <th class="th_description">Description</th>
6379 <th class="th_units">Units</th>
6380 <th class="th_range">Range</th>
6381 <th class="th_notes">Notes</th>
6382 <th class="th_tags">Tags</th>
6383 </tr>
6384 </thead>
6385
6386 <tbody>
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397 <tr class="entry" id="static_android.request.maxNumOutputStreams">
6398 <td class="entry_name">android.<wbr>request.<wbr>max<wbr>Num<wbr>Output<wbr>Streams</td>
6399 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006400 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006401 <span class="entry_type_container">x</span>
6402
6403 <span class="entry_type_array">
6404 3
6405 </span>
6406
6407
6408
6409 </td> <!-- entry_type -->
6410
6411 <td class="entry_description">
6412 How many output streams can be allocated at
6413 the same time for each type of stream
6414 </td>
6415
6416 <td class="entry_units">
6417 The number of raw sensor streams; the number of
6418 processed,<wbr> uncompressed streams; and the number of
6419 JPEG-compressed streams
6420 </td>
6421
6422 <td class="entry_range">
6423 >=1 for Raw and JPEG-compressed stream.<wbr> >= 3
6424 for processed,<wbr> uncompressed streams
6425 </td>
6426
6427 <td class="entry_notes">
6428 Video snapshot with preview callbacks requires 3
6429 processed streams (preview,<wbr> record,<wbr> app callbacks) and
6430 one JPEG stream (snapshot)
6431 </td>
6432
6433 <td class="entry_tags">
6434 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006435 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006436 </ul>
6437 </td>
6438
6439 </tr> <!-- end of entry -->
6440
6441
6442 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
6443 <td class="entry_name">android.<wbr>request.<wbr>max<wbr>Num<wbr>Reprocess<wbr>Streams</td>
6444 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006445 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006446 <span class="entry_type_container">x</span>
6447
6448 <span class="entry_type_array">
6449 1
6450 </span>
6451
6452
6453
6454 </td> <!-- entry_type -->
6455
6456 <td class="entry_description">
6457 How many reprocessing streams of any type
6458 can be allocated at the same time
6459 </td>
6460
6461 <td class="entry_units">
6462 </td>
6463
6464 <td class="entry_range">
6465 >= 1
6466 </td>
6467
6468 <td class="entry_notes">
6469 </td>
6470
6471 <td class="entry_tags">
6472 </td>
6473
6474 </tr> <!-- end of entry -->
6475
6476
6477
6478 <!-- end of kind -->
6479 </tbody>
6480 <tr><td colspan="7" class="kind">dynamic</td></tr>
6481
6482 <thead>
6483 <tr>
6484 <th class="th_name">Property Name</th>
6485 <th class="th_type">Type</th>
6486 <th class="th_description">Description</th>
6487 <th class="th_units">Units</th>
6488 <th class="th_range">Range</th>
6489 <th class="th_notes">Notes</th>
6490 <th class="th_tags">Tags</th>
6491 </tr>
6492 </thead>
6493
6494 <tbody>
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505 <tr class="entry" id="dynamic_android.request.frameCount">
6506 <td class="entry_name">android.<wbr>request.<wbr>frame<wbr>Count</td>
6507 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006508 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006509
6510
6511
6512
6513 </td> <!-- entry_type -->
6514
6515 <td class="entry_description">
6516 Number of frames captured since
6517 open()
6518 </td>
6519
6520 <td class="entry_units">
6521 count of frames
6522 </td>
6523
6524 <td class="entry_range">
6525 > 0
6526 </td>
6527
6528 <td class="entry_notes">
6529 Reset on release()
6530 </td>
6531
6532 <td class="entry_tags">
6533 </td>
6534
6535 </tr> <!-- end of entry -->
6536
6537
6538 <tr class="entry" id="dynamic_android.request.id">
6539 <td class="entry_name">android.<wbr>request.<wbr>id</td>
6540 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006541 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006542
6543
6544
6545
6546 </td> <!-- entry_type -->
6547
6548 <td class="entry_description">
6549 An application-specified ID for the current
6550 request.<wbr> Must be maintained unchanged in output
6551 frame
6552 </td>
6553
6554 <td class="entry_units">
6555 arbitrary integer assigned by application
6556 </td>
6557
6558 <td class="entry_range">
6559 Any int
6560 </td>
6561
6562 <td class="entry_notes">
6563 </td>
6564
6565 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006566 <ul class="entry_tags">
6567 <li><a href="#tag_V1">V1</a></li>
6568 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006569 </td>
6570
6571 </tr> <!-- end of entry -->
6572
6573
6574 <tr class="entry" id="dynamic_android.request.metadataMode">
6575 <td class="entry_name">android.<wbr>request.<wbr>metadata<wbr>Mode</td>
6576 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006577 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006578
6579
6580
6581 <ul class="entry_type_enum">
6582 <li>
6583 <span class="entry_type_enum_name">NONE</span>
6584 <span class="entry_type_enum_notes">No metadata should be produced on output,<wbr> except
6585 for application-bound buffer data.<wbr> If no
6586 application-bound streams exist,<wbr> no frame should be
6587 placed in the output frame queue.<wbr> If such streams
6588 exist,<wbr> a frame should be placed on the output queue
6589 with null metadata but with the necessary output buffer
6590 information.<wbr> Timestamp information should still be
6591 included with any output stream buffers</span>
6592 </li>
6593 <li>
6594 <span class="entry_type_enum_name">FULL</span>
6595 <span class="entry_type_enum_notes">All metadata should be produced.<wbr> Statistics will
6596 only be produced if they are separately
6597 enabled</span>
6598 </li>
6599 </ul>
6600
6601 </td> <!-- entry_type -->
6602
6603 <td class="entry_description">
6604 How much metadata to produce on
6605 output
6606 </td>
6607
6608 <td class="entry_units">
6609 </td>
6610
6611 <td class="entry_range">
6612 </td>
6613
6614 <td class="entry_notes">
6615 </td>
6616
6617 <td class="entry_tags">
6618 </td>
6619
6620 </tr> <!-- end of entry -->
6621
6622
6623 <tr class="entry" id="dynamic_android.request.outputStreams">
6624 <td class="entry_name">android.<wbr>request.<wbr>output<wbr>Streams</td>
6625 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006626 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006627
6628
6629
6630
6631 </td> <!-- entry_type -->
6632
6633 <td class="entry_description">
6634 Lists which camera output streams image data
6635 from this capture must be sent to
6636 </td>
6637
6638 <td class="entry_units">
6639 List of camera stream IDs
6640 </td>
6641
6642 <td class="entry_range">
6643 List must only include streams that have been
6644 created
6645 </td>
6646
6647 <td class="entry_notes">
6648 If no output streams are listed,<wbr> then the image
6649 data should simply be discarded.<wbr> The image data must
6650 still be captured for metadata and statistics production,<wbr>
6651 and the lens and flash must operate as requested.<wbr>
6652 </td>
6653
6654 <td class="entry_tags">
6655 </td>
6656
6657 </tr> <!-- end of entry -->
6658
6659
6660
6661 <!-- end of kind -->
6662 </tbody>
6663
6664 <!-- end of section -->
6665 <tr><td colspan="7" id="section_scaler" class="section">scaler</td></tr>
6666
6667
6668 <tr><td colspan="7" class="kind">controls</td></tr>
6669
6670 <thead>
6671 <tr>
6672 <th class="th_name">Property Name</th>
6673 <th class="th_type">Type</th>
6674 <th class="th_description">Description</th>
6675 <th class="th_units">Units</th>
6676 <th class="th_range">Range</th>
6677 <th class="th_notes">Notes</th>
6678 <th class="th_tags">Tags</th>
6679 </tr>
6680 </thead>
6681
6682 <tbody>
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693 <tr class="entry" id="controls_android.scaler.cropRegion">
6694 <td class="entry_name">android.<wbr>scaler.<wbr>crop<wbr>Region</td>
6695 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006696 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006697 <span class="entry_type_container">x</span>
6698
6699 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07006700 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006701 </span>
6702
6703
6704
6705 </td> <!-- entry_type -->
6706
6707 <td class="entry_description">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07006708 (x,<wbr> y,<wbr> width,<wbr> height).<wbr>
6709<br>
6710<br> A rectangle with the top-level corner of (x,<wbr>y) and size
6711 (width,<wbr> height).<wbr> The region of the sensor that is used for
6712 output.<wbr> Each stream must use this rectangle to produce its
6713 output,<wbr> cropping to a smaller region if necessary to
6714 maintain the stream's aspect ratio.<wbr>
6715<br>
6716<br> HAL2.<wbr>x uses only (x,<wbr> y,<wbr> width)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006717 </td>
6718
6719 <td class="entry_units">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07006720 (x,<wbr>y) of top-left corner,<wbr> width and height of region
6721 in pixels; (0,<wbr>0) is top-left corner of
Zhijun Hebd7f15b2013-05-13 16:59:51 -07006722 android.<wbr>sensor.<wbr>active<wbr>Array<wbr>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006723 </td>
6724
6725 <td class="entry_range">
6726 </td>
6727
6728 <td class="entry_notes">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07006729
6730 Any additional per-stream cropping must be done to
6731 maximize the final pixel area of the stream.<wbr>
6732<br>
6733<br> For example,<wbr> if the crop region is set to a 4:3 aspect
6734 ratio,<wbr> then 4:3 streams should use the exact crop
6735 region.<wbr> 16:9 streams should further crop vertically
6736 (letterbox).<wbr>
6737<br>
6738<br> Conversely,<wbr> if the crop region is set to a 16:9,<wbr> then 4:3
6739 outputs should crop horizontally (pillarbox),<wbr> and 16:9
6740 streams should match exactly.<wbr> These additional crops must
6741 be centered within the crop region.<wbr>
6742<br>
6743<br> The output streams must maintain square pixels at all
6744 times,<wbr> no matter what the relative aspect ratios of the
6745 crop region and the stream are.<wbr> Negative values for
6746 corner are allowed for raw output if full pixel array is
6747 larger than active pixel array.<wbr> Width and height may be
6748 rounded to nearest larger supportable width,<wbr> especially
6749 for raw output,<wbr> where only a few fixed scales may be
6750 possible.<wbr> The width and height of the crop region cannot
Zhijun Hebd7f15b2013-05-13 16:59:51 -07006751 be set to be smaller than floor( activeArraySize.<wbr>width /<wbr>
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07006752 android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom ) and floor(
Zhijun Hebd7f15b2013-05-13 16:59:51 -07006753 activeArraySize.<wbr>height /<wbr> android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom),<wbr>
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07006754 respectively.<wbr>
6755
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006756 </td>
6757
6758 <td class="entry_tags">
6759 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006760 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006761 </ul>
6762 </td>
6763
6764 </tr> <!-- end of entry -->
6765
6766
6767
6768 <!-- end of kind -->
6769 </tbody>
6770 <tr><td colspan="7" class="kind">static</td></tr>
6771
6772 <thead>
6773 <tr>
6774 <th class="th_name">Property Name</th>
6775 <th class="th_type">Type</th>
6776 <th class="th_description">Description</th>
6777 <th class="th_units">Units</th>
6778 <th class="th_range">Range</th>
6779 <th class="th_notes">Notes</th>
6780 <th class="th_tags">Tags</th>
6781 </tr>
6782 </thead>
6783
6784 <tbody>
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795 <tr class="entry" id="static_android.scaler.availableFormats">
6796 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Formats</td>
6797 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006798 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006799 <span class="entry_type_container">x</span>
6800
6801 <span class="entry_type_array">
6802 n
6803 </span>
6804
6805 <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>
6806
6807 <ul class="entry_type_enum">
6808 <li>
6809 <span class="entry_type_enum_name">RAW_SENSOR</span>
6810 <span class="entry_type_enum_value">0x20</span>
6811 </li>
6812 <li>
6813 <span class="entry_type_enum_name">YV12</span>
6814 <span class="entry_type_enum_value">0x32315659</span>
6815 <span class="entry_type_enum_notes">YCrCb 4:2:0 Planar</span>
6816 </li>
6817 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07006818 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006819 <span class="entry_type_enum_value">0x11</span>
6820 <span class="entry_type_enum_notes">NV21</span>
6821 </li>
6822 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07006823 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
6824 <span class="entry_type_enum_value">0x22</span>
6825 <span class="entry_type_enum_notes">Hal Implementation Defined</span>
6826 </li>
6827 <li>
6828 <span class="entry_type_enum_name">YCbCr_420_888</span>
6829 <span class="entry_type_enum_value">0x23</span>
6830 <span class="entry_type_enum_notes">Flexible YUV420 Format</span>
6831 </li>
6832 <li>
6833 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006834 <span class="entry_type_enum_value">0x21</span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07006835 <span class="entry_type_enum_notes">JPEG</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006836 </li>
6837 </ul>
6838
6839 </td> <!-- entry_type -->
6840
6841 <td class="entry_description">
6842 List of app-visible formats
6843 </td>
6844
6845 <td class="entry_units">
6846 </td>
6847
6848 <td class="entry_range">
6849 </td>
6850
6851 <td class="entry_notes">
6852 </td>
6853
6854 <td class="entry_tags">
6855 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006856 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006857 </ul>
6858 </td>
6859
6860 </tr> <!-- end of entry -->
6861
6862
6863 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
6864 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Min<wbr>Durations</td>
6865 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006866 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006867 <span class="entry_type_container">x</span>
6868
6869 <span class="entry_type_array">
6870 n
6871 </span>
6872
6873
6874
6875 </td> <!-- entry_type -->
6876
6877 <td class="entry_description">
6878 The minimum frame duration that is supported
6879 for each resolution in availableJpegSizes.<wbr> Should
6880 correspond to the frame duration when only that JPEG
6881 stream is active,<wbr> with all processing set to
6882 FAST
6883 </td>
6884
6885 <td class="entry_units">
6886 </td>
6887
6888 <td class="entry_range">
6889 </td>
6890
6891 <td class="entry_notes">
6892 When multiple streams are configured,<wbr> the minimum
6893 frame duration will be >= max(individual stream min
6894 durations)
6895 </td>
6896
6897 <td class="entry_tags">
6898 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006899 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006900 </ul>
6901 </td>
6902
6903 </tr> <!-- end of entry -->
6904
6905
6906 <tr class="entry" id="static_android.scaler.availableJpegSizes">
6907 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Sizes</td>
6908 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006909 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006910 <span class="entry_type_container">x</span>
6911
6912 <span class="entry_type_array">
6913 n x 2
6914 </span>
6915
6916
6917
6918 </td> <!-- entry_type -->
6919
6920 <td class="entry_description">
6921 The resolutions available for output from
6922 the JPEG block.<wbr> Listed as width x height
6923 </td>
6924
6925 <td class="entry_units">
6926 </td>
6927
6928 <td class="entry_range">
6929 Must include: - sensor maximum resolution Should
6930 include: - half/<wbr>quarter max resolution
6931 </td>
6932
6933 <td class="entry_notes">
6934 </td>
6935
6936 <td class="entry_tags">
6937 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006938 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006939 </ul>
6940 </td>
6941
6942 </tr> <!-- end of entry -->
6943
6944
6945 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
6946 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Max<wbr>Digital<wbr>Zoom</td>
6947 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07006948 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006949
6950
6951
6952
6953 </td> <!-- entry_type -->
6954
6955 <td class="entry_description">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07006956 The maximum ratio between active area width
6957 and crop region width,<wbr> or between active area height and
6958 crop region height,<wbr> if the crop region height is larger
6959 than width
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006960 </td>
6961
6962 <td class="entry_units">
6963 </td>
6964
6965 <td class="entry_range">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07006966 >=1
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006967 </td>
6968
6969 <td class="entry_notes">
6970 </td>
6971
6972 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07006973 <ul class="entry_tags">
6974 <li><a href="#tag_BC">BC</a></li>
6975 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006976 </td>
6977
6978 </tr> <!-- end of entry -->
6979
6980
6981 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
6982 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Processed<wbr>Min<wbr>Durations</td>
6983 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006984 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006985 <span class="entry_type_container">x</span>
6986
6987 <span class="entry_type_array">
6988 n
6989 </span>
6990
6991
6992
6993 </td> <!-- entry_type -->
6994
6995 <td class="entry_description">
6996 The minimum frame duration that is supported
6997 for each resolution in availableProcessedSizes.<wbr> Should
6998 correspond to the frame duration when only that processed
6999 stream is active,<wbr> with all processing set to
7000 FAST
7001 </td>
7002
7003 <td class="entry_units">
7004 </td>
7005
7006 <td class="entry_range">
7007 </td>
7008
7009 <td class="entry_notes">
7010 When multiple streams are configured,<wbr> the minimum
7011 frame duration will be >= max(individual stream min
7012 durations)
7013 </td>
7014
7015 <td class="entry_tags">
7016 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007017 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007018 </ul>
7019 </td>
7020
7021 </tr> <!-- end of entry -->
7022
7023
7024 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
7025 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Processed<wbr>Sizes</td>
7026 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007027 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007028 <span class="entry_type_container">x</span>
7029
7030 <span class="entry_type_array">
7031 n x 2
7032 </span>
7033
7034
7035
7036 </td> <!-- entry_type -->
7037
7038 <td class="entry_description">
7039 The resolutions available for use with
7040 processed output streams,<wbr> such as YV12,<wbr> NV12,<wbr> and
7041 platform opaque YUV/<wbr>RGB streams to the GPU or video
7042 encoders.<wbr> Listed as width,<wbr> height
7043 </td>
7044
7045 <td class="entry_units">
7046 </td>
7047
7048 <td class="entry_range">
7049 Must include: - sensor maximum resolution -
7050 standard QCIF,<wbr> 240p,<wbr> 480p,<wbr> 720p,<wbr> and 1080p
7051 resolutions
7052 </td>
7053
7054 <td class="entry_notes">
7055 </td>
7056
7057 <td class="entry_tags">
7058 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007059 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007060 </ul>
7061 </td>
7062
7063 </tr> <!-- end of entry -->
7064
7065
7066 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
7067 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Min<wbr>Durations</td>
7068 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007069 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007070 <span class="entry_type_container">x</span>
7071
7072 <span class="entry_type_array">
7073 n
7074 </span>
7075
7076
7077
7078 </td> <!-- entry_type -->
7079
7080 <td class="entry_description">
7081 The minimum frame duration that is supported
7082 for each raw resolution in availableRawSizes.<wbr> Should
7083 correspond to the frame duration when only the raw stream
7084 is active.<wbr>
7085 </td>
7086
7087 <td class="entry_units">
7088 </td>
7089
7090 <td class="entry_range">
7091 </td>
7092
7093 <td class="entry_notes">
7094 When multiple streams are configured,<wbr> the minimum
7095 frame duration will be >= max(individual stream min
7096 durations)
7097 </td>
7098
7099 <td class="entry_tags">
7100 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007101 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007102 </ul>
7103 </td>
7104
7105 </tr> <!-- end of entry -->
7106
7107
7108 <tr class="entry" id="static_android.scaler.availableRawSizes">
7109 <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Sizes</td>
7110 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007111 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007112 <span class="entry_type_container">x</span>
7113
7114 <span class="entry_type_array">
7115 n x 2
7116 </span>
7117
7118
7119
7120 </td> <!-- entry_type -->
7121
7122 <td class="entry_description">
7123 The resolutions available for use with raw
7124 sensor output streams,<wbr> listed as width,<wbr>
7125 height
7126 </td>
7127
7128 <td class="entry_units">
7129 </td>
7130
7131 <td class="entry_range">
7132 Must include: - sensor maximum resolution
7133 </td>
7134
7135 <td class="entry_notes">
7136 </td>
7137
7138 <td class="entry_tags">
7139 </td>
7140
7141 </tr> <!-- end of entry -->
7142
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007143
7144
7145 <!-- end of kind -->
7146 </tbody>
7147 <tr><td colspan="7" class="kind">dynamic</td></tr>
7148
7149 <thead>
7150 <tr>
7151 <th class="th_name">Property Name</th>
7152 <th class="th_type">Type</th>
7153 <th class="th_description">Description</th>
7154 <th class="th_units">Units</th>
7155 <th class="th_range">Range</th>
7156 <th class="th_notes">Notes</th>
7157 <th class="th_tags">Tags</th>
7158 </tr>
7159 </thead>
7160
7161 <tbody>
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172 <tr class="entry" id="dynamic_android.scaler.cropRegion">
7173 <td class="entry_name">android.<wbr>scaler.<wbr>crop<wbr>Region</td>
7174 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007175 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007176 <span class="entry_type_container">x</span>
7177
7178 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07007179 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007180 </span>
7181
7182
7183
7184 </td> <!-- entry_type -->
7185
7186 <td class="entry_description">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07007187 (x,<wbr> y,<wbr> width,<wbr> height).<wbr>
7188<br>
7189<br> A rectangle with the top-level corner of (x,<wbr>y) and size
7190 (width,<wbr> height).<wbr> The region of the sensor that is used for
7191 output.<wbr> Each stream must use this rectangle to produce its
7192 output,<wbr> cropping to a smaller region if necessary to
7193 maintain the stream's aspect ratio.<wbr>
7194<br>
7195<br> HAL2.<wbr>x uses only (x,<wbr> y,<wbr> width)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007196 </td>
7197
7198 <td class="entry_units">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07007199 (x,<wbr>y) of top-left corner,<wbr> width and height of region
7200 in pixels; (0,<wbr>0) is top-left corner of
Zhijun Hebd7f15b2013-05-13 16:59:51 -07007201 android.<wbr>sensor.<wbr>active<wbr>Array<wbr>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007202 </td>
7203
7204 <td class="entry_range">
7205 </td>
7206
7207 <td class="entry_notes">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07007208
7209 Any additional per-stream cropping must be done to
7210 maximize the final pixel area of the stream.<wbr>
7211<br>
7212<br> For example,<wbr> if the crop region is set to a 4:3 aspect
7213 ratio,<wbr> then 4:3 streams should use the exact crop
7214 region.<wbr> 16:9 streams should further crop vertically
7215 (letterbox).<wbr>
7216<br>
7217<br> Conversely,<wbr> if the crop region is set to a 16:9,<wbr> then 4:3
7218 outputs should crop horizontally (pillarbox),<wbr> and 16:9
7219 streams should match exactly.<wbr> These additional crops must
7220 be centered within the crop region.<wbr>
7221<br>
7222<br> The output streams must maintain square pixels at all
7223 times,<wbr> no matter what the relative aspect ratios of the
7224 crop region and the stream are.<wbr> Negative values for
7225 corner are allowed for raw output if full pixel array is
7226 larger than active pixel array.<wbr> Width and height may be
7227 rounded to nearest larger supportable width,<wbr> especially
7228 for raw output,<wbr> where only a few fixed scales may be
7229 possible.<wbr> The width and height of the crop region cannot
Zhijun Hebd7f15b2013-05-13 16:59:51 -07007230 be set to be smaller than floor( activeArraySize.<wbr>width /<wbr>
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07007231 android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom ) and floor(
Zhijun Hebd7f15b2013-05-13 16:59:51 -07007232 activeArraySize.<wbr>height /<wbr> android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom),<wbr>
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07007233 respectively.<wbr>
7234
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007235 </td>
7236
7237 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007238 <ul class="entry_tags">
7239 <li><a href="#tag_BC">BC</a></li>
7240 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007241 </td>
7242
7243 </tr> <!-- end of entry -->
7244
7245
7246
7247 <!-- end of kind -->
7248 </tbody>
7249
7250 <!-- end of section -->
7251 <tr><td colspan="7" id="section_sensor" class="section">sensor</td></tr>
7252
7253
7254 <tr><td colspan="7" class="kind">controls</td></tr>
7255
7256 <thead>
7257 <tr>
7258 <th class="th_name">Property Name</th>
7259 <th class="th_type">Type</th>
7260 <th class="th_description">Description</th>
7261 <th class="th_units">Units</th>
7262 <th class="th_range">Range</th>
7263 <th class="th_notes">Notes</th>
7264 <th class="th_tags">Tags</th>
7265 </tr>
7266 </thead>
7267
7268 <tbody>
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279 <tr class="entry" id="controls_android.sensor.exposureTime">
7280 <td class="entry_name">android.<wbr>sensor.<wbr>exposure<wbr>Time</td>
7281 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007282 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007283
7284
7285
7286
7287 </td> <!-- entry_type -->
7288
7289 <td class="entry_description">
7290 Duration each pixel is exposed to
7291 light
7292 </td>
7293
7294 <td class="entry_units">
7295 nanoseconds
7296 </td>
7297
7298 <td class="entry_range">
7299 android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range
7300 </td>
7301
7302 <td class="entry_notes">
7303 1/<wbr>10000 - 30 sec range.<wbr> No bulb mode
7304 </td>
7305
7306 <td class="entry_tags">
7307 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007308 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007309 </ul>
7310 </td>
7311
7312 </tr> <!-- end of entry -->
7313
7314
7315 <tr class="entry" id="controls_android.sensor.frameDuration">
7316 <td class="entry_name">android.<wbr>sensor.<wbr>frame<wbr>Duration</td>
7317 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007318 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007319
7320
7321
7322
7323 </td> <!-- entry_type -->
7324
7325 <td class="entry_description">
7326 Duration from start of frame exposure to
7327 start of next frame exposure
7328 </td>
7329
7330 <td class="entry_units">
7331 nanoseconds
7332 </td>
7333
7334 <td class="entry_range">
7335 see android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration,<wbr>
7336 android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations
7337 </td>
7338
7339 <td class="entry_notes">
7340 Exposure time has priority,<wbr> so duration is set to
7341 max(duration,<wbr> exposure time + overhead)
7342 </td>
7343
7344 <td class="entry_tags">
7345 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007346 <li><a href="#tag_V1">V1</a></li>
7347 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007348 </ul>
7349 </td>
7350
7351 </tr> <!-- end of entry -->
7352
7353
7354 <tr class="entry" id="controls_android.sensor.sensitivity">
7355 <td class="entry_name">android.<wbr>sensor.<wbr>sensitivity</td>
7356 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007357 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007358
7359
7360
7361
7362 </td> <!-- entry_type -->
7363
7364 <td class="entry_description">
7365 Gain applied to image data.<wbr> Must be
7366 implemented through analog gain only if set to values
7367 below 'maximum analog sensitivity'.<wbr>
7368 </td>
7369
7370 <td class="entry_units">
7371 ISO arithmetic units
7372 </td>
7373
7374 <td class="entry_range">
7375 android.<wbr>sensor.<wbr>info.<wbr>sensitivity<wbr>Range
7376 </td>
7377
7378 <td class="entry_notes">
7379 ISO 12232:2006 REI method
7380 </td>
7381
7382 <td class="entry_tags">
7383 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007384 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007385 </ul>
7386 </td>
7387
7388 </tr> <!-- end of entry -->
7389
7390
7391
7392 <!-- end of kind -->
7393 </tbody>
7394 <tr><td colspan="7" class="kind">static</td></tr>
7395
7396 <thead>
7397 <tr>
7398 <th class="th_name">Property Name</th>
7399 <th class="th_type">Type</th>
7400 <th class="th_description">Description</th>
7401 <th class="th_units">Units</th>
7402 <th class="th_range">Range</th>
7403 <th class="th_notes">Notes</th>
7404 <th class="th_tags">Tags</th>
7405 </tr>
7406 </thead>
7407
7408 <tbody>
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421 <tr class="entry" id="static_android.sensor.info.activeArraySize">
7422 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size</td>
7423 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007424 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007425 <span class="entry_type_container">x</span>
7426
7427 <span class="entry_type_array">
7428 4
7429 </span>
7430
7431 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
7432
7433
7434 </td> <!-- entry_type -->
7435
7436 <td class="entry_description">
7437 Area of raw data which corresponds to only
7438 active pixels; smaller or equal to
7439 pixelArraySize.<wbr>
7440 </td>
7441
7442 <td class="entry_units">
7443 xmin,<wbr> ymin,<wbr> width,<wbr> height.<wbr> Top left of full
7444 pixel array is (0,<wbr>0)
7445 </td>
7446
7447 <td class="entry_range">
7448 </td>
7449
7450 <td class="entry_notes">
7451 </td>
7452
7453 <td class="entry_tags">
7454 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007455 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007456 </ul>
7457 </td>
7458
7459 </tr> <!-- end of entry -->
7460
7461
7462 <tr class="entry" id="static_android.sensor.info.availableSensitivities">
7463 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>available<wbr>Sensitivities</td>
7464 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007465 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007466 <span class="entry_type_container">x</span>
7467
7468 <span class="entry_type_array">
7469 n
7470 </span>
7471
7472 <div class="entry_type_notes">List of supported sensitivity values</div>
7473
7474
7475 </td> <!-- entry_type -->
7476
7477 <td class="entry_description">
7478 Range of valid sensitivities
7479 </td>
7480
7481 <td class="entry_units">
7482 </td>
7483
7484 <td class="entry_range">
7485 Must at least include 100,<wbr> 200,<wbr> 400,<wbr> 800,<wbr>
7486 1600
7487 </td>
7488
7489 <td class="entry_notes">
7490 </td>
7491
7492 <td class="entry_tags">
7493 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007494 <li><a href="#tag_BC">BC</a></li>
7495 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007496 </ul>
7497 </td>
7498
7499 </tr> <!-- end of entry -->
7500
7501
7502 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
7503 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>color<wbr>Filter<wbr>Arrangement</td>
7504 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007505 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007506
7507
7508
7509 <ul class="entry_type_enum">
7510 <li>
7511 <span class="entry_type_enum_name">RGGB</span>
7512 </li>
7513 <li>
7514 <span class="entry_type_enum_name">GRBG</span>
7515 </li>
7516 <li>
7517 <span class="entry_type_enum_name">GBRG</span>
7518 </li>
7519 <li>
7520 <span class="entry_type_enum_name">BGGR</span>
7521 </li>
7522 <li>
7523 <span class="entry_type_enum_name">RGB</span>
7524 <span class="entry_type_enum_notes">Sensor is not Bayer; output has 3 16-bit
7525 values for each pixel,<wbr> instead of just 1 16-bit value
7526 per pixel.<wbr></span>
7527 </li>
7528 </ul>
7529
7530 </td> <!-- entry_type -->
7531
7532 <td class="entry_description">
7533 Arrangement of color filters on sensor;
7534 represents the colors in the top-left 2x2 section of
7535 the sensor,<wbr> in reading order
7536 </td>
7537
7538 <td class="entry_units">
7539 </td>
7540
7541 <td class="entry_range">
7542 </td>
7543
7544 <td class="entry_notes">
7545 </td>
7546
7547 <td class="entry_tags">
7548 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007549 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007550 </ul>
7551 </td>
7552
7553 </tr> <!-- end of entry -->
7554
7555
7556 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
7557 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range</td>
7558 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007559 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007560 <span class="entry_type_container">x</span>
7561
7562 <span class="entry_type_array">
7563 2
7564 </span>
7565
7566 <div class="entry_type_notes">nanoseconds</div>
7567
7568
7569 </td> <!-- entry_type -->
7570
7571 <td class="entry_description">
7572 Range of valid exposure
7573 times
7574 </td>
7575
7576 <td class="entry_units">
7577 </td>
7578
7579 <td class="entry_range">
7580 Min <= 100e3 (100 us),<wbr> Max >= 30e9 (30
7581 sec)
7582 </td>
7583
7584 <td class="entry_notes">
7585 </td>
7586
7587 <td class="entry_tags">
7588 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007589 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007590 </ul>
7591 </td>
7592
7593 </tr> <!-- end of entry -->
7594
7595
7596 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
7597 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration</td>
7598 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007599 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007600
7601
7602
7603
7604 </td> <!-- entry_type -->
7605
7606 <td class="entry_description">
7607 Maximum frame duration (minimum frame
7608 rate)
7609 </td>
7610
7611 <td class="entry_units">
7612 nanoseconds
7613 </td>
7614
7615 <td class="entry_range">
7616 >= 30e9
7617 </td>
7618
7619 <td class="entry_notes">
7620 Minimum duration is a function of resolution,<wbr>
7621 processing settings.<wbr> See
7622 android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations
7623 </td>
7624
7625 <td class="entry_tags">
7626 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007627 <li><a href="#tag_BC">BC</a></li>
7628 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007629 </ul>
7630 </td>
7631
7632 </tr> <!-- end of entry -->
7633
7634
7635 <tr class="entry" id="static_android.sensor.info.physicalSize">
7636 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>physical<wbr>Size</td>
7637 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007638 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007639 <span class="entry_type_container">x</span>
7640
7641 <span class="entry_type_array">
7642 2
7643 </span>
7644
7645 <div class="entry_type_notes">width x height in millimeters</div>
7646
7647
7648 </td> <!-- entry_type -->
7649
7650 <td class="entry_description">
7651 The physical dimensions of the full pixel
7652 array
7653 </td>
7654
7655 <td class="entry_units">
7656 </td>
7657
7658 <td class="entry_range">
7659 </td>
7660
7661 <td class="entry_notes">
7662 Needed for FOV calculation for old API
7663 </td>
7664
7665 <td class="entry_tags">
7666 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007667 <li><a href="#tag_V1">V1</a></li>
7668 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007669 </ul>
7670 </td>
7671
7672 </tr> <!-- end of entry -->
7673
7674
7675 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
7676 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>pixel<wbr>Array<wbr>Size</td>
7677 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007678 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007679 <span class="entry_type_container">x</span>
7680
7681 <span class="entry_type_array">
7682 2
7683 </span>
7684
7685
7686
7687 </td> <!-- entry_type -->
7688
7689 <td class="entry_description">
7690 Dimensions of full pixel array,<wbr> possibly
7691 including black calibration pixels
7692 </td>
7693
7694 <td class="entry_units">
7695 </td>
7696
7697 <td class="entry_range">
7698 </td>
7699
7700 <td class="entry_notes">
7701 Maximum output resolution for raw format must
7702 match this in
7703 android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Sizes<wbr>Per<wbr>Format
7704 </td>
7705
7706 <td class="entry_tags">
7707 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007708 <li><a href="#tag_DNG">DNG</a></li>
7709 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007710 </ul>
7711 </td>
7712
7713 </tr> <!-- end of entry -->
7714
7715
7716 <tr class="entry" id="static_android.sensor.info.whiteLevel">
7717 <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>white<wbr>Level</td>
7718 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007719 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007720
7721
7722
7723
7724 </td> <!-- entry_type -->
7725
7726 <td class="entry_description">
7727 Maximum raw value output by
7728 sensor
7729 </td>
7730
7731 <td class="entry_units">
7732 </td>
7733
7734 <td class="entry_range">
7735 > 1024 (10-bit output)
7736 </td>
7737
7738 <td class="entry_notes">
7739 Defines sensor bit depth (10-14 bits is
7740 expected)
7741 </td>
7742
7743 <td class="entry_tags">
7744 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007745 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007746 </ul>
7747 </td>
7748
7749 </tr> <!-- end of entry -->
7750
7751
7752
7753
7754
7755 <tr class="entry" id="static_android.sensor.baseGainFactor">
7756 <td class="entry_name">android.<wbr>sensor.<wbr>base<wbr>Gain<wbr>Factor</td>
7757 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007758 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007759
7760
7761
7762
7763 </td> <!-- entry_type -->
7764
7765 <td class="entry_description">
7766 Gain factor from electrons to raw units when
7767 ISO=100
7768 </td>
7769
7770 <td class="entry_units">
7771 </td>
7772
7773 <td class="entry_range">
7774 </td>
7775
7776 <td class="entry_notes">
7777 </td>
7778
7779 <td class="entry_tags">
7780 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007781 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007782 </ul>
7783 </td>
7784
7785 </tr> <!-- end of entry -->
7786
7787
7788 <tr class="entry" id="static_android.sensor.blackLevelPattern">
7789 <td class="entry_name">android.<wbr>sensor.<wbr>black<wbr>Level<wbr>Pattern</td>
7790 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007791 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007792 <span class="entry_type_container">x</span>
7793
7794 <span class="entry_type_array">
7795 4
7796 </span>
7797
7798 <div class="entry_type_notes">2x2 raw count block</div>
7799
7800
7801 </td> <!-- entry_type -->
7802
7803 <td class="entry_description">
7804 A fixed black level offset for each of the
7805 Bayer mosaic channels
7806 </td>
7807
7808 <td class="entry_units">
7809 </td>
7810
7811 <td class="entry_range">
7812 >= 0 each
7813 </td>
7814
7815 <td class="entry_notes">
7816 As per DNG BlackLevelRepeatDim /<wbr> BlackLevel
7817 tags
7818 </td>
7819
7820 <td class="entry_tags">
7821 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007822 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007823 </ul>
7824 </td>
7825
7826 </tr> <!-- end of entry -->
7827
7828
7829 <tr class="entry" id="static_android.sensor.calibrationTransform1">
7830 <td class="entry_name">android.<wbr>sensor.<wbr>calibration<wbr>Transform1</td>
7831 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007832 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007833 <span class="entry_type_container">x</span>
7834
7835 <span class="entry_type_array">
7836 9
7837 </span>
7838
7839 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
7840
7841
7842 </td> <!-- entry_type -->
7843
7844 <td class="entry_description">
7845 Per-device calibration on top of color space
7846 transform 1
7847 </td>
7848
7849 <td class="entry_units">
7850 </td>
7851
7852 <td class="entry_range">
7853 </td>
7854
7855 <td class="entry_notes">
7856 </td>
7857
7858 <td class="entry_tags">
7859 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007860 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007861 </ul>
7862 </td>
7863
7864 </tr> <!-- end of entry -->
7865
7866
7867 <tr class="entry" id="static_android.sensor.calibrationTransform2">
7868 <td class="entry_name">android.<wbr>sensor.<wbr>calibration<wbr>Transform2</td>
7869 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007870 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007871 <span class="entry_type_container">x</span>
7872
7873 <span class="entry_type_array">
7874 9
7875 </span>
7876
7877 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
7878
7879
7880 </td> <!-- entry_type -->
7881
7882 <td class="entry_description">
7883 Per-device calibration on top of color space
7884 transform 2
7885 </td>
7886
7887 <td class="entry_units">
7888 </td>
7889
7890 <td class="entry_range">
7891 </td>
7892
7893 <td class="entry_notes">
7894 </td>
7895
7896 <td class="entry_tags">
7897 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007898 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007899 </ul>
7900 </td>
7901
7902 </tr> <!-- end of entry -->
7903
7904
7905 <tr class="entry" id="static_android.sensor.colorTransform1">
7906 <td class="entry_name">android.<wbr>sensor.<wbr>color<wbr>Transform1</td>
7907 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007908 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007909 <span class="entry_type_container">x</span>
7910
7911 <span class="entry_type_array">
7912 9
7913 </span>
7914
7915 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
7916
7917
7918 </td> <!-- entry_type -->
7919
7920 <td class="entry_description">
7921 Linear mapping from XYZ (D50) color space to
7922 reference linear sensor color,<wbr> for first reference
7923 illuminant
7924 </td>
7925
7926 <td class="entry_units">
7927 </td>
7928
7929 <td class="entry_range">
7930 </td>
7931
7932 <td class="entry_notes">
7933 Use as follows XYZ = inv(transform) * clip( (raw -
7934 black level(raw) ) /<wbr> ( white level - max black level) ).<wbr>
7935 At least in the simple case
7936 </td>
7937
7938 <td class="entry_tags">
7939 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007940 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007941 </ul>
7942 </td>
7943
7944 </tr> <!-- end of entry -->
7945
7946
7947 <tr class="entry" id="static_android.sensor.colorTransform2">
7948 <td class="entry_name">android.<wbr>sensor.<wbr>color<wbr>Transform2</td>
7949 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007950 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007951 <span class="entry_type_container">x</span>
7952
7953 <span class="entry_type_array">
7954 9
7955 </span>
7956
7957 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
7958
7959
7960 </td> <!-- entry_type -->
7961
7962 <td class="entry_description">
7963 Linear mapping from XYZ (D50) color space to
7964 reference linear sensor color,<wbr> for second reference
7965 illuminant
7966 </td>
7967
7968 <td class="entry_units">
7969 </td>
7970
7971 <td class="entry_range">
7972 </td>
7973
7974 <td class="entry_notes">
7975 </td>
7976
7977 <td class="entry_tags">
7978 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007979 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007980 </ul>
7981 </td>
7982
7983 </tr> <!-- end of entry -->
7984
7985
7986 <tr class="entry" id="static_android.sensor.forwardMatrix1">
7987 <td class="entry_name">android.<wbr>sensor.<wbr>forward<wbr>Matrix1</td>
7988 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007989 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007990 <span class="entry_type_container">x</span>
7991
7992 <span class="entry_type_array">
7993 9
7994 </span>
7995
7996 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
7997
7998
7999 </td> <!-- entry_type -->
8000
8001 <td class="entry_description">
8002 Used by DNG for better WB
8003 adaptation
8004 </td>
8005
8006 <td class="entry_units">
8007 </td>
8008
8009 <td class="entry_range">
8010 </td>
8011
8012 <td class="entry_notes">
8013 </td>
8014
8015 <td class="entry_tags">
8016 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008017 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008018 </ul>
8019 </td>
8020
8021 </tr> <!-- end of entry -->
8022
8023
8024 <tr class="entry" id="static_android.sensor.forwardMatrix2">
8025 <td class="entry_name">android.<wbr>sensor.<wbr>forward<wbr>Matrix2</td>
8026 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008027 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008028 <span class="entry_type_container">x</span>
8029
8030 <span class="entry_type_array">
8031 9
8032 </span>
8033
8034 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
8035
8036
8037 </td> <!-- entry_type -->
8038
8039 <td class="entry_description">
8040 Used by DNG for better WB
8041 adaptation
8042 </td>
8043
8044 <td class="entry_units">
8045 </td>
8046
8047 <td class="entry_range">
8048 </td>
8049
8050 <td class="entry_notes">
8051 </td>
8052
8053 <td class="entry_tags">
8054 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008055 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008056 </ul>
8057 </td>
8058
8059 </tr> <!-- end of entry -->
8060
8061
8062 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
8063 <td class="entry_name">android.<wbr>sensor.<wbr>max<wbr>Analog<wbr>Sensitivity</td>
8064 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008065 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008066
8067
8068
8069
8070 </td> <!-- entry_type -->
8071
8072 <td class="entry_description">
8073 Maximum sensitivity that is implemented
8074 purely through analog gain
8075 </td>
8076
8077 <td class="entry_units">
8078 </td>
8079
8080 <td class="entry_range">
8081 </td>
8082
8083 <td class="entry_notes">
8084 For android.<wbr>sensor.<wbr>sensitivity values less than or
8085 equal to this,<wbr> all applied gain must be analog.<wbr> For
8086 values above this,<wbr> it can be a mix of analog and
8087 digital
8088 </td>
8089
8090 <td class="entry_tags">
8091 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008092 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008093 </ul>
8094 </td>
8095
8096 </tr> <!-- end of entry -->
8097
8098
8099 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
8100 <td class="entry_name">android.<wbr>sensor.<wbr>noise<wbr>Model<wbr>Coefficients</td>
8101 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008102 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008103 <span class="entry_type_container">x</span>
8104
8105 <span class="entry_type_array">
8106 2
8107 </span>
8108
8109 <div class="entry_type_notes">float constants A,<wbr> B for the noise variance model</div>
8110
8111
8112 </td> <!-- entry_type -->
8113
8114 <td class="entry_description">
8115 Estimation of sensor noise
8116 characteristics
8117 </td>
8118
8119 <td class="entry_units">
8120 var(raw pixel value) = electrons * (baseGainFactor
8121 * iso/<wbr>100)^2 + A * (baseGainFactor * iso/<wbr>100)^2 +
8122 B
8123 </td>
8124
8125 <td class="entry_range">
8126 </td>
8127
8128 <td class="entry_notes">
8129 A represents sensor read noise before analog
8130 amplification; B represents noise from A/<wbr>D conversion and
8131 other circuits after amplification.<wbr> Both noise sources
8132 are assumed to be gaussian,<wbr> independent,<wbr> and not to vary
8133 across the sensor
8134 </td>
8135
8136 <td class="entry_tags">
8137 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008138 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008139 </ul>
8140 </td>
8141
8142 </tr> <!-- end of entry -->
8143
8144
8145 <tr class="entry" id="static_android.sensor.orientation">
8146 <td class="entry_name">android.<wbr>sensor.<wbr>orientation</td>
8147 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008148 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008149
8150
8151
8152
8153 </td> <!-- entry_type -->
8154
8155 <td class="entry_description">
8156 Clockwise angle through which the output
8157 image needs to be rotated to be upright on the device
8158 screen in its native orientation.<wbr> Also defines the
8159 direction of rolling shutter readout,<wbr> which is from top
8160 to bottom in the sensor's coordinate system
8161 </td>
8162
8163 <td class="entry_units">
8164 degrees clockwise rotation,<wbr> only multiples of
8165 90
8166 </td>
8167
8168 <td class="entry_range">
8169 0,<wbr>90,<wbr>180,<wbr>270
8170 </td>
8171
8172 <td class="entry_notes">
8173 </td>
8174
8175 <td class="entry_tags">
8176 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008177 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008178 </ul>
8179 </td>
8180
8181 </tr> <!-- end of entry -->
8182
8183
8184 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
8185 <td class="entry_name">android.<wbr>sensor.<wbr>reference<wbr>Illuminant1</td>
8186 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008187 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008188
8189
8190
8191 <ul class="entry_type_enum">
8192 <li>
8193 <span class="entry_type_enum_name">DAYLIGHT</span>
8194 <span class="entry_type_enum_value">1</span>
8195 </li>
8196 <li>
8197 <span class="entry_type_enum_name">FLUORESCENT</span>
8198 <span class="entry_type_enum_value">2</span>
8199 </li>
8200 <li>
8201 <span class="entry_type_enum_name">TUNGSTEN</span>
8202 <span class="entry_type_enum_value">3</span>
8203 <span class="entry_type_enum_notes">Incandescent light</span>
8204 </li>
8205 <li>
8206 <span class="entry_type_enum_name">FLASH</span>
8207 <span class="entry_type_enum_value">4</span>
8208 </li>
8209 <li>
8210 <span class="entry_type_enum_name">FINE_WEATHER</span>
8211 <span class="entry_type_enum_value">9</span>
8212 </li>
8213 <li>
8214 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
8215 <span class="entry_type_enum_value">10</span>
8216 </li>
8217 <li>
8218 <span class="entry_type_enum_name">SHADE</span>
8219 <span class="entry_type_enum_value">11</span>
8220 </li>
8221 <li>
8222 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
8223 <span class="entry_type_enum_value">12</span>
8224 <span class="entry_type_enum_notes">D 5700 - 7100K</span>
8225 </li>
8226 <li>
8227 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
8228 <span class="entry_type_enum_value">13</span>
8229 <span class="entry_type_enum_notes">N 4600 - 5400K</span>
8230 </li>
8231 <li>
8232 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
8233 <span class="entry_type_enum_value">14</span>
8234 <span class="entry_type_enum_notes">W 3900 - 4500K</span>
8235 </li>
8236 <li>
8237 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
8238 <span class="entry_type_enum_value">15</span>
8239 <span class="entry_type_enum_notes">WW 3200 - 3700K</span>
8240 </li>
8241 <li>
8242 <span class="entry_type_enum_name">STANDARD_A</span>
8243 <span class="entry_type_enum_value">17</span>
8244 </li>
8245 <li>
8246 <span class="entry_type_enum_name">STANDARD_B</span>
8247 <span class="entry_type_enum_value">18</span>
8248 </li>
8249 <li>
8250 <span class="entry_type_enum_name">STANDARD_C</span>
8251 <span class="entry_type_enum_value">19</span>
8252 </li>
8253 <li>
8254 <span class="entry_type_enum_name">D55</span>
8255 <span class="entry_type_enum_value">20</span>
8256 </li>
8257 <li>
8258 <span class="entry_type_enum_name">D65</span>
8259 <span class="entry_type_enum_value">21</span>
8260 </li>
8261 <li>
8262 <span class="entry_type_enum_name">D75</span>
8263 <span class="entry_type_enum_value">22</span>
8264 </li>
8265 <li>
8266 <span class="entry_type_enum_name">D50</span>
8267 <span class="entry_type_enum_value">23</span>
8268 </li>
8269 <li>
8270 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
8271 <span class="entry_type_enum_value">24</span>
8272 </li>
8273 </ul>
8274
8275 </td> <!-- entry_type -->
8276
8277 <td class="entry_description">
8278 Light source used to define transform
8279 1
8280 </td>
8281
8282 <td class="entry_units">
8283 </td>
8284
8285 <td class="entry_range">
8286 </td>
8287
8288 <td class="entry_notes">
8289 [EXIF LightSource tag] Must all these be
8290 supported? Need CCT for each!
8291 </td>
8292
8293 <td class="entry_tags">
8294 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008295 <li><a href="#tag_DNG">DNG</a></li>
8296 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008297 </ul>
8298 </td>
8299
8300 </tr> <!-- end of entry -->
8301
8302
8303 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
8304 <td class="entry_name">android.<wbr>sensor.<wbr>reference<wbr>Illuminant2</td>
8305 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008306 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008307
8308
8309
8310
8311 </td> <!-- entry_type -->
8312
8313 <td class="entry_description">
8314 Light source used to define transform
8315 2
8316 </td>
8317
8318 <td class="entry_units">
8319 Same as illuminant 1
8320 </td>
8321
8322 <td class="entry_range">
8323 </td>
8324
8325 <td class="entry_notes">
8326 </td>
8327
8328 <td class="entry_tags">
8329 </td>
8330
8331 </tr> <!-- end of entry -->
8332
8333
8334
8335 <!-- end of kind -->
8336 </tbody>
8337 <tr><td colspan="7" class="kind">dynamic</td></tr>
8338
8339 <thead>
8340 <tr>
8341 <th class="th_name">Property Name</th>
8342 <th class="th_type">Type</th>
8343 <th class="th_description">Description</th>
8344 <th class="th_units">Units</th>
8345 <th class="th_range">Range</th>
8346 <th class="th_notes">Notes</th>
8347 <th class="th_tags">Tags</th>
8348 </tr>
8349 </thead>
8350
8351 <tbody>
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362 <tr class="entry" id="dynamic_android.sensor.exposureTime">
8363 <td class="entry_name">android.<wbr>sensor.<wbr>exposure<wbr>Time</td>
8364 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008365 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008366
8367
8368
8369
8370 </td> <!-- entry_type -->
8371
8372 <td class="entry_description">
8373 Duration each pixel is exposed to
8374 light
8375 </td>
8376
8377 <td class="entry_units">
8378 nanoseconds
8379 </td>
8380
8381 <td class="entry_range">
8382 android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range
8383 </td>
8384
8385 <td class="entry_notes">
8386 1/<wbr>10000 - 30 sec range.<wbr> No bulb mode
8387 </td>
8388
8389 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008390 <ul class="entry_tags">
8391 <li><a href="#tag_V1">V1</a></li>
8392 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008393 </td>
8394
8395 </tr> <!-- end of entry -->
8396
8397
8398 <tr class="entry" id="dynamic_android.sensor.frameDuration">
8399 <td class="entry_name">android.<wbr>sensor.<wbr>frame<wbr>Duration</td>
8400 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008401 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008402
8403
8404
8405
8406 </td> <!-- entry_type -->
8407
8408 <td class="entry_description">
8409 Duration from start of frame exposure to
8410 start of next frame exposure
8411 </td>
8412
8413 <td class="entry_units">
8414 nanoseconds
8415 </td>
8416
8417 <td class="entry_range">
8418 see android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration,<wbr>
8419 android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations
8420 </td>
8421
8422 <td class="entry_notes">
8423 Exposure time has priority,<wbr> so duration is set to
8424 max(duration,<wbr> exposure time + overhead)
8425 </td>
8426
8427 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008428 <ul class="entry_tags">
8429 <li><a href="#tag_V1">V1</a></li>
8430 <li><a href="#tag_BC">BC</a></li>
8431 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008432 </td>
8433
8434 </tr> <!-- end of entry -->
8435
8436
8437 <tr class="entry" id="dynamic_android.sensor.sensitivity">
8438 <td class="entry_name">android.<wbr>sensor.<wbr>sensitivity</td>
8439 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008440 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008441
8442
8443
8444
8445 </td> <!-- entry_type -->
8446
8447 <td class="entry_description">
8448 Gain applied to image data.<wbr> Must be
8449 implemented through analog gain only if set to values
8450 below 'maximum analog sensitivity'.<wbr>
8451 </td>
8452
8453 <td class="entry_units">
8454 ISO arithmetic units
8455 </td>
8456
8457 <td class="entry_range">
8458 android.<wbr>sensor.<wbr>info.<wbr>sensitivity<wbr>Range
8459 </td>
8460
8461 <td class="entry_notes">
8462 ISO 12232:2006 REI method
8463 </td>
8464
8465 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008466 <ul class="entry_tags">
8467 <li><a href="#tag_V1">V1</a></li>
8468 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008469 </td>
8470
8471 </tr> <!-- end of entry -->
8472
8473
8474 <tr class="entry" id="dynamic_android.sensor.timestamp">
8475 <td class="entry_name">android.<wbr>sensor.<wbr>timestamp</td>
8476 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008477 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008478
8479
8480
8481
8482 </td> <!-- entry_type -->
8483
8484 <td class="entry_description">
8485 Time at start of exposure of first
8486 row
8487 </td>
8488
8489 <td class="entry_units">
8490 nanoseconds
8491 </td>
8492
8493 <td class="entry_range">
8494 > 0
8495 </td>
8496
8497 <td class="entry_notes">
8498 Monotonic,<wbr> should be synced to other timestamps in
8499 system
8500 </td>
8501
8502 <td class="entry_tags">
8503 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008504 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008505 </ul>
8506 </td>
8507
8508 </tr> <!-- end of entry -->
8509
8510
8511
8512 <!-- end of kind -->
8513 </tbody>
8514
8515 <!-- end of section -->
8516 <tr><td colspan="7" id="section_shading" class="section">shading</td></tr>
8517
8518
8519 <tr><td colspan="7" class="kind">controls</td></tr>
8520
8521 <thead>
8522 <tr>
8523 <th class="th_name">Property Name</th>
8524 <th class="th_type">Type</th>
8525 <th class="th_description">Description</th>
8526 <th class="th_units">Units</th>
8527 <th class="th_range">Range</th>
8528 <th class="th_notes">Notes</th>
8529 <th class="th_tags">Tags</th>
8530 </tr>
8531 </thead>
8532
8533 <tbody>
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544 <tr class="entry" id="controls_android.shading.mode">
8545 <td class="entry_name">android.<wbr>shading.<wbr>mode</td>
8546 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008547 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008548
8549
8550
8551 <ul class="entry_type_enum">
8552 <li>
8553 <span class="entry_type_enum_name">OFF</span>
8554 <span class="entry_type_enum_notes">No shading correction is applied</span>
8555 </li>
8556 <li>
8557 <span class="entry_type_enum_name">FAST</span>
8558 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
8559 bayer output</span>
8560 </li>
8561 <li>
8562 <span class="entry_type_enum_name">HIGH_QUALITY</span>
8563 <span class="entry_type_enum_notes">Frame rate may be reduced by high
8564 quality</span>
8565 </li>
8566 </ul>
8567
8568 </td> <!-- entry_type -->
8569
8570 <td class="entry_description">
8571 Quality of lens shading correction applied
8572 to the image data
8573 </td>
8574
8575 <td class="entry_units">
8576 </td>
8577
8578 <td class="entry_range">
8579 </td>
8580
8581 <td class="entry_notes">
8582 </td>
8583
8584 <td class="entry_tags">
8585 </td>
8586
8587 </tr> <!-- end of entry -->
8588
8589
8590 <tr class="entry" id="controls_android.shading.strength">
8591 <td class="entry_name">android.<wbr>shading.<wbr>strength</td>
8592 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008593 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008594
8595
8596
8597
8598 </td> <!-- entry_type -->
8599
8600 <td class="entry_description">
8601 Control the amount of shading correction
8602 applied to the images
8603 </td>
8604
8605 <td class="entry_units">
8606 unitless: 1-10; 10 is full shading
8607 compensation
8608 </td>
8609
8610 <td class="entry_range">
8611 </td>
8612
8613 <td class="entry_notes">
8614 </td>
8615
8616 <td class="entry_tags">
8617 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008618 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008619 </ul>
8620 </td>
8621
8622 </tr> <!-- end of entry -->
8623
8624
8625
8626 <!-- end of kind -->
8627 </tbody>
8628 <tr><td colspan="7" class="kind">dynamic</td></tr>
8629
8630 <thead>
8631 <tr>
8632 <th class="th_name">Property Name</th>
8633 <th class="th_type">Type</th>
8634 <th class="th_description">Description</th>
8635 <th class="th_units">Units</th>
8636 <th class="th_range">Range</th>
8637 <th class="th_notes">Notes</th>
8638 <th class="th_tags">Tags</th>
8639 </tr>
8640 </thead>
8641
8642 <tbody>
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653 <tr class="entry" id="dynamic_android.shading.mode">
8654 <td class="entry_name">android.<wbr>shading.<wbr>mode</td>
8655 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008656 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008657
8658
8659
8660 <ul class="entry_type_enum">
8661 <li>
8662 <span class="entry_type_enum_name">OFF</span>
8663 <span class="entry_type_enum_notes">No shading correction is applied</span>
8664 </li>
8665 <li>
8666 <span class="entry_type_enum_name">FAST</span>
8667 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
8668 bayer output</span>
8669 </li>
8670 <li>
8671 <span class="entry_type_enum_name">HIGH_QUALITY</span>
8672 <span class="entry_type_enum_notes">Frame rate may be reduced by high
8673 quality</span>
8674 </li>
8675 </ul>
8676
8677 </td> <!-- entry_type -->
8678
8679 <td class="entry_description">
8680 Quality of lens shading correction applied
8681 to the image data
8682 </td>
8683
8684 <td class="entry_units">
8685 </td>
8686
8687 <td class="entry_range">
8688 </td>
8689
8690 <td class="entry_notes">
8691 </td>
8692
8693 <td class="entry_tags">
8694 </td>
8695
8696 </tr> <!-- end of entry -->
8697
8698
8699
8700 <!-- end of kind -->
8701 </tbody>
8702
8703 <!-- end of section -->
8704 <tr><td colspan="7" id="section_statistics" class="section">statistics</td></tr>
8705
8706
8707 <tr><td colspan="7" class="kind">controls</td></tr>
8708
8709 <thead>
8710 <tr>
8711 <th class="th_name">Property Name</th>
8712 <th class="th_type">Type</th>
8713 <th class="th_description">Description</th>
8714 <th class="th_units">Units</th>
8715 <th class="th_range">Range</th>
8716 <th class="th_notes">Notes</th>
8717 <th class="th_tags">Tags</th>
8718 </tr>
8719 </thead>
8720
8721 <tbody>
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732 <tr class="entry" id="controls_android.statistics.faceDetectMode">
8733 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Detect<wbr>Mode</td>
8734 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008735 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008736
8737
8738
8739 <ul class="entry_type_enum">
8740 <li>
8741 <span class="entry_type_enum_name">OFF</span>
8742 </li>
8743 <li>
8744 <span class="entry_type_enum_name">SIMPLE</span>
8745 <span class="entry_type_enum_notes">Optional Return rectangle and confidence
8746 only</span>
8747 </li>
8748 <li>
8749 <span class="entry_type_enum_name">FULL</span>
8750 <span class="entry_type_enum_notes">Optional Return all face
8751 metadata</span>
8752 </li>
8753 </ul>
8754
8755 </td> <!-- entry_type -->
8756
8757 <td class="entry_description">
8758 State of the face detector
8759 unit
8760 </td>
8761
8762 <td class="entry_units">
8763 </td>
8764
8765 <td class="entry_range">
8766
8767 android.<wbr>statistics.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes
8768 </td>
8769
8770 <td class="entry_notes">
8771 </td>
8772
8773 <td class="entry_tags">
8774 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008775 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008776 </ul>
8777 </td>
8778
8779 </tr> <!-- end of entry -->
8780
8781
8782 <tr class="entry" id="controls_android.statistics.histogramMode">
8783 <td class="entry_name">android.<wbr>statistics.<wbr>histogram<wbr>Mode</td>
8784 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008785 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008786
8787
8788
8789 <ul class="entry_type_enum">
8790 <li>
8791 <span class="entry_type_enum_name">OFF</span>
8792 </li>
8793 <li>
8794 <span class="entry_type_enum_name">ON</span>
8795 </li>
8796 </ul>
8797
8798 </td> <!-- entry_type -->
8799
8800 <td class="entry_description">
8801 Operating mode for histogram
8802 generation
8803 </td>
8804
8805 <td class="entry_units">
8806 </td>
8807
8808 <td class="entry_range">
8809 </td>
8810
8811 <td class="entry_notes">
8812 </td>
8813
8814 <td class="entry_tags">
8815 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008816 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008817 </ul>
8818 </td>
8819
8820 </tr> <!-- end of entry -->
8821
8822
8823 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
8824 <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map<wbr>Mode</td>
8825 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008826 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008827
8828
8829
8830 <ul class="entry_type_enum">
8831 <li>
8832 <span class="entry_type_enum_name">OFF</span>
8833 </li>
8834 <li>
8835 <span class="entry_type_enum_name">ON</span>
8836 </li>
8837 </ul>
8838
8839 </td> <!-- entry_type -->
8840
8841 <td class="entry_description">
8842 Operating mode for sharpness map
8843 generation
8844 </td>
8845
8846 <td class="entry_units">
8847 </td>
8848
8849 <td class="entry_range">
8850 </td>
8851
8852 <td class="entry_notes">
8853 </td>
8854
8855 <td class="entry_tags">
8856 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008857 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008858 </ul>
8859 </td>
8860
8861 </tr> <!-- end of entry -->
8862
8863
8864
8865 <!-- end of kind -->
8866 </tbody>
8867 <tr><td colspan="7" class="kind">static</td></tr>
8868
8869 <thead>
8870 <tr>
8871 <th class="th_name">Property Name</th>
8872 <th class="th_type">Type</th>
8873 <th class="th_description">Description</th>
8874 <th class="th_units">Units</th>
8875 <th class="th_range">Range</th>
8876 <th class="th_notes">Notes</th>
8877 <th class="th_tags">Tags</th>
8878 </tr>
8879 </thead>
8880
8881 <tbody>
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
8895 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes</td>
8896 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008897 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008898 <span class="entry_type_container">x</span>
8899
8900 <span class="entry_type_array">
8901 n
8902 </span>
8903
8904 <div class="entry_type_notes">List of enums</div>
8905
8906
8907 </td> <!-- entry_type -->
8908
8909 <td class="entry_description">
8910 Which face detection modes are available,<wbr>
8911 if any
8912 </td>
8913
8914 <td class="entry_units">
8915 </td>
8916
8917 <td class="entry_range">
8918 OFF
8919 </td>
8920
8921 <td class="entry_notes">
8922 </td>
8923
8924 <td class="entry_tags">
8925 </td>
8926
8927 </tr> <!-- end of entry -->
8928
8929
8930 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
8931 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>histogram<wbr>Bucket<wbr>Count</td>
8932 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008933 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008934
8935
8936
8937
8938 </td> <!-- entry_type -->
8939
8940 <td class="entry_description">
8941 Number of histogram buckets
8942 supported
8943 </td>
8944
8945 <td class="entry_units">
8946 </td>
8947
8948 <td class="entry_range">
8949 >= 64
8950 </td>
8951
8952 <td class="entry_notes">
8953 </td>
8954
8955 <td class="entry_tags">
8956 </td>
8957
8958 </tr> <!-- end of entry -->
8959
8960
8961 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
8962 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Face<wbr>Count</td>
8963 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008964 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008965
8966
8967
8968
8969 </td> <!-- entry_type -->
8970
8971 <td class="entry_description">
8972 If face detection is supported,<wbr> how many
8973 faces can be detected at once
8974 </td>
8975
8976 <td class="entry_units">
8977 </td>
8978
8979 <td class="entry_range">
8980 >= 4 if availableFaceDetectionModes lists
8981 modes besides OFF,<wbr> otherwise 0
8982 </td>
8983
8984 <td class="entry_notes">
8985 </td>
8986
8987 <td class="entry_tags">
8988 </td>
8989
8990 </tr> <!-- end of entry -->
8991
8992
8993 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
8994 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Histogram<wbr>Count</td>
8995 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008996 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008997
8998
8999
9000
9001 </td> <!-- entry_type -->
9002
9003 <td class="entry_description">
9004 Maximum value possible for a histogram
9005 bucket
9006 </td>
9007
9008 <td class="entry_units">
9009 </td>
9010
9011 <td class="entry_range">
9012 </td>
9013
9014 <td class="entry_notes">
9015 </td>
9016
9017 <td class="entry_tags">
9018 </td>
9019
9020 </tr> <!-- end of entry -->
9021
9022
9023 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
9024 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Sharpness<wbr>Map<wbr>Value</td>
9025 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009026 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009027
9028
9029
9030
9031 </td> <!-- entry_type -->
9032
9033 <td class="entry_description">
9034 Maximum value possible for a sharpness map
9035 region.<wbr>
9036 </td>
9037
9038 <td class="entry_units">
9039 </td>
9040
9041 <td class="entry_range">
9042 </td>
9043
9044 <td class="entry_notes">
9045 </td>
9046
9047 <td class="entry_tags">
9048 </td>
9049
9050 </tr> <!-- end of entry -->
9051
9052
9053 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
9054 <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>sharpness<wbr>Map<wbr>Size</td>
9055 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009056 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009057 <span class="entry_type_container">x</span>
9058
9059 <span class="entry_type_array">
9060 2
9061 </span>
9062
9063 <div class="entry_type_notes">width x height</div>
9064
9065
9066 </td> <!-- entry_type -->
9067
9068 <td class="entry_description">
9069 Dimensions of the sharpness
9070 map
9071 </td>
9072
9073 <td class="entry_units">
9074 </td>
9075
9076 <td class="entry_range">
9077 Must be at least 32 x 32
9078 </td>
9079
9080 <td class="entry_notes">
9081 </td>
9082
9083 <td class="entry_tags">
9084 </td>
9085
9086 </tr> <!-- end of entry -->
9087
9088
9089
9090
9091
9092
9093 <!-- end of kind -->
9094 </tbody>
9095 <tr><td colspan="7" class="kind">dynamic</td></tr>
9096
9097 <thead>
9098 <tr>
9099 <th class="th_name">Property Name</th>
9100 <th class="th_type">Type</th>
9101 <th class="th_description">Description</th>
9102 <th class="th_units">Units</th>
9103 <th class="th_range">Range</th>
9104 <th class="th_notes">Notes</th>
9105 <th class="th_tags">Tags</th>
9106 </tr>
9107 </thead>
9108
9109 <tbody>
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
9121 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Detect<wbr>Mode</td>
9122 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009123 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009124
9125
9126
9127 <ul class="entry_type_enum">
9128 <li>
9129 <span class="entry_type_enum_name">OFF</span>
9130 </li>
9131 <li>
9132 <span class="entry_type_enum_name">SIMPLE</span>
9133 <span class="entry_type_enum_notes">Optional Return rectangle and confidence
9134 only</span>
9135 </li>
9136 <li>
9137 <span class="entry_type_enum_name">FULL</span>
9138 <span class="entry_type_enum_notes">Optional Return all face
9139 metadata</span>
9140 </li>
9141 </ul>
9142
9143 </td> <!-- entry_type -->
9144
9145 <td class="entry_description">
9146 State of the face detector
9147 unit
9148 </td>
9149
9150 <td class="entry_units">
9151 </td>
9152
9153 <td class="entry_range">
9154
9155 android.<wbr>statistics.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes
9156 </td>
9157
9158 <td class="entry_notes">
9159 </td>
9160
9161 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009162 <ul class="entry_tags">
9163 <li><a href="#tag_BC">BC</a></li>
9164 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009165 </td>
9166
9167 </tr> <!-- end of entry -->
9168
9169
9170 <tr class="entry" id="dynamic_android.statistics.faceIds">
9171 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Ids</td>
9172 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009173 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009174 <span class="entry_type_container">x</span>
9175
9176 <span class="entry_type_array">
9177 n
9178 </span>
9179
9180
9181
9182 </td> <!-- entry_type -->
9183
9184 <td class="entry_description">
9185 List of unique IDs for detected
9186 faces
9187 </td>
9188
9189 <td class="entry_units">
9190 </td>
9191
9192 <td class="entry_range">
9193 </td>
9194
9195 <td class="entry_notes">
9196 Only available if faceDetectMode == FULL
9197 </td>
9198
9199 <td class="entry_tags">
9200 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009201 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009202 </ul>
9203 </td>
9204
9205 </tr> <!-- end of entry -->
9206
9207
9208 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
9209 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Landmarks</td>
9210 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009211 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009212 <span class="entry_type_container">x</span>
9213
9214 <span class="entry_type_array">
9215 n x 6
9216 </span>
9217
9218 <div class="entry_type_notes">(leftEyeX,<wbr> leftEyeY,<wbr> rightEyeX,<wbr> rightEyeY,<wbr> mouthX,<wbr> mouthY)</div>
9219
9220
9221 </td> <!-- entry_type -->
9222
9223 <td class="entry_description">
9224 List of landmarks for detected
9225 faces
9226 </td>
9227
9228 <td class="entry_units">
9229 </td>
9230
9231 <td class="entry_range">
9232 </td>
9233
9234 <td class="entry_notes">
9235 Only available if faceDetectMode == FULL
9236 </td>
9237
9238 <td class="entry_tags">
9239 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009240 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009241 </ul>
9242 </td>
9243
9244 </tr> <!-- end of entry -->
9245
9246
9247 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
9248 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Rectangles</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 4
9255 </span>
9256
9257 <div class="entry_type_notes">(xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax).<wbr> (0,<wbr>0) is top-left of active pixel area</div>
9258
9259
9260 </td> <!-- entry_type -->
9261
9262 <td class="entry_description">
9263 List of the bounding rectangles for detected
9264 faces
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 Only available if faceDetectMode != OFF
9275 </td>
9276
9277 <td class="entry_tags">
9278 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009279 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009280 </ul>
9281 </td>
9282
9283 </tr> <!-- end of entry -->
9284
9285
9286 <tr class="entry" id="dynamic_android.statistics.faceScores">
9287 <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Scores</td>
9288 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009289 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009290 <span class="entry_type_container">x</span>
9291
9292 <span class="entry_type_array">
9293 n
9294 </span>
9295
9296
9297
9298 </td> <!-- entry_type -->
9299
9300 <td class="entry_description">
9301 List of the face confidence scores for
9302 detected faces
9303 </td>
9304
9305 <td class="entry_units">
9306 </td>
9307
9308 <td class="entry_range">
9309 0-100
9310 </td>
9311
9312 <td class="entry_notes">
9313 Only available if faceDetectMode != OFF
9314 </td>
9315
9316 <td class="entry_tags">
9317 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009318 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009319 </ul>
9320 </td>
9321
9322 </tr> <!-- end of entry -->
9323
9324
9325 <tr class="entry" id="dynamic_android.statistics.histogram">
9326 <td class="entry_name">android.<wbr>statistics.<wbr>histogram</td>
9327 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009328 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009329 <span class="entry_type_container">x</span>
9330
9331 <span class="entry_type_array">
9332 n x 3
9333 </span>
9334
9335 <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>
9336
9337
9338 </td> <!-- entry_type -->
9339
9340 <td class="entry_description">
9341 A 3-channel histogram based on the raw
9342 sensor data
9343 </td>
9344
9345 <td class="entry_units">
9346 </td>
9347
9348 <td class="entry_range">
9349 </td>
9350
9351 <td class="entry_notes">
9352 The k'th bucket (0-based) covers the input range
9353 (with w = android.<wbr>sensor.<wbr>info.<wbr>white<wbr>Level) of [ k * w/<wbr>N,<wbr>
9354 (k + 1) * w /<wbr> N ).<wbr> If only a monochrome sharpness map is
9355 supported,<wbr> all channels should have the same data
9356 </td>
9357
9358 <td class="entry_tags">
9359 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009360 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009361 </ul>
9362 </td>
9363
9364 </tr> <!-- end of entry -->
9365
9366
9367 <tr class="entry" id="dynamic_android.statistics.histogramMode">
9368 <td class="entry_name">android.<wbr>statistics.<wbr>histogram<wbr>Mode</td>
9369 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009370 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009371
9372
9373
9374 <ul class="entry_type_enum">
9375 <li>
9376 <span class="entry_type_enum_name">OFF</span>
9377 </li>
9378 <li>
9379 <span class="entry_type_enum_name">ON</span>
9380 </li>
9381 </ul>
9382
9383 </td> <!-- entry_type -->
9384
9385 <td class="entry_description">
9386 Operating mode for histogram
9387 generation
9388 </td>
9389
9390 <td class="entry_units">
9391 </td>
9392
9393 <td class="entry_range">
9394 </td>
9395
9396 <td class="entry_notes">
9397 </td>
9398
9399 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009400 <ul class="entry_tags">
9401 <li><a href="#tag_V1">V1</a></li>
9402 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009403 </td>
9404
9405 </tr> <!-- end of entry -->
9406
9407
9408 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
9409 <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map</td>
9410 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009411 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009412 <span class="entry_type_container">x</span>
9413
9414 <span class="entry_type_array">
9415 n x m x 3
9416 </span>
9417
9418 <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>
9419
9420
9421 </td> <!-- entry_type -->
9422
9423 <td class="entry_description">
9424 A 3-channel sharpness map,<wbr> based on the raw
9425 sensor data
9426 </td>
9427
9428 <td class="entry_units">
9429 </td>
9430
9431 <td class="entry_range">
9432 </td>
9433
9434 <td class="entry_notes">
9435 If only a monochrome sharpness map is supported,<wbr>
9436 all channels should have the same data
9437 </td>
9438
9439 <td class="entry_tags">
9440 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009441 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009442 </ul>
9443 </td>
9444
9445 </tr> <!-- end of entry -->
9446
9447
9448 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
9449 <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map<wbr>Mode</td>
9450 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009451 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009452
9453
9454
9455 <ul class="entry_type_enum">
9456 <li>
9457 <span class="entry_type_enum_name">OFF</span>
9458 </li>
9459 <li>
9460 <span class="entry_type_enum_name">ON</span>
9461 </li>
9462 </ul>
9463
9464 </td> <!-- entry_type -->
9465
9466 <td class="entry_description">
9467 Operating mode for sharpness map
9468 generation
9469 </td>
9470
9471 <td class="entry_units">
9472 </td>
9473
9474 <td class="entry_range">
9475 </td>
9476
9477 <td class="entry_notes">
9478 </td>
9479
9480 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009481 <ul class="entry_tags">
9482 <li><a href="#tag_V1">V1</a></li>
9483 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009484 </td>
9485
9486 </tr> <!-- end of entry -->
9487
9488
9489
9490 <!-- end of kind -->
9491 </tbody>
9492
9493 <!-- end of section -->
9494 <tr><td colspan="7" id="section_tonemap" class="section">tonemap</td></tr>
9495
9496
9497 <tr><td colspan="7" class="kind">controls</td></tr>
9498
9499 <thead>
9500 <tr>
9501 <th class="th_name">Property Name</th>
9502 <th class="th_type">Type</th>
9503 <th class="th_description">Description</th>
9504 <th class="th_units">Units</th>
9505 <th class="th_range">Range</th>
9506 <th class="th_notes">Notes</th>
9507 <th class="th_tags">Tags</th>
9508 </tr>
9509 </thead>
9510
9511 <tbody>
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522 <tr class="entry" id="controls_android.tonemap.curveBlue">
9523 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Blue</td>
9524 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08009525 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009526
9527
9528
9529
9530 </td> <!-- entry_type -->
9531
9532 <td class="entry_description">
9533 Table mapping blue input values to output
9534 values
9535 </td>
9536
9537 <td class="entry_units">
9538 same as android.<wbr>tonemap.<wbr>curve<wbr>Red
9539 </td>
9540
9541 <td class="entry_range">
9542 same as android.<wbr>tonemap.<wbr>curve<wbr>Red
9543 </td>
9544
9545 <td class="entry_notes">
9546 </td>
9547
9548 <td class="entry_tags">
9549 </td>
9550
9551 </tr> <!-- end of entry -->
9552
9553
9554 <tr class="entry" id="controls_android.tonemap.curveGreen">
9555 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Green</td>
9556 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08009557 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009558
9559
9560
9561
9562 </td> <!-- entry_type -->
9563
9564 <td class="entry_description">
9565 Table mapping green input values to output
9566 values
9567 </td>
9568
9569 <td class="entry_units">
9570 same as android.<wbr>tonemap.<wbr>curve<wbr>Red
9571 </td>
9572
9573 <td class="entry_range">
9574 same as android.<wbr>tonemap.<wbr>curve<wbr>Red
9575 </td>
9576
9577 <td class="entry_notes">
9578 </td>
9579
9580 <td class="entry_tags">
9581 </td>
9582
9583 </tr> <!-- end of entry -->
9584
9585
9586 <tr class="entry" id="controls_android.tonemap.curveRed">
9587 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Red</td>
9588 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009589 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009590 <span class="entry_type_container">x</span>
9591
9592 <span class="entry_type_array">
9593 n x 2
9594 </span>
9595
9596 <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>
9597
9598
9599 </td> <!-- entry_type -->
9600
9601 <td class="entry_description">
9602 Table mapping red input values to output
9603 values
9604 </td>
9605
9606 <td class="entry_units">
9607 </td>
9608
9609 <td class="entry_range">
9610 0-1 on input and output coordinates.<wbr> Max entry
9611 count speciied by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points
9612 </td>
9613
9614 <td class="entry_notes">
9615 .<wbr>The input range must be monotonically increasing
9616 with N,<wbr> and values between entries should be linearly
9617 interpolated.<wbr> For example,<wbr> if the array is: [0.<wbr>0,<wbr> 0.<wbr>0,<wbr>
9618 0.<wbr>3,<wbr> 0.<wbr>5,<wbr> 1.<wbr>0,<wbr> 1.<wbr>0],<wbr> then the input->output mapping
9619 for a few sample points would be: 0 -> 0,<wbr> 0.<wbr>15 ->
9620 0.<wbr>25,<wbr> 0.<wbr>3 -> 0.<wbr>5,<wbr> 0.<wbr>5 -> 0.<wbr>64
9621 </td>
9622
9623 <td class="entry_tags">
9624 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009625 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009626 </ul>
9627 </td>
9628
9629 </tr> <!-- end of entry -->
9630
9631
9632 <tr class="entry" id="controls_android.tonemap.mode">
9633 <td class="entry_name">android.<wbr>tonemap.<wbr>mode</td>
9634 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009635 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009636
9637
9638
9639 <ul class="entry_type_enum">
9640 <li>
9641 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
9642 <span class="entry_type_enum_notes">Use the tone mapping curve specified in
9643 android.<wbr>tonemap.<wbr>curve</span>
9644 </li>
9645 <li>
9646 <span class="entry_type_enum_name">FAST</span>
9647 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
9648 bayer output</span>
9649 </li>
9650 <li>
9651 <span class="entry_type_enum_name">HIGH_QUALITY</span>
9652 <span class="entry_type_enum_notes">Frame rate may be reduced by high
9653 quality</span>
9654 </li>
9655 </ul>
9656
9657 </td> <!-- entry_type -->
9658
9659 <td class="entry_description">
9660 </td>
9661
9662 <td class="entry_units">
9663 </td>
9664
9665 <td class="entry_range">
9666 </td>
9667
9668 <td class="entry_notes">
9669 </td>
9670
9671 <td class="entry_tags">
9672 </td>
9673
9674 </tr> <!-- end of entry -->
9675
9676
9677
9678 <!-- end of kind -->
9679 </tbody>
9680 <tr><td colspan="7" class="kind">static</td></tr>
9681
9682 <thead>
9683 <tr>
9684 <th class="th_name">Property Name</th>
9685 <th class="th_type">Type</th>
9686 <th class="th_description">Description</th>
9687 <th class="th_units">Units</th>
9688 <th class="th_range">Range</th>
9689 <th class="th_notes">Notes</th>
9690 <th class="th_tags">Tags</th>
9691 </tr>
9692 </thead>
9693
9694 <tbody>
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
9706 <td class="entry_name">android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points</td>
9707 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009708 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009709
9710
9711
9712
9713 </td> <!-- entry_type -->
9714
9715 <td class="entry_description">
9716 Maximum number of supported points in the
9717 tonemap curve
9718 </td>
9719
9720 <td class="entry_units">
9721 </td>
9722
9723 <td class="entry_range">
9724 >= 128
9725 </td>
9726
9727 <td class="entry_notes">
9728 </td>
9729
9730 <td class="entry_tags">
9731 </td>
9732
9733 </tr> <!-- end of entry -->
9734
9735
9736
9737 <!-- end of kind -->
9738 </tbody>
9739 <tr><td colspan="7" class="kind">dynamic</td></tr>
9740
9741 <thead>
9742 <tr>
9743 <th class="th_name">Property Name</th>
9744 <th class="th_type">Type</th>
9745 <th class="th_description">Description</th>
9746 <th class="th_units">Units</th>
9747 <th class="th_range">Range</th>
9748 <th class="th_notes">Notes</th>
9749 <th class="th_tags">Tags</th>
9750 </tr>
9751 </thead>
9752
9753 <tbody>
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
9765 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Blue</td>
9766 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08009767 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009768
9769
9770
9771
9772 </td> <!-- entry_type -->
9773
9774 <td class="entry_description">
9775 Table mapping blue input values to output
9776 values
9777 </td>
9778
9779 <td class="entry_units">
9780 same as android.<wbr>tonemap.<wbr>curve<wbr>Red
9781 </td>
9782
9783 <td class="entry_range">
9784 same as android.<wbr>tonemap.<wbr>curve<wbr>Red
9785 </td>
9786
9787 <td class="entry_notes">
9788 </td>
9789
9790 <td class="entry_tags">
9791 </td>
9792
9793 </tr> <!-- end of entry -->
9794
9795
9796 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
9797 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Green</td>
9798 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08009799 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009800
9801
9802
9803
9804 </td> <!-- entry_type -->
9805
9806 <td class="entry_description">
9807 Table mapping green input values to output
9808 values
9809 </td>
9810
9811 <td class="entry_units">
9812 same as android.<wbr>tonemap.<wbr>curve<wbr>Red
9813 </td>
9814
9815 <td class="entry_range">
9816 same as android.<wbr>tonemap.<wbr>curve<wbr>Red
9817 </td>
9818
9819 <td class="entry_notes">
9820 </td>
9821
9822 <td class="entry_tags">
9823 </td>
9824
9825 </tr> <!-- end of entry -->
9826
9827
9828 <tr class="entry" id="dynamic_android.tonemap.curveRed">
9829 <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Red</td>
9830 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009831 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009832 <span class="entry_type_container">x</span>
9833
9834 <span class="entry_type_array">
9835 n x 2
9836 </span>
9837
9838 <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>
9839
9840
9841 </td> <!-- entry_type -->
9842
9843 <td class="entry_description">
9844 Table mapping red input values to output
9845 values
9846 </td>
9847
9848 <td class="entry_units">
9849 </td>
9850
9851 <td class="entry_range">
9852 0-1 on input and output coordinates.<wbr> Max entry
9853 count speciied by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points
9854 </td>
9855
9856 <td class="entry_notes">
9857 .<wbr>The input range must be monotonically increasing
9858 with N,<wbr> and values between entries should be linearly
9859 interpolated.<wbr> For example,<wbr> if the array is: [0.<wbr>0,<wbr> 0.<wbr>0,<wbr>
9860 0.<wbr>3,<wbr> 0.<wbr>5,<wbr> 1.<wbr>0,<wbr> 1.<wbr>0],<wbr> then the input->output mapping
9861 for a few sample points would be: 0 -> 0,<wbr> 0.<wbr>15 ->
9862 0.<wbr>25,<wbr> 0.<wbr>3 -> 0.<wbr>5,<wbr> 0.<wbr>5 -> 0.<wbr>64
9863 </td>
9864
9865 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009866 <ul class="entry_tags">
9867 <li><a href="#tag_DNG">DNG</a></li>
9868 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009869 </td>
9870
9871 </tr> <!-- end of entry -->
9872
9873
9874 <tr class="entry" id="dynamic_android.tonemap.mode">
9875 <td class="entry_name">android.<wbr>tonemap.<wbr>mode</td>
9876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009877 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009878
9879
9880
9881 <ul class="entry_type_enum">
9882 <li>
9883 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
9884 <span class="entry_type_enum_notes">Use the tone mapping curve specified in
9885 android.<wbr>tonemap.<wbr>curve</span>
9886 </li>
9887 <li>
9888 <span class="entry_type_enum_name">FAST</span>
9889 <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
9890 bayer output</span>
9891 </li>
9892 <li>
9893 <span class="entry_type_enum_name">HIGH_QUALITY</span>
9894 <span class="entry_type_enum_notes">Frame rate may be reduced by high
9895 quality</span>
9896 </li>
9897 </ul>
9898
9899 </td> <!-- entry_type -->
9900
9901 <td class="entry_description">
9902 </td>
9903
9904 <td class="entry_units">
9905 </td>
9906
9907 <td class="entry_range">
9908 </td>
9909
9910 <td class="entry_notes">
9911 </td>
9912
9913 <td class="entry_tags">
9914 </td>
9915
9916 </tr> <!-- end of entry -->
9917
9918
9919
9920 <!-- end of kind -->
9921 </tbody>
9922
9923 <!-- end of section -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -07009924 <tr><td colspan="7" id="section_led" class="section">led</td></tr>
9925
9926
9927 <tr><td colspan="7" class="kind">controls</td></tr>
9928
9929 <thead>
9930 <tr>
9931 <th class="th_name">Property Name</th>
9932 <th class="th_type">Type</th>
9933 <th class="th_description">Description</th>
9934 <th class="th_units">Units</th>
9935 <th class="th_range">Range</th>
9936 <th class="th_notes">Notes</th>
9937 <th class="th_tags">Tags</th>
9938 </tr>
9939 </thead>
9940
9941 <tbody>
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952 <tr class="entry" id="controls_android.led.transmit">
9953 <td class="entry_name">android.<wbr>led.<wbr>transmit</td>
9954 <td class="entry_type">
9955 <span class="entry_type_name entry_type_name_enum">byte</span>
9956
9957
9958
9959 <ul class="entry_type_enum">
9960 <li>
9961 <span class="entry_type_enum_name">OFF</span>
9962 </li>
9963 <li>
9964 <span class="entry_type_enum_name">ON</span>
9965 </li>
9966 </ul>
9967
9968 </td> <!-- entry_type -->
9969
9970 <td class="entry_description">
9971 This LED is nominally used to indicate to the user
9972 that the camera is powered on and may be streaming images back to the
9973 Application Processor.<wbr> In certain rare circumstances,<wbr> the OS may
9974 disable this when video is processed locally and not transmitted to
9975 any untrusted applications.<wbr>
9976<br>
9977<br> In particular,<wbr> the LED *must* always be on when the data could be
9978 transmitted off the device.<wbr> The LED *should* always be on whenever
9979 data is stored locally on the device.<wbr>
9980<br>
9981<br> The LED *may* be off if a trusted application is using the data that
9982 doesn't violate the above rules.<wbr>
9983
9984 </td>
9985
9986 <td class="entry_units">
9987 </td>
9988
9989 <td class="entry_range">
9990 </td>
9991
9992 <td class="entry_notes">
9993 </td>
9994
9995 <td class="entry_tags">
9996 </td>
9997
9998 </tr> <!-- end of entry -->
9999
10000
10001
10002 <!-- end of kind -->
10003 </tbody>
10004 <tr><td colspan="7" class="kind">dynamic</td></tr>
10005
10006 <thead>
10007 <tr>
10008 <th class="th_name">Property Name</th>
10009 <th class="th_type">Type</th>
10010 <th class="th_description">Description</th>
10011 <th class="th_units">Units</th>
10012 <th class="th_range">Range</th>
10013 <th class="th_notes">Notes</th>
10014 <th class="th_tags">Tags</th>
10015 </tr>
10016 </thead>
10017
10018 <tbody>
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029 <tr class="entry" id="dynamic_android.led.transmit">
10030 <td class="entry_name">android.<wbr>led.<wbr>transmit</td>
10031 <td class="entry_type">
10032 <span class="entry_type_name entry_type_name_enum">byte</span>
10033
10034
10035
10036 <ul class="entry_type_enum">
10037 <li>
10038 <span class="entry_type_enum_name">OFF</span>
10039 </li>
10040 <li>
10041 <span class="entry_type_enum_name">ON</span>
10042 </li>
10043 </ul>
10044
10045 </td> <!-- entry_type -->
10046
10047 <td class="entry_description">
10048 This LED is nominally used to indicate to the user
10049 that the camera is powered on and may be streaming images back to the
10050 Application Processor.<wbr> In certain rare circumstances,<wbr> the OS may
10051 disable this when video is processed locally and not transmitted to
10052 any untrusted applications.<wbr>
10053<br>
10054<br> In particular,<wbr> the LED *must* always be on when the data could be
10055 transmitted off the device.<wbr> The LED *should* always be on whenever
10056 data is stored locally on the device.<wbr>
10057<br>
10058<br> The LED *may* be off if a trusted application is using the data that
10059 doesn't violate the above rules.<wbr>
10060
10061 </td>
10062
10063 <td class="entry_units">
10064 </td>
10065
10066 <td class="entry_range">
10067 </td>
10068
10069 <td class="entry_notes">
10070 </td>
10071
10072 <td class="entry_tags">
10073 </td>
10074
10075 </tr> <!-- end of entry -->
10076
10077
10078
10079 <!-- end of kind -->
10080 </tbody>
10081 <tr><td colspan="7" class="kind">static</td></tr>
10082
10083 <thead>
10084 <tr>
10085 <th class="th_name">Property Name</th>
10086 <th class="th_type">Type</th>
10087 <th class="th_description">Description</th>
10088 <th class="th_units">Units</th>
10089 <th class="th_range">Range</th>
10090 <th class="th_notes">Notes</th>
10091 <th class="th_tags">Tags</th>
10092 </tr>
10093 </thead>
10094
10095 <tbody>
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106 <tr class="entry" id="static_android.led.availableLeds">
10107 <td class="entry_name">android.<wbr>led.<wbr>available<wbr>Leds</td>
10108 <td class="entry_type">
10109 <span class="entry_type_name entry_type_name_enum">byte</span>
10110 <span class="entry_type_container">x</span>
10111
10112 <span class="entry_type_array">
10113 n
10114 </span>
10115
10116
10117 <ul class="entry_type_enum">
10118 <li>
10119 <span class="entry_type_enum_name">TRANSMIT</span>
10120 <span class="entry_type_enum_notes">android.<wbr>led.<wbr>transmit control is used</span>
10121 </li>
10122 </ul>
10123
10124 </td> <!-- entry_type -->
10125
10126 <td class="entry_description">
10127 A list of camera LEDs that are available on this system.<wbr>
10128
10129 </td>
10130
10131 <td class="entry_units">
10132 </td>
10133
10134 <td class="entry_range">
10135 </td>
10136
10137 <td class="entry_notes">
10138 </td>
10139
10140 <td class="entry_tags">
10141 </td>
10142
10143 </tr> <!-- end of entry -->
10144
10145
10146
10147 <!-- end of kind -->
10148 </tbody>
10149
10150 <!-- end of section -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070010151 <tr><td colspan="7" id="section_info" class="section">info</td></tr>
10152
10153
10154 <tr><td colspan="7" class="kind">static</td></tr>
10155
10156 <thead>
10157 <tr>
10158 <th class="th_name">Property Name</th>
10159 <th class="th_type">Type</th>
10160 <th class="th_description">Description</th>
10161 <th class="th_units">Units</th>
10162 <th class="th_range">Range</th>
10163 <th class="th_notes">Notes</th>
10164 <th class="th_tags">Tags</th>
10165 </tr>
10166 </thead>
10167
10168 <tbody>
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179 <tr class="entry" id="static_android.info.supportedHardwareLevel">
10180 <td class="entry_name">android.<wbr>info.<wbr>supported<wbr>Hardware<wbr>Level</td>
10181 <td class="entry_type">
10182 <span class="entry_type_name entry_type_name_enum">byte</span>
10183
10184
10185
10186 <ul class="entry_type_enum">
10187 <li>
10188 <span class="entry_type_enum_name">LIMITED</span>
10189 </li>
10190 <li>
10191 <span class="entry_type_enum_name">FULL</span>
10192 </li>
10193 </ul>
10194
10195 </td> <!-- entry_type -->
10196
10197 <td class="entry_description">
10198
10199 The camera 3 HAL device can implement one of two possible operational modes;
10200 limited and full.<wbr> Full support is expected from new higher-end
10201 devices.<wbr> Limited mode has hardware requirements roughly in line with those
10202 for a camera HAL device v1 implementation,<wbr> and is expected from older or
10203 inexpensive devices.<wbr> Full is a strict superset of limited,<wbr> and they share the
10204 same essential operational flow.<wbr>
10205<br>
10206<br> For full details refer to "S3.<wbr> Operational Modes" in camera3.<wbr>h
10207
10208 </td>
10209
10210 <td class="entry_units">
10211 </td>
10212
10213 <td class="entry_range">
10214 Optional.<wbr> Default value is LIMITED.<wbr>
10215 </td>
10216
10217 <td class="entry_notes">
10218 </td>
10219
10220 <td class="entry_tags">
10221 </td>
10222
10223 </tr> <!-- end of entry -->
10224
10225
10226
10227 <!-- end of kind -->
10228 </tbody>
10229
10230 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010231<!-- </namespace> -->
10232 </table>
10233
10234 <div class="tags" id="tag_index">
10235 <h2>Tags</h2>
10236 <ul>
10237 <li id="tag_AWB">AWB -
10238 Needed for auto white balance
10239
10240 <ul class="tags_entries">
10241 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
10242 </ul>
10243 </li> <!-- tag_AWB -->
10244 <li id="tag_BC">BC -
10245 Needed for backwards compatibility with old Java API
10246
10247 <ul class="tags_entries">
10248 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
10249 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
10250 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
10251 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
10252 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070010253 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010254 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
10255 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070010256 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010257 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
10258 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
10259 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
10260 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
10261 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
10262 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
10263 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
10264 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
10265 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
10266 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
10267 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
10268 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
10269 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
10270 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
10271 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
10272 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
10273 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
10274 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
10275 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
10276 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
10277 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
10278 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
10279 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
10280 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
10281 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
10282 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
10283 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
10284 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
10285 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
10286 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
10287 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
10288 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
10289 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
10290 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
10291 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
10292 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010293 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010294 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
10295 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
10296 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010297 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
10298 <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</a> (static)</li>
10299 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
10300 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
10301 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
10302 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
10303 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
10304 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
10305 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
10306 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
10307 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
10308 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
10309 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
10310 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
10311 </ul>
10312 </li> <!-- tag_BC -->
10313 <li id="tag_V1">V1 -
10314 New features for first camera 2 release (API1)
10315
10316 <ul class="tags_entries">
10317 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
10318 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
10319 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
10320 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
10321 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
10322 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
10323 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
10324 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
10325 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
10326 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
10327 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
10328 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
10329 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
10330 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
10331 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
10332 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
10333 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
10334 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
10335 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
10336 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
10337 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
10338 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
10339 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
10340 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
10341 <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</a> (static)</li>
10342 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
10343 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
10344 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
10345 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
10346 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
10347 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
10348 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
10349 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
10350 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
10351 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
10352 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
10353 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
10354 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
10355 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
10356 </ul>
10357 </li> <!-- tag_V1 -->
10358 <li id="tag_ADV">ADV - None
10359 <ul class="tags_entries">
10360 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
10361 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
10362 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
10363 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
10364 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
10365 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
10366 </ul>
10367 </li> <!-- tag_ADV -->
10368 <li id="tag_DNG">DNG -
10369 Needed for DNG file support
10370
10371 <ul class="tags_entries">
10372 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
10373 <li><a href="#static_android.lens.info.shadingMap">android.lens.info.shadingMap</a> (static)</li>
10374 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
10375 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
10376 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
10377 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
10378 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
10379 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
10380 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
10381 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
10382 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
10383 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
10384 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
10385 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
10386 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
10387 </ul>
10388 </li> <!-- tag_DNG -->
10389 <li id="tag_EXIF">EXIF - None
10390 <ul class="tags_entries">
10391 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
10392 </ul>
10393 </li> <!-- tag_EXIF -->
10394 </ul>
10395 </div>
10396
10397 [ <a href="#">top</a> ]
10398
10399</body>
10400</html>