blob: 5b3cde28dbd8b5e1ff6ca17dff4651a40a1b23e2 [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" />
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070020 <title>Android Camera HAL3.0 Properties</title>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021 <style type="text/css">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022 body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
23 h1 { color: #333333; }
24 h2 { color: #333333; }
25 a:link { color: #258aaf; text-decoration: none}
26 a:hover { color: #459aaf; text-decoration: underline }
27 a:visited { color: #154a5f; text-decoration: none}
28 .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777}
29 .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
30 .entry { background-color: #f0f0f0 }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080031 .entry_cont { background-color: #f0f0f0 }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070032 .entries_header { background-color: #dddddd; text-align: center}
33
34 /* toc style */
35 .toc_section_header { font-size:1.3em; }
36 .toc_kind_header { font-size:1.2em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080037
38 /* table column sizes */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070039 table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
40 td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080041 .th_name { width: 20% }
42 .th_units { width: 10% }
43 .th_tags { width: 5% }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080044 .th_details { width: 25% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080045 .th_type { width: 20% }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070046 .th_description { width: 20% }
47 .th_range { width: 10% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080048 td { font-size: 0.9em; }
49
50 /* hide the first thead, we need it there only to enforce column sizes */
51 .thead_dummy { visibility: hidden; }
52
53 /* Entry flair */
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080054 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080055
56 /* Entry type flair */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070057 .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
58 .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
59 .entry_type_visibility { font-weight: bolder; padding-left:1em}
Igor Murashkin08b8aad2012-11-29 15:23:03 -080060 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
61 .entry_type_enum_notes:before { content:" - " }
Igor Murashkina10351a2014-01-15 17:05:22 -080062 .entry_type_enum_notes>p:first-child { display:inline; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080063 .entry_type_enum_value:before { content:" = " }
64 .entry_type_enum_value { font-family: monospace; }
65 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
66 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
67
68 /* Entry tags flair */
69 .entry_tags ul { list-style-type: none; }
70
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080071 /* Entry details (full docs) flair */
72 .entry_details_header { font-weight: bold; background-color: #dddddd;
73 text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
74
75 /* Entry spacer flair */
76 .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080077
78 /* TODO: generate abbr element for each tag link? */
79 /* TODO for each x.y.z try to link it to the entry */
80
81 </style>
82
83 <style>
84
85 {
86 /* broken...
87 supposedly there is a bug in chrome that it lays out tables before
88 it knows its being printed, so the page-break-* styles are ignored
89 */
90 tr { page-break-after: always; page-break-inside: avoid; }
91 }
92
93 </style>
94</head>
95
96
97
Igor Murashkin08b8aad2012-11-29 15:23:03 -080098<body>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070099 <h1>Android Camera HAL3.0 Properties</h1>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800100
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700101
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800102 <h2>Table of Contents</h2>
103 <ul class="toc">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700104 <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
105 <li>
106 <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
107 <ul class="toc_section">
108 <li>
109 <span class="toc_kind_header">controls</span>
110 <ul class="toc_section">
111 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
112 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700113 <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700114 </ul>
115 </li>
116 <li>
117 <span class="toc_kind_header">dynamic</span>
118 <ul class="toc_section">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700119 <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
120 <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700121 </ul>
122 </li>
123 </ul> <!-- toc_section -->
124 </li>
125 <li>
126 <span class="toc_section_header"><a href="#section_control">control</a></span>
127 <ul class="toc_section">
128 <li>
129 <span class="toc_kind_header">controls</span>
130 <ul class="toc_section">
131 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
132 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
133 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
134 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
135 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
136 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
137 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
138 <li><a href="#controls_android.control.afMode">android.control.afMode</a></li>
139 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
140 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
141 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
142 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
143 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
144 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
145 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
146 <li><a href="#controls_android.control.mode">android.control.mode</a></li>
147 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
148 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
149 </ul>
150 </li>
151 <li>
152 <span class="toc_kind_header">static</span>
153 <ul class="toc_section">
154 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
155 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
156 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
157 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
158 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
159 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
160 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
161 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
162 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
163 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
164 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
165 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
166 </ul>
167 </li>
168 <li>
169 <span class="toc_kind_header">dynamic</span>
170 <ul class="toc_section">
171 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -0800172 <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700173 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
174 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
175 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
176 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
177 <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
178 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
179 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
180 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
181 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
182 <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
183 </ul>
184 </li>
185 </ul> <!-- toc_section -->
186 </li>
187 <li>
188 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
189 <ul class="toc_section">
190 <li>
191 <span class="toc_kind_header">controls</span>
192 <ul class="toc_section">
193 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
194 </ul>
195 </li>
196 </ul> <!-- toc_section -->
197 </li>
198 <li>
199 <span class="toc_section_header"><a href="#section_edge">edge</a></span>
200 <ul class="toc_section">
201 <li>
202 <span class="toc_kind_header">controls</span>
203 <ul class="toc_section">
204 <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
205 <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
206 </ul>
207 </li>
208 <li>
209 <span class="toc_kind_header">dynamic</span>
210 <ul class="toc_section">
211 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
212 </ul>
213 </li>
214 </ul> <!-- toc_section -->
215 </li>
216 <li>
217 <span class="toc_section_header"><a href="#section_flash">flash</a></span>
218 <ul class="toc_section">
219 <li>
220 <span class="toc_kind_header">controls</span>
221 <ul class="toc_section">
222 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
223 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
224 <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
225 </ul>
226 </li>
227 <li>
228 <span class="toc_kind_header">static</span>
229 <ul class="toc_section">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800230
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700231 <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
232 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700234 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
235 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
236 </ul>
237 </li>
238 <li>
239 <span class="toc_kind_header">dynamic</span>
240 <ul class="toc_section">
241 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
242 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
243 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
244 <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
245 </ul>
246 </li>
247 </ul> <!-- toc_section -->
248 </li>
249 <li>
250 <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
251 <ul class="toc_section">
252 <li>
253 <span class="toc_kind_header">controls</span>
254 <ul class="toc_section">
255 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
256 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
257 </ul>
258 </li>
259 </ul> <!-- toc_section -->
260 </li>
261 <li>
262 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
263 <ul class="toc_section">
264 <li>
265 <span class="toc_kind_header">controls</span>
266 <ul class="toc_section">
267 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
268 </ul>
269 </li>
270 <li>
271 <span class="toc_kind_header">static</span>
272 <ul class="toc_section">
273
274 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>
275
276 </ul>
277 </li>
278 <li>
279 <span class="toc_kind_header">dynamic</span>
280 <ul class="toc_section">
281 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
282 </ul>
283 </li>
284 </ul> <!-- toc_section -->
285 </li>
286 <li>
287 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
288 <ul class="toc_section">
289 <li>
290 <span class="toc_kind_header">controls</span>
291 <ul class="toc_section">
292 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
293 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
294 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
295 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
296 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
297 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
298 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
299 </ul>
300 </li>
301 <li>
302 <span class="toc_kind_header">static</span>
303 <ul class="toc_section">
304 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
305 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
306 </ul>
307 </li>
308 <li>
309 <span class="toc_kind_header">dynamic</span>
310 <ul class="toc_section">
311 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
312 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
313 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
314 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
315 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
316 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
317 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
318 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
319 </ul>
320 </li>
321 </ul> <!-- toc_section -->
322 </li>
323 <li>
324 <span class="toc_section_header"><a href="#section_lens">lens</a></span>
325 <ul class="toc_section">
326 <li>
327 <span class="toc_kind_header">controls</span>
328 <ul class="toc_section">
329 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
330 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
331 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
332 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
333 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
334 </ul>
335 </li>
336 <li>
337 <span class="toc_kind_header">static</span>
338 <ul class="toc_section">
339
340 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
341 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
342 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
343 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
344 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
345 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
346 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
347 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700348 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
349
350 <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
351 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
352 <li><a href="#static_android.lens.position">android.lens.position</a></li>
353 </ul>
354 </li>
355 <li>
356 <span class="toc_kind_header">dynamic</span>
357 <ul class="toc_section">
358 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
359 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
360 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
361 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
362 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
363 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
364 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
365 </ul>
366 </li>
367 </ul> <!-- toc_section -->
368 </li>
369 <li>
370 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
371 <ul class="toc_section">
372 <li>
373 <span class="toc_kind_header">controls</span>
374 <ul class="toc_section">
375 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
376 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
377 </ul>
378 </li>
379 <li>
380 <span class="toc_kind_header">dynamic</span>
381 <ul class="toc_section">
382 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
383 </ul>
384 </li>
385 </ul> <!-- toc_section -->
386 </li>
387 <li>
388 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
389 <ul class="toc_section">
390 <li>
391 <span class="toc_kind_header">static</span>
392 <ul class="toc_section">
393 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
394 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
395 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700396 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
397 </ul>
398 </li>
399 <li>
400 <span class="toc_kind_header">dynamic</span>
401 <ul class="toc_section">
402 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700403 </ul>
404 </li>
405 </ul> <!-- toc_section -->
406 </li>
407 <li>
408 <span class="toc_section_header"><a href="#section_request">request</a></span>
409 <ul class="toc_section">
410 <li>
411 <span class="toc_kind_header">controls</span>
412 <ul class="toc_section">
413 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
414 <li><a href="#controls_android.request.id">android.request.id</a></li>
415 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
416 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
417 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
418 <li><a href="#controls_android.request.type">android.request.type</a></li>
419 </ul>
420 </li>
421 <li>
422 <span class="toc_kind_header">static</span>
423 <ul class="toc_section">
424 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
425 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800426 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800427 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700428 </ul>
429 </li>
430 <li>
431 <span class="toc_kind_header">dynamic</span>
432 <ul class="toc_section">
433 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
434 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
435 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
436 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800437 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700438 </ul>
439 </li>
440 </ul> <!-- toc_section -->
441 </li>
442 <li>
443 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
444 <ul class="toc_section">
445 <li>
446 <span class="toc_kind_header">controls</span>
447 <ul class="toc_section">
448 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
449 </ul>
450 </li>
451 <li>
452 <span class="toc_kind_header">static</span>
453 <ul class="toc_section">
454 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
455 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
456 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
457 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
458 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
459 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
460 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
461 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
462 </ul>
463 </li>
464 <li>
465 <span class="toc_kind_header">dynamic</span>
466 <ul class="toc_section">
467 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
468 </ul>
469 </li>
470 </ul> <!-- toc_section -->
471 </li>
472 <li>
473 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
474 <ul class="toc_section">
475 <li>
476 <span class="toc_kind_header">controls</span>
477 <ul class="toc_section">
478 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
479 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
480 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800481 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
482 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700483 </ul>
484 </li>
485 <li>
486 <span class="toc_kind_header">static</span>
487 <ul class="toc_section">
488
489 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700490 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700491 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
492 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
493 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
494 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
495 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
496 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
497
498 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
499 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
500 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
501 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
502 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
503 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
504 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
505 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
506 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
507 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
508 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
509 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
510 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800511 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700512 </ul>
513 </li>
514 <li>
515 <span class="toc_kind_header">dynamic</span>
516 <ul class="toc_section">
517 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
518 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
519 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
520 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700521 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800522 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700523 </ul>
524 </li>
525 </ul> <!-- toc_section -->
526 </li>
527 <li>
528 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
529 <ul class="toc_section">
530 <li>
531 <span class="toc_kind_header">controls</span>
532 <ul class="toc_section">
533 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
534 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
535 </ul>
536 </li>
537 <li>
538 <span class="toc_kind_header">dynamic</span>
539 <ul class="toc_section">
540 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
541 </ul>
542 </li>
543 </ul> <!-- toc_section -->
544 </li>
545 <li>
546 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
547 <ul class="toc_section">
548 <li>
549 <span class="toc_kind_header">controls</span>
550 <ul class="toc_section">
551 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
552 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
553 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700554 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700555 </ul>
556 </li>
557 <li>
558 <span class="toc_kind_header">static</span>
559 <ul class="toc_section">
560
561 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
562 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
563 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
564 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
565 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
566 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
567
568 </ul>
569 </li>
570 <li>
571 <span class="toc_kind_header">dynamic</span>
572 <ul class="toc_section">
573 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
574 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
575 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
576 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
577 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
578 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
579 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
580 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
581 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700582 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
583 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
584 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
585 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700586 </ul>
587 </li>
588 </ul> <!-- toc_section -->
589 </li>
590 <li>
591 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
592 <ul class="toc_section">
593 <li>
594 <span class="toc_kind_header">controls</span>
595 <ul class="toc_section">
596 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
597 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
598 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
599 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
600 </ul>
601 </li>
602 <li>
603 <span class="toc_kind_header">static</span>
604 <ul class="toc_section">
605 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
606 </ul>
607 </li>
608 <li>
609 <span class="toc_kind_header">dynamic</span>
610 <ul class="toc_section">
611 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
612 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
613 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
614 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
615 </ul>
616 </li>
617 </ul> <!-- toc_section -->
618 </li>
619 <li>
620 <span class="toc_section_header"><a href="#section_led">led</a></span>
621 <ul class="toc_section">
622 <li>
623 <span class="toc_kind_header">controls</span>
624 <ul class="toc_section">
625 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
626 </ul>
627 </li>
628 <li>
629 <span class="toc_kind_header">dynamic</span>
630 <ul class="toc_section">
631 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
632 </ul>
633 </li>
634 <li>
635 <span class="toc_kind_header">static</span>
636 <ul class="toc_section">
637 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
638 </ul>
639 </li>
640 </ul> <!-- toc_section -->
641 </li>
642 <li>
643 <span class="toc_section_header"><a href="#section_info">info</a></span>
644 <ul class="toc_section">
645 <li>
646 <span class="toc_kind_header">static</span>
647 <ul class="toc_section">
648 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
649 </ul>
650 </li>
651 </ul> <!-- toc_section -->
652 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700653 <li>
654 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
655 <ul class="toc_section">
656 <li>
657 <span class="toc_kind_header">controls</span>
658 <ul class="toc_section">
659 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
660 </ul>
661 </li>
662 <li>
663 <span class="toc_kind_header">dynamic</span>
664 <ul class="toc_section">
665 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
666 </ul>
667 </li>
668 </ul> <!-- toc_section -->
669 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800670 <li>
671 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
672 <ul class="toc_section">
673 <li>
674 <span class="toc_kind_header">dynamic</span>
675 <ul class="toc_section">
676 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
677 </ul>
678 </li>
679 <li>
680 <span class="toc_kind_header">static</span>
681 <ul class="toc_section">
682 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
683 </ul>
684 </li>
685 </ul> <!-- toc_section -->
686 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800687 </ul>
688
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700689
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800690 <h1>Properties</h1>
691 <table class="properties">
692
693 <thead class="thead_dummy">
694 <tr>
695 <th class="th_name">Property Name</th>
696 <th class="th_type">Type</th>
697 <th class="th_description">Description</th>
698 <th class="th_units">Units</th>
699 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800700 <th class="th_tags">Tags</th>
701 </tr>
702 </thead> <!-- so that the first occurrence of thead is not
703 above the first occurrence of tr -->
704<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800705 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800706
707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800708 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800709
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700710 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800711 <tr>
712 <th class="th_name">Property Name</th>
713 <th class="th_type">Type</th>
714 <th class="th_description">Description</th>
715 <th class="th_units">Units</th>
716 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800717 <th class="th_tags">Tags</th>
718 </tr>
719 </thead>
720
721 <tbody>
722
723
724
725
726
727
728
729
730
731
732 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800733 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800734 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800737 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700739 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800740
741 <ul class="entry_type_enum">
742 <li>
743 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800744 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
Igor Murashkin43817ad2014-01-10 15:58:35 -0800745and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
746<p>All advanced white balance adjustments (not specified
747by our white balance pipeline) must be disabled.<wbr/></p>
748<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
749TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
750this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800751 </li>
752 <li>
753 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800754 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
755output.<wbr/></p>
756<p>Advanced white balance adjustments above and beyond
757the specified white balance pipeline may be applied.<wbr/></p>
758<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
759the camera device uses the last frame's AWB values
760(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800761 </li>
762 <li>
763 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800764 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
765may be reduced by high quality.<wbr/></p>
766<p>Advanced white balance adjustments above and beyond
767the specified white balance pipeline may be applied.<wbr/></p>
768<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
769the camera device uses the last frame's AWB values
770(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800771 </li>
772 </ul>
773
774 </td> <!-- entry_type -->
775
776 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800777 <p>The mode control selects how the image data is converted from the
778sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800779 </td>
780
781 <td class="entry_units">
782 </td>
783
784 <td class="entry_range">
785 </td>
786
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800787 <td class="entry_tags">
788 </td>
789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800790 </tr>
791 <tr class="entries_header">
792 <th class="th_details" colspan="5">Details</th>
793 </tr>
794 <tr class="entry_cont">
795 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800796 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
797control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
798application controls how the color mapping is performed.<wbr/></p>
799<p>We define the expected processing pipeline below.<wbr/> For consistency
800across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
801<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
802do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
803<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
804camera device (in the results) and be roughly correct.<wbr/></p>
805<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
806FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
807as what was produced by the camera device in the earlier frame.<wbr/></p>
808<p>The expected processing pipeline is as follows:</p>
809<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
810<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
811gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
812matrix (applied after demosaic).<wbr/></p>
813<p>The 4-channel white-balance gains are defined as:</p>
814<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
815</code></pre>
816<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
817output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
818These may be identical for a given camera device implementation; if
819the camera device does not support a separate gain for even/<wbr/>odd green
820channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
821<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
822<p>The matrices for color transforms are defined as a 9-entry vector:</p>
823<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
824</code></pre>
825<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
826to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
827<p>with colors as follows:</p>
828<pre><code>r' = I0r + I1g + I2b
829g' = I3r + I4g + I5b
830b' = I6r + I7g + I8b
831</code></pre>
832<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
833values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800834 </td>
835 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800836
837
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800838 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
839 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800840
841
842 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800843 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800844 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800845 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800846 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700847 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800848 <span class="entry_type_container">x</span>
849
850 <span class="entry_type_array">
851 3 x 3
852 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700853 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800854 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800855
856
857 </td> <!-- entry_type -->
858
859 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800860 <p>A color transform matrix to use to transform
861from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800862 </td>
863
864 <td class="entry_units">
865 </td>
866
867 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800868 <p>Output values are expected to be in the range
869(0,<wbr/>1)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800870 </td>
871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800872 <td class="entry_tags">
873 </td>
874
875 </tr>
876 <tr class="entries_header">
877 <th class="th_details" colspan="5">Details</th>
878 </tr>
879 <tr class="entry_cont">
880 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800881 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800882<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800883directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800884<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -0800885<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800886for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -0800887reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700888 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800890
891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
893 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700894
895
896 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800897 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800898 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800899 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700900 <td class="entry_type">
901 <span class="entry_type_name">float</span>
902 <span class="entry_type_container">x</span>
903
904 <span class="entry_type_array">
905 4
906 </span>
907 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800908 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700909
910
911 </td> <!-- entry_type -->
912
913 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800914 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800915white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700916 </td>
917
918 <td class="entry_units">
919 </td>
920
921 <td class="entry_range">
922 </td>
923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800924 <td class="entry_tags">
925 </td>
926
927 </tr>
928 <tr class="entries_header">
929 <th class="th_details" colspan="5">Details</th>
930 </tr>
931 <tr class="entry_cont">
932 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800933 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800934the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
935for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
936is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800937does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800938it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
939<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800940<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800941<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800942directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800943<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800944<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800945the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800946 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800948
949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800952
953
954
955 <!-- end of kind -->
956 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800957 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700959 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800960 <tr>
961 <th class="th_name">Property Name</th>
962 <th class="th_type">Type</th>
963 <th class="th_description">Description</th>
964 <th class="th_units">Units</th>
965 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800966 <th class="th_tags">Tags</th>
967 </tr>
968 </thead>
969
970 <tbody>
971
972
973
974
975
976
977
978
979
980
Zhijun He69fc0ea2013-07-17 09:42:58 -0700981 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800983 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800985 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700986 <span class="entry_type_name">rational</span>
987 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800988
Zhijun He69fc0ea2013-07-17 09:42:58 -0700989 <span class="entry_type_array">
990 3 x 3
991 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700992 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800993 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800994
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800995
996 </td> <!-- entry_type -->
997
998 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800999 <p>A color transform matrix to use to transform
1000from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001001 </td>
1002
1003 <td class="entry_units">
1004 </td>
1005
1006 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001007 <p>Output values are expected to be in the range
1008(0,<wbr/>1)</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001009 </td>
1010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001011 <td class="entry_tags">
1012 </td>
1013
1014 </tr>
1015 <tr class="entries_header">
1016 <th class="th_details" colspan="5">Details</th>
1017 </tr>
1018 <tr class="entry_cont">
1019 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001020 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001021<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001022directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001023<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08001024<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001025for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -08001026reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001027 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001029
1030
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001031 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1032 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001033
1034
1035 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001036 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001037 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001038 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001039 <td class="entry_type">
1040 <span class="entry_type_name">float</span>
1041 <span class="entry_type_container">x</span>
1042
1043 <span class="entry_type_array">
1044 4
1045 </span>
1046 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001047 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001048
1049
1050 </td> <!-- entry_type -->
1051
1052 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001053 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001054white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001055 </td>
1056
1057 <td class="entry_units">
1058 </td>
1059
1060 <td class="entry_range">
1061 </td>
1062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001063 <td class="entry_tags">
1064 </td>
1065
1066 </tr>
1067 <tr class="entries_header">
1068 <th class="th_details" colspan="5">Details</th>
1069 </tr>
1070 <tr class="entry_cont">
1071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001072 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001073the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1074for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1075is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001076does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001077it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1078<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001079<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001080<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001081directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001082<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001083<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001084the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001085 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001086 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001087
1088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001089 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1090 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001091
1092
1093
1094 <!-- end of kind -->
1095 </tbody>
1096
1097 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001098 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001099
1100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001101 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001103 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001104 <tr>
1105 <th class="th_name">Property Name</th>
1106 <th class="th_type">Type</th>
1107 <th class="th_description">Description</th>
1108 <th class="th_units">Units</th>
1109 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001110 <th class="th_tags">Tags</th>
1111 </tr>
1112 </thead>
1113
1114 <tbody>
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001126 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001127 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001130 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001133
1134 <ul class="entry_type_enum">
1135 <li>
1136 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001137 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1138avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001139 </li>
1140 <li>
1141 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001142 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1143avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001144 </li>
1145 <li>
1146 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001147 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1148avoid banding problems with 60Hz illumination
1149sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001150 </li>
1151 <li>
1152 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001153 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1154antibanding routine to the current illumination
1155conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001156 </li>
1157 </ul>
1158
1159 </td> <!-- entry_type -->
1160
1161 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001162 <p>The desired setting for the camera device's auto-exposure
1163algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001164 </td>
1165
1166 <td class="entry_units">
1167 </td>
1168
1169 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001170 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001171 </td>
1172
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001173 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001174 <ul class="entry_tags">
1175 <li><a href="#tag_BC">BC</a></li>
1176 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001177 </td>
1178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001179 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001180 <tr class="entries_header">
1181 <th class="th_details" colspan="5">Details</th>
1182 </tr>
1183 <tr class="entry_cont">
1184 <td class="entry_details" colspan="5">
1185 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1186lights,<wbr/> flicker at the rate of the power supply frequency
1187(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1188typically not noticeable to a person,<wbr/> it can be visible to
1189a camera device.<wbr/> If a camera sets its exposure time to the
1190wrong value,<wbr/> the flicker may become visible in the
1191viewfinder as flicker or in a final captured image,<wbr/> as a
1192set of variable-brightness bands across the image.<wbr/></p>
1193<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1194include antibanding routines that ensure that the chosen
1195exposure value will not cause such banding.<wbr/> The choice of
1196exposure time depends on the rate of flicker,<wbr/> which the
1197camera device can detect automatically,<wbr/> or the expected
1198rate can be selected by the application using this
1199control.<wbr/></p>
1200<p>A given camera device may not support all of the possible
1201options for the antibanding mode.<wbr/> The
1202<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1203the available modes for a given camera device.<wbr/></p>
1204<p>The default mode is AUTO,<wbr/> which must be supported by all
1205camera devices.<wbr/></p>
1206<p>If manual exposure control is enabled (by setting
1207<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1208then this setting has no effect,<wbr/> and the application must
1209ensure it selects exposure times that do not cause banding
1210issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1211the application in this.<wbr/></p>
1212 </td>
1213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001214
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001215 <tr class="entries_header">
1216 <th class="th_details" colspan="5">HAL Implementation Details</th>
1217 </tr>
1218 <tr class="entry_cont">
1219 <td class="entry_details" colspan="5">
1220 <p>For all capture request templates,<wbr/> this field must be set
1221to AUTO.<wbr/> AUTO is the only mode that must supported;
1222OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1223<p>If manual exposure control is enabled (by setting
1224<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1225then the exposure values provided by the application must not be
1226adjusted for antibanding.<wbr/></p>
1227 </td>
1228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001232
1233
1234 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001235 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001236 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001237 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001238 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001239 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001240
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001241 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001242
1243
1244 </td> <!-- entry_type -->
1245
1246 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001247 <p>Adjustment to AE target image
1248brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001249 </td>
1250
1251 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001252 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001253 </td>
1254
1255 <td class="entry_range">
1256 </td>
1257
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001258 <td class="entry_tags">
1259 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001260 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001261 </ul>
1262 </td>
1263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001264 </tr>
1265 <tr class="entries_header">
1266 <th class="th_details" colspan="5">Details</th>
1267 </tr>
1268 <tr class="entry_cont">
1269 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001270 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001271exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001272compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001273 </td>
1274 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001275
1276
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001277 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1278 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001279
1280
1281 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001282 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001283 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001284 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001285 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001286 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001287
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001288 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001289
1290 <ul class="entry_type_enum">
1291 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001292 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001293 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1294is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001295 </li>
1296 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001297 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001298 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1299must not update the exposure and sensitivity parameters
1300while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001301 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001302 </ul>
1303
1304 </td> <!-- entry_type -->
1305
1306 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001307 <p>Whether AE is currently locked to its latest
1308calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001309 </td>
1310
1311 <td class="entry_units">
1312 </td>
1313
1314 <td class="entry_range">
1315 </td>
1316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001317 <td class="entry_tags">
1318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001319 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001320 </ul>
1321 </td>
1322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001323 </tr>
1324 <tr class="entries_header">
1325 <th class="th_details" colspan="5">Details</th>
1326 </tr>
1327 <tr class="entry_cont">
1328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001329 <p>Note that even when AE is locked,<wbr/> the flash may be
1330fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1331ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001332 </td>
1333 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001334
1335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001338
1339
1340 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001341 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001342 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001343 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001344 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001345 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001346
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001347 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001348
1349 <ul class="entry_type_enum">
1350 <li>
1351 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001352 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1353the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1354<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1355<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1356device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1357a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001358 </li>
1359 <li>
1360 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001361 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1362with no flash control.<wbr/> The application's values for
1363<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1364<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1365<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1366application has control over the various
1367android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001368 </li>
1369 <li>
1370 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001371 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1372the camera's flash unit,<wbr/> firing it in low-light
1373conditions.<wbr/> The flash may be fired during a
1374precapture sequence (triggered by
1375<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1376for captures for which the
1377<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1378STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001379 </li>
1380 <li>
1381 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001382 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1383the camera's flash unit,<wbr/> always firing it for still
1384captures.<wbr/> The flash may be fired during a precapture
1385sequence (triggered by
1386<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1387be fired for captures for which the
1388<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1389STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001390 </li>
1391 <li>
1392 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001393 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1394reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1395a red eye reduction flash will fire during the
1396precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001397 </li>
1398 </ul>
1399
1400 </td> <!-- entry_type -->
1401
1402 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001403 <p>The desired mode for the camera device's
1404auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001405 </td>
1406
1407 <td class="entry_units">
1408 </td>
1409
1410 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001411 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001412 </td>
1413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001414 <td class="entry_tags">
1415 <ul class="entry_tags">
1416 <li><a href="#tag_BC">BC</a></li>
1417 </ul>
1418 </td>
1419
1420 </tr>
1421 <tr class="entries_header">
1422 <th class="th_details" colspan="5">Details</th>
1423 </tr>
1424 <tr class="entry_cont">
1425 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001426 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1427AUTO.<wbr/></p>
1428<p>When set to any of the ON modes,<wbr/> the camera device's
1429auto-exposure routine is enabled,<wbr/> overriding the
1430application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1431and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1432<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1433<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1434is selected,<wbr/> the camera device's flash unit controls are
1435also overridden.<wbr/></p>
1436<p>The FLASH modes are only available if the camera device
1437has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1438<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1439ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1440<p>When set to any of the ON modes,<wbr/> the values chosen by the
1441camera device auto-exposure routine for the overridden
1442fields for a given capture will be available in its
1443CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001444 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001446
1447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001450
1451
1452 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001454 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001458 <span class="entry_type_container">x</span>
1459
1460 <span class="entry_type_array">
1461 5 x area_count
1462 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001463 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001464
1465
1466 </td> <!-- entry_type -->
1467
1468 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001469 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001470metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001471 </td>
1472
1473 <td class="entry_units">
1474 </td>
1475
1476 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001477 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001478 </td>
1479
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001480 <td class="entry_tags">
1481 <ul class="entry_tags">
1482 <li><a href="#tag_BC">BC</a></li>
1483 </ul>
1484 </td>
1485
1486 </tr>
1487 <tr class="entries_header">
1488 <th class="th_details" colspan="5">Details</th>
1489 </tr>
1490 <tr class="entry_cont">
1491 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001492 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001493xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001494specified coordinates.<wbr/></p>
1495<p>The coordinate system is based on the active pixel array,<wbr/>
1496with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001497(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1498<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001499bottom-right pixel in the active pixel array.<wbr/> The weight
1500should be nonnegative.<wbr/></p>
1501<p>If all regions have 0 weight,<wbr/> then no specific metering area
1502needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001503outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001504should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001505used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001506 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001507 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001508
1509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001510 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1511 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001512
1513
1514 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001515 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001516 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001517 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001518 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001519 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001520 <span class="entry_type_container">x</span>
1521
1522 <span class="entry_type_array">
1523 2
1524 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001525 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001526
1527
1528 </td> <!-- entry_type -->
1529
1530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001531 <p>Range over which fps can be adjusted to
1532maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001533 </td>
1534
1535 <td class="entry_units">
1536 </td>
1537
1538 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001539 <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001540 </td>
1541
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001542 <td class="entry_tags">
1543 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001544 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001545 </ul>
1546 </td>
1547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001548 </tr>
1549 <tr class="entries_header">
1550 <th class="th_details" colspan="5">Details</th>
1551 </tr>
1552 <tr class="entry_cont">
1553 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001554 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001555of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001556 </td>
1557 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001558
1559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001560 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1561 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001562
1563
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001564 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001565 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001566 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001567 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001568 <td class="entry_type">
1569 <span class="entry_type_name entry_type_name_enum">byte</span>
1570
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001571 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001572
1573 <ul class="entry_type_enum">
1574 <li>
1575 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001576 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001577 </li>
1578 <li>
1579 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001580 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1581by the camera device.<wbr/> The exact effect of the precapture
1582trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001583 </li>
1584 </ul>
1585
1586 </td> <!-- entry_type -->
1587
1588 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001589 <p>Whether the camera device will trigger a precapture
1590metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001591 </td>
1592
1593 <td class="entry_units">
1594 </td>
1595
1596 <td class="entry_range">
1597 </td>
1598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001599 <td class="entry_tags">
1600 <ul class="entry_tags">
1601 <li><a href="#tag_BC">BC</a></li>
1602 </ul>
1603 </td>
1604
1605 </tr>
1606 <tr class="entries_header">
1607 <th class="th_details" colspan="5">Details</th>
1608 </tr>
1609 <tr class="entry_cont">
1610 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001611 <p>This entry is normally set to IDLE,<wbr/> or is not
1612included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001613set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001614precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001615<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001616AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1617state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001618 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001619 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001620
1621
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001622 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1623 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001624
1625
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001626 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001627 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001628 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001629 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001630 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001631 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001632
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001633 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001634
1635 <ul class="entry_type_enum">
1636 <li>
1637 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001638 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1639<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1640application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001641 </li>
1642 <li>
1643 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001644 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1645<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
1646is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1647the autofocus trigger action is called.<wbr/> When that trigger
1648is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1649the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1650<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1651and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001652 </li>
1653 <li>
1654 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001655 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1656autofocus trigger action is called.<wbr/></p>
1657<p>When that trigger is activated,<wbr/> AF must transition to
1658ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1659NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1660position to default,<wbr/> and sets the AF state to
1661INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001662 </li>
1663 <li>
1664 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001665 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1666position continually to attempt to provide a
1667constantly-in-focus image stream.<wbr/></p>
1668<p>The focusing behavior should be suitable for good quality
1669video recording; typically this means slower focus
1670movement and no overshoots.<wbr/> When the AF trigger is not
1671involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1672and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1673states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1674the algorithm should immediately transition into
1675AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1676lens position until a cancel AF trigger is received.<wbr/></p>
1677<p>Once cancel is received,<wbr/> the algorithm should transition
1678back to INACTIVE and resume passive scan.<wbr/> Note that this
1679behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1680ongoing PASSIVE_<wbr/>SCAN must immediately be
1681canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001682 </li>
1683 <li>
1684 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001685 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1686position continually to attempt to provide a
1687constantly-in-focus image stream.<wbr/></p>
1688<p>The focusing behavior should be suitable for still image
1689capture; typically this means focusing as fast as
1690possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1691algorithm should start in INACTIVE state,<wbr/> and then
1692transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1693appropriate as it attempts to maintain focus.<wbr/> When the AF
1694trigger is activated,<wbr/> the algorithm should finish its
1695PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1696AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1697lens position until a cancel AF trigger is received.<wbr/></p>
1698<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1699should transition back to INACTIVE and then act as if it
1700has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001701 </li>
1702 <li>
1703 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001704 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1705trigger is ignored,<wbr/> AF state should always be
1706INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001707 </li>
1708 </ul>
1709
1710 </td> <!-- entry_type -->
1711
1712 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001713 <p>Whether AF is currently enabled,<wbr/> and what
1714mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001715 </td>
1716
1717 <td class="entry_units">
1718 </td>
1719
1720 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001721 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001722 </td>
1723
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001724 <td class="entry_tags">
1725 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001726 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001727 </ul>
1728 </td>
1729
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001730 </tr>
1731 <tr class="entries_header">
1732 <th class="th_details" colspan="5">Details</th>
1733 </tr>
1734 <tr class="entry_cont">
1735 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001736 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08001737<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1738the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1739in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001740 </td>
1741 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001742
1743
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001744 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1745 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001746
1747
1748 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001749 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001750 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001751 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001752 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001753 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001754 <span class="entry_type_container">x</span>
1755
1756 <span class="entry_type_array">
1757 5 x area_count
1758 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001759 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001760
1761
1762 </td> <!-- entry_type -->
1763
1764 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001765 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001766estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001767 </td>
1768
1769 <td class="entry_units">
1770 </td>
1771
1772 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001773 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001774 </td>
1775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001776 <td class="entry_tags">
1777 <ul class="entry_tags">
1778 <li><a href="#tag_BC">BC</a></li>
1779 </ul>
1780 </td>
1781
1782 </tr>
1783 <tr class="entries_header">
1784 <th class="th_details" colspan="5">Details</th>
1785 </tr>
1786 <tr class="entry_cont">
1787 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001788 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001789xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001790specified coordinates.<wbr/></p>
1791<p>The coordinate system is based on the active pixel array,<wbr/>
1792with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001793(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1794<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001795bottom-right pixel in the active pixel array.<wbr/> The weight
1796should be nonnegative.<wbr/></p>
1797<p>If all regions have 0 weight,<wbr/> then no specific focus area
1798needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001799outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001800should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001801used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001802 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001803 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001804
1805
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001806 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1807 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001808
1809
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001810 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001811 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001812 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001813 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001814 <td class="entry_type">
1815 <span class="entry_type_name entry_type_name_enum">byte</span>
1816
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001817 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001818
1819 <ul class="entry_type_enum">
1820 <li>
1821 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001822 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001823 </li>
1824 <li>
1825 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001826 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001827 </li>
1828 <li>
1829 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001830 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1831state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001832 </li>
1833 </ul>
1834
1835 </td> <!-- entry_type -->
1836
1837 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001838 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001839 </td>
1840
1841 <td class="entry_units">
1842 </td>
1843
1844 <td class="entry_range">
1845 </td>
1846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001847 <td class="entry_tags">
1848 <ul class="entry_tags">
1849 <li><a href="#tag_BC">BC</a></li>
1850 </ul>
1851 </td>
1852
1853 </tr>
1854 <tr class="entries_header">
1855 <th class="th_details" colspan="5">Details</th>
1856 </tr>
1857 <tr class="entry_cont">
1858 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001859 <p>This entry is normally set to IDLE,<wbr/> or is not
1860included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001861<p>When included and set to START,<wbr/> the camera device will trigger the
1862autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1863<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1864and return to its initial AF state.<wbr/></p>
1865<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what that means for each AF mode.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001866 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001867 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001868
1869
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1871 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001872
1873
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001874 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001875 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001876 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001877 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001878 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001879 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001880
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001881 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001882
1883 <ul class="entry_type_enum">
1884 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001885 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001886 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1887algorithm is free to update its parameters if in AUTO
1888mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001889 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001890 <li>
1891 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001892 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1893algorithm must not update the exposure and sensitivity
1894parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001895 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001896 </ul>
1897
1898 </td> <!-- entry_type -->
1899
1900 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001901 <p>Whether AWB is currently locked to its
1902latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001903 </td>
1904
1905 <td class="entry_units">
1906 </td>
1907
1908 <td class="entry_range">
1909 </td>
1910
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001911 <td class="entry_tags">
1912 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001913 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001914 </ul>
1915 </td>
1916
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001917 </tr>
1918 <tr class="entries_header">
1919 <th class="th_details" colspan="5">Details</th>
1920 </tr>
1921 <tr class="entry_cont">
1922 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001923 <p>Note that AWB lock is only meaningful for AUTO
1924mode; in other modes,<wbr/> AWB is already fixed to a specific
1925setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001926 </td>
1927 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001928
1929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001930 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1931 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001932
1933
1934 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001935 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001936 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001937 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001938 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001939 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001940
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001941 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001942
1943 <ul class="entry_type_enum">
1944 <li>
1945 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001946 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1947the application-selected color transform matrix
1948(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1949(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1950device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001951 </li>
1952 <li>
1953 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001954 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1955the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1956and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001957 </li>
1958 <li>
1959 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001960 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1961the camera device uses incandescent light as the assumed scene
1962illumination for white balance.<wbr/> While the exact white balance
1963transforms are up to the camera device,<wbr/> they will approximately
1964match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001965 </li>
1966 <li>
1967 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001968 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1969the camera device uses fluorescent light as the assumed scene
1970illumination for white balance.<wbr/> While the exact white balance
1971transforms are up to the camera device,<wbr/> they will approximately
1972match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001973 </li>
1974 <li>
1975 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001976 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1977the camera device uses warm fluorescent light as the assumed scene
1978illumination for white balance.<wbr/> While the exact white balance
1979transforms are up to the camera device,<wbr/> they will approximately
1980match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001981 </li>
1982 <li>
1983 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001984 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1985the camera device uses daylight light as the assumed scene
1986illumination for white balance.<wbr/> While the exact white balance
1987transforms are up to the camera device,<wbr/> they will approximately
1988match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001989 </li>
1990 <li>
1991 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001992 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1993the camera device uses cloudy daylight light as the assumed scene
1994illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001995 </li>
1996 <li>
1997 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001998 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1999the camera device uses twilight light as the assumed scene
2000illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002001 </li>
2002 <li>
2003 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002004 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2005the camera device uses shade light as the assumed scene
2006illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002007 </li>
2008 </ul>
2009
2010 </td> <!-- entry_type -->
2011
2012 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002013 <p>Whether AWB is currently setting the color
2014transform fields,<wbr/> and what its illumination target
2015is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002016 </td>
2017
2018 <td class="entry_units">
2019 </td>
2020
2021 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002022 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002023 </td>
2024
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002025 <td class="entry_tags">
2026 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002027 <li><a href="#tag_BC">BC</a></li>
2028 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002029 </ul>
2030 </td>
2031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002032 </tr>
2033 <tr class="entries_header">
2034 <th class="th_details" colspan="5">Details</th>
2035 </tr>
2036 <tr class="entry_cont">
2037 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002038 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2039<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2040routine is enabled,<wbr/> overriding the application's selected
2041<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
2042<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2043<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2044routine is disabled.<wbr/> The applicantion manually controls the white
2045balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2046and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2047<p>When set to any other modes,<wbr/> the camera device's auto white balance
2048routine is disabled.<wbr/> The camera device uses each particular illumination
2049target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002050 </td>
2051 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002052
2053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002054 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2055 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002056
2057
2058 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002059 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002060 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002061 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002062 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002063 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002064 <span class="entry_type_container">x</span>
2065
2066 <span class="entry_type_array">
2067 5 x area_count
2068 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002069 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002070
2071
2072 </td> <!-- entry_type -->
2073
2074 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002075 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002076estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002077 </td>
2078
2079 <td class="entry_units">
2080 </td>
2081
2082 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002083 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002084 </td>
2085
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002086 <td class="entry_tags">
2087 <ul class="entry_tags">
2088 <li><a href="#tag_BC">BC</a></li>
2089 </ul>
2090 </td>
2091
2092 </tr>
2093 <tr class="entries_header">
2094 <th class="th_details" colspan="5">Details</th>
2095 </tr>
2096 <tr class="entry_cont">
2097 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002098 <p>Only used in AUTO mode.<wbr/></p>
2099<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002100xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08002101specified coordinates.<wbr/></p>
2102<p>The coordinate system is based on the active pixel array,<wbr/>
2103with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002104(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2105<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08002106bottom-right pixel in the active pixel array.<wbr/> The weight
2107should be nonnegative.<wbr/></p>
2108<p>If all regions have 0 weight,<wbr/> then no specific metering area
2109needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002110outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08002111should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002112used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002113 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002114 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002115
2116
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002117 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2118 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002119
2120
2121 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002122 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002123 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002124 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002125 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002126 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002127
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002128 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002129
2130 <ul class="entry_type_enum">
2131 <li>
2132 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002133 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2134categories.<wbr/> Default to preview-like
2135behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002136 </li>
2137 <li>
2138 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002139 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2140precapture trigger may be used to start off a metering
2141w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002142 </li>
2143 <li>
2144 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002145 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2146usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002147 </li>
2148 <li>
2149 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002150 <span class="entry_type_enum_notes"><p>This request is for a video recording
2151usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002152 </li>
2153 <li>
2154 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002155 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2156image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002157 </li>
2158 <li>
2159 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002160 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2161application will stream full-resolution images and
2162reprocess one or several later for a final
2163capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002164 </li>
2165 </ul>
2166
2167 </td> <!-- entry_type -->
2168
2169 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002170 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2171auto-focus,<wbr/> auto-white balance) routines about the purpose
2172of this capture,<wbr/> to help the camera device to decide optimal 3A
2173strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002174 </td>
2175
2176 <td class="entry_units">
2177 </td>
2178
2179 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002180 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002181 </td>
2182
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002183 <td class="entry_tags">
2184 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002185 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002186 </ul>
2187 </td>
2188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002189 </tr>
2190 <tr class="entries_header">
2191 <th class="th_details" colspan="5">Details</th>
2192 </tr>
2193 <tr class="entry_cont">
2194 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002195 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2196and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002197 </td>
2198 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002199
2200
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002201 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2202 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002203
2204
2205 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002206 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002207 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002208 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002209 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002210 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002211
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002212 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002213
2214 <ul class="entry_type_enum">
2215 <li>
2216 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002217 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002218 </li>
2219 <li>
2220 <span class="entry_type_enum_name">MONO</span>
2221 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002222 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2223a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002224 </li>
2225 <li>
2226 <span class="entry_type_enum_name">NEGATIVE</span>
2227 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002228 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2229are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002230 </li>
2231 <li>
2232 <span class="entry_type_enum_name">SOLARIZE</span>
2233 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002234 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2235image is wholly or partially reversed in
2236tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002237 </li>
2238 <li>
2239 <span class="entry_type_enum_name">SEPIA</span>
2240 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002241 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2242gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002243 </li>
2244 <li>
2245 <span class="entry_type_enum_name">POSTERIZE</span>
2246 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002247 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2248discrete regions of tone rather than a continuous
2249gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002250 </li>
2251 <li>
2252 <span class="entry_type_enum_name">WHITEBOARD</span>
2253 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002254 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2255as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002256 </li>
2257 <li>
2258 <span class="entry_type_enum_name">BLACKBOARD</span>
2259 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002260 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2261as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002262 </li>
2263 <li>
2264 <span class="entry_type_enum_name">AQUA</span>
2265 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002266 <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002267 </li>
2268 </ul>
2269
2270 </td> <!-- entry_type -->
2271
2272 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002273 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002274 </td>
2275
2276 <td class="entry_units">
2277 </td>
2278
2279 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002280 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002281 </td>
2282
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002283 <td class="entry_tags">
2284 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002285 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002286 </ul>
2287 </td>
2288
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002289 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002290 <tr class="entries_header">
2291 <th class="th_details" colspan="5">Details</th>
2292 </tr>
2293 <tr class="entry_cont">
2294 <td class="entry_details" colspan="5">
2295 <p>When this mode is set,<wbr/> a color effect will be applied
2296to images produced by the camera device.<wbr/> The interpretation
2297and implementation of these color effects is left to the
2298implementor of the camera device,<wbr/> and should not be
2299depended on to be consistent (or present) across all
2300devices.<wbr/></p>
2301<p>A color effect will only be applied if
2302<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2303 </td>
2304 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002305
2306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002307 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2308 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002309
2310
2311 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002312 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002313 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002314 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002315 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002316 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002317
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002318 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002319
2320 <ul class="entry_type_enum">
2321 <li>
2322 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002323 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2324routines are disabled,<wbr/> no other settings in
2325android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002326 </li>
2327 <li>
2328 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002329 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2330Manual control of capture parameters is disabled.<wbr/> All
2331controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2332effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002333 </li>
2334 <li>
2335 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002336 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2337control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2338controls; the HAL must ignore those settings while
2339USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2340scene mode).<wbr/> Other control entries are still active.<wbr/>
2341This setting can only be used if availableSceneModes !=
2342UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002343 </li>
2344 </ul>
2345
2346 </td> <!-- entry_type -->
2347
2348 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002349 <p>Overall mode of 3A control
2350routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002351 </td>
2352
2353 <td class="entry_units">
2354 </td>
2355
2356 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002357 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002358 </td>
2359
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002360 <td class="entry_tags">
2361 <ul class="entry_tags">
2362 <li><a href="#tag_BC">BC</a></li>
2363 </ul>
2364 </td>
2365
2366 </tr>
2367 <tr class="entries_header">
2368 <th class="th_details" colspan="5">Details</th>
2369 </tr>
2370 <tr class="entry_cont">
2371 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002372 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002373by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002374capture parameters itself.<wbr/></p>
2375<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002376android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08002377<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002378android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002379one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002380as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002381<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002382 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002383 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002384
2385
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002386 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2387 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002388
2389
2390 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002391 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002392 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002393 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002394 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002395 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002396
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002397 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002398
2399 <ul class="entry_type_enum">
2400 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002401 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002402 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002403 <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002404 </li>
2405 <li>
2406 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002407 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2408detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2409auto-exposure routines.<wbr/> If face detection statistics are
2410disabled (i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
2411this should still operate correctly (but will not return
2412face detection statistics to the framework).<wbr/></p>
2413<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2414<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2415remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002416 </li>
2417 <li>
2418 <span class="entry_type_enum_name">ACTION</span>
2419 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002420 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2421Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002422 </li>
2423 <li>
2424 <span class="entry_type_enum_name">PORTRAIT</span>
2425 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002426 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002427 </li>
2428 <li>
2429 <span class="entry_type_enum_name">LANDSCAPE</span>
2430 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002431 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002432 </li>
2433 <li>
2434 <span class="entry_type_enum_name">NIGHT</span>
2435 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002436 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002437 </li>
2438 <li>
2439 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2440 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002441 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2442settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002443 </li>
2444 <li>
2445 <span class="entry_type_enum_name">THEATRE</span>
2446 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002447 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2448remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002449 </li>
2450 <li>
2451 <span class="entry_type_enum_name">BEACH</span>
2452 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002453 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002454 </li>
2455 <li>
2456 <span class="entry_type_enum_name">SNOW</span>
2457 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002458 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002459 </li>
2460 <li>
2461 <span class="entry_type_enum_name">SUNSET</span>
2462 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002463 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002464 </li>
2465 <li>
2466 <span class="entry_type_enum_name">STEADYPHOTO</span>
2467 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002468 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2469device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002470 </li>
2471 <li>
2472 <span class="entry_type_enum_name">FIREWORKS</span>
2473 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002474 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002475 </li>
2476 <li>
2477 <span class="entry_type_enum_name">SPORTS</span>
2478 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002479 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2480Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002481 </li>
2482 <li>
2483 <span class="entry_type_enum_name">PARTY</span>
2484 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002485 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2486people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002487 </li>
2488 <li>
2489 <span class="entry_type_enum_name">CANDLELIGHT</span>
2490 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002491 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2492is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002493 </li>
2494 <li>
2495 <span class="entry_type_enum_name">BARCODE</span>
2496 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002497 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2498for use by camera applications that wish to read the
2499barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002500 </li>
2501 </ul>
2502
2503 </td> <!-- entry_type -->
2504
2505 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002506 <p>A camera mode optimized for conditions typical in a particular
2507capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002508 </td>
2509
2510 <td class="entry_units">
2511 </td>
2512
2513 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002514 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002515 </td>
2516
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002517 <td class="entry_tags">
2518 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002519 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002520 </ul>
2521 </td>
2522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002523 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002524 <tr class="entries_header">
2525 <th class="th_details" colspan="5">Details</th>
2526 </tr>
2527 <tr class="entry_cont">
2528 <td class="entry_details" colspan="5">
2529 <p>This is the mode that that is active when
2530<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/>
2531these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2532<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> while in use.<wbr/></p>
2533<p>The interpretation and implementation of these scene modes is left
2534to the implementor of the camera device.<wbr/> Their behavior will not be
2535consistent across all devices,<wbr/> and any given device may only implement
2536a subset of these modes.<wbr/></p>
2537 </td>
2538 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002539
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002540 <tr class="entries_header">
2541 <th class="th_details" colspan="5">HAL Implementation Details</th>
2542 </tr>
2543 <tr class="entry_cont">
2544 <td class="entry_details" colspan="5">
2545 <p>HAL implementations that include scene modes are expected to provide
2546the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2547<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
2548<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2549 </td>
2550 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002552 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002554
2555
2556 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002557 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002558 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002561 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002562
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002563 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002564
2565 <ul class="entry_type_enum">
2566 <li>
2567 <span class="entry_type_enum_name">OFF</span>
2568 </li>
2569 <li>
2570 <span class="entry_type_enum_name">ON</span>
2571 </li>
2572 </ul>
2573
2574 </td> <!-- entry_type -->
2575
2576 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002577 <p>Whether video stabilization is
2578active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002579 </td>
2580
2581 <td class="entry_units">
2582 </td>
2583
2584 <td class="entry_range">
2585 </td>
2586
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002587 <td class="entry_tags">
2588 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002589 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002590 </ul>
2591 </td>
2592
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002593 </tr>
2594 <tr class="entries_header">
2595 <th class="th_details" colspan="5">Details</th>
2596 </tr>
2597 <tr class="entry_cont">
2598 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002599 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002600<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream
Igor Murashkin0b080452013-12-27 15:30:25 -08002601stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002602 </td>
2603 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002604
2605
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002606 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2607 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002608
2609
2610
2611 <!-- end of kind -->
2612 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002613 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002614
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002615 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002616 <tr>
2617 <th class="th_name">Property Name</th>
2618 <th class="th_type">Type</th>
2619 <th class="th_description">Description</th>
2620 <th class="th_units">Units</th>
2621 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002622 <th class="th_tags">Tags</th>
2623 </tr>
2624 </thead>
2625
2626 <tbody>
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002638 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002639 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002640 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002641 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002642 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002643 <span class="entry_type_container">x</span>
2644
2645 <span class="entry_type_array">
2646 n
2647 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002648 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002649 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002650
2651
2652 </td> <!-- entry_type -->
2653
2654 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002655 <p>The set of auto-exposure antibanding modes that are
2656supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002657 </td>
2658
2659 <td class="entry_units">
2660 </td>
2661
2662 <td class="entry_range">
2663 </td>
2664
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002665 <td class="entry_tags">
2666 </td>
2667
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002668 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002669 <tr class="entries_header">
2670 <th class="th_details" colspan="5">Details</th>
2671 </tr>
2672 <tr class="entry_cont">
2673 <td class="entry_details" colspan="5">
2674 <p>Not all of the auto-exposure anti-banding modes may be
2675supported by a given camera device.<wbr/> This field lists the
2676valid anti-banding modes that the application may request
2677for this camera device; they must include AUTO.<wbr/></p>
2678 </td>
2679 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002680
2681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002682 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2683 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002684
2685
2686 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002687 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002688 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002689 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002690 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002691 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002692 <span class="entry_type_container">x</span>
2693
2694 <span class="entry_type_array">
2695 n
2696 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002697 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002698 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002699
2700
2701 </td> <!-- entry_type -->
2702
2703 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002704 <p>The set of auto-exposure modes that are supported by this
2705camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002706 </td>
2707
2708 <td class="entry_units">
2709 </td>
2710
2711 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002712 </td>
2713
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002714 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002715 <ul class="entry_tags">
2716 <li><a href="#tag_BC">BC</a></li>
2717 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002718 </td>
2719
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002720 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002721 <tr class="entries_header">
2722 <th class="th_details" colspan="5">Details</th>
2723 </tr>
2724 <tr class="entry_cont">
2725 <td class="entry_details" colspan="5">
2726 <p>Not all the auto-exposure modes may be supported by a
2727given camera device,<wbr/> especially if no flash unit is
2728available.<wbr/> This entry lists the valid modes for
2729<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2730<p>All camera devices support ON,<wbr/> and all camera devices with
2731flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2732ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2733<p>Full-capability camera devices always support OFF mode,<wbr/>
2734which enables application control of camera exposure time,<wbr/>
2735sensitivity,<wbr/> and frame duration.<wbr/></p>
2736 </td>
2737 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002738
2739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002740 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2741 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002742
2743
2744 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002745 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002746 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002747 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002748 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002749 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002750 <span class="entry_type_container">x</span>
2751
2752 <span class="entry_type_array">
2753 2 x n
2754 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002755 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002756 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002757
2758
2759 </td> <!-- entry_type -->
2760
2761 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002762 <p>List of frame rate ranges supported by the
2763AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002764 </td>
2765
2766 <td class="entry_units">
2767 </td>
2768
2769 <td class="entry_range">
2770 </td>
2771
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002772 <td class="entry_tags">
2773 </td>
2774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002776
2777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002778 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002780
2781
2782 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002783 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002784 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002785 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002786 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002787 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002788 <span class="entry_type_container">x</span>
2789
2790 <span class="entry_type_array">
2791 2
2792 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002793 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002794
2795
2796 </td> <!-- entry_type -->
2797
2798 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002799 <p>Maximum and minimum exposure compensation
2800setting,<wbr/> in counts of
2801android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002802 </td>
2803
2804 <td class="entry_units">
2805 </td>
2806
2807 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002808 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2809size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002810 </td>
2811
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002812 <td class="entry_tags">
2813 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002814 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002815 </ul>
2816 </td>
2817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002818 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002819
2820
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002821 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2822 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002823
2824
2825 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002826 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002827 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002828 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002829 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002830 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002831
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002832 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002833
2834
2835 </td> <!-- entry_type -->
2836
2837 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002838 <p>Smallest step by which exposure compensation
2839can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002840 </td>
2841
2842 <td class="entry_units">
2843 </td>
2844
2845 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002846 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002847 </td>
2848
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002849 <td class="entry_tags">
2850 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002851 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002852 </ul>
2853 </td>
2854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002855 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002856
2857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002858 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2859 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002860
2861
2862 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002863 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002864 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002865 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002866 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002867 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002868 <span class="entry_type_container">x</span>
2869
2870 <span class="entry_type_array">
2871 n
2872 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002873 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002874 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002875
2876
2877 </td> <!-- entry_type -->
2878
2879 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002880 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002881selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002882 </td>
2883
2884 <td class="entry_units">
2885 </td>
2886
2887 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002888 </td>
2889
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002890 <td class="entry_tags">
2891 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002892 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002893 </ul>
2894 </td>
2895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002896 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002897 <tr class="entries_header">
2898 <th class="th_details" colspan="5">Details</th>
2899 </tr>
2900 <tr class="entry_cont">
2901 <td class="entry_details" colspan="5">
2902 <p>Not all the auto-focus modes may be supported by a
2903given camera device.<wbr/> This entry lists the valid modes for
2904<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2905<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2906adjustable focuser units (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>)
2907will support AUTO mode.<wbr/></p>
2908 </td>
2909 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002910
2911
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002912 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2913 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002914
2915
2916 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002917 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002918 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002919 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002920 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002921 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002922 <span class="entry_type_container">x</span>
2923
2924 <span class="entry_type_array">
2925 n
2926 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002927 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002928 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002929
2930
2931 </td> <!-- entry_type -->
2932
2933 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002934 <p>List containing the subset of color effects
2935specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2936this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002937 </td>
2938
2939 <td class="entry_units">
2940 </td>
2941
2942 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002943 <p>Any subset of enums from those specified in
2944<a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a>.<wbr/> OFF must be included in any subset.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002945 </td>
2946
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002947 <td class="entry_tags">
2948 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002949 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002950 </ul>
2951 </td>
2952
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002953 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002954 <tr class="entries_header">
2955 <th class="th_details" colspan="5">Details</th>
2956 </tr>
2957 <tr class="entry_cont">
2958 <td class="entry_details" colspan="5">
2959 <p>This list contains the color effect modes that can be applied to
2960images produced by the camera device.<wbr/> Only modes that have
2961been fully implemented for the current device may be included here.<wbr/>
2962Implementations are not expected to be consistent across all devices.<wbr/>
2963If no color effect modes are available for a device,<wbr/> this should
2964simply be set to OFF.<wbr/></p>
2965<p>A color effect will only be applied if
2966<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2967 </td>
2968 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002969
2970
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002971 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2972 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002973
2974
2975 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002976 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002977 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002978 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002979 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002980 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002981 <span class="entry_type_container">x</span>
2982
2983 <span class="entry_type_array">
2984 n
2985 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002986 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002987 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002988
2989
2990 </td> <!-- entry_type -->
2991
2992 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002993 <p>List containing a subset of scene modes
2994specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002995 </td>
2996
2997 <td class="entry_units">
2998 </td>
2999
3000 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003001 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
3002not including DISABLED,<wbr/> or solely DISABLED if no
3003scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3004if face detection is supported (i.<wbr/>e.<wbr/><code><a href="#static_android.statistics.info.maxFaceCount">android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count</a> &gt; 0</code>).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003005 </td>
3006
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003007 <td class="entry_tags">
3008 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003009 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003010 </ul>
3011 </td>
3012
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003013 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003014 <tr class="entries_header">
3015 <th class="th_details" colspan="5">Details</th>
3016 </tr>
3017 <tr class="entry_cont">
3018 <td class="entry_details" colspan="5">
3019 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3020Only scene modes that have been fully implemented for the
3021camera device may be included here.<wbr/> Implementations are not expected
3022to be consistent across all devices.<wbr/> If no scene modes are supported
3023by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3024 </td>
3025 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003026
3027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003028 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3029 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003030
3031
3032 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003033 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003034 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003035 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003036 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003037 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003038 <span class="entry_type_container">x</span>
3039
3040 <span class="entry_type_array">
3041 n
3042 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003043 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003044 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003045
3046
3047 </td> <!-- entry_type -->
3048
3049 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003050 <p>List of video stabilization modes that can
3051be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003052 </td>
3053
3054 <td class="entry_units">
3055 </td>
3056
3057 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003058 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003059 </td>
3060
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003061 <td class="entry_tags">
3062 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003063 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003064 </ul>
3065 </td>
3066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003067 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003068
3069
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003070 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3071 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003072
3073
3074 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003075 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003076 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003077 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003078 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003079 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003080 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003081
Alex Raya4251d92013-04-30 16:43:44 -07003082 <span class="entry_type_array">
3083 n
3084 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003085 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003086 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003087
3088
3089 </td> <!-- entry_type -->
3090
3091 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003092 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3093that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003094 </td>
3095
3096 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003097 </td>
3098
3099 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003100 </td>
3101
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102 <td class="entry_tags">
3103 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003104 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003105 </ul>
3106 </td>
3107
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003108 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003109 <tr class="entries_header">
3110 <th class="th_details" colspan="5">Details</th>
3111 </tr>
3112 <tr class="entry_cont">
3113 <td class="entry_details" colspan="5">
3114 <p>Not all the auto-white-balance modes may be supported by a
3115given camera device.<wbr/> This entry lists the valid modes for
3116<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3117<p>All camera devices will support ON mode.<wbr/></p>
3118<p>Full-capability camera devices will always support OFF mode,<wbr/>
3119which enables application control of white balance,<wbr/> by using
3120<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>(<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> must be set to TRANSFORM_<wbr/>MATRIX).<wbr/></p>
3121 </td>
3122 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003123
3124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003125 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3126 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003127
3128
3129 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003130 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003131 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003132 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003133 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003134 <span class="entry_type_name">int32</span>
Ruben Brunk120eea42014-01-15 15:55:08 -08003135 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003136
Ruben Brunk120eea42014-01-15 15:55:08 -08003137 <span class="entry_type_array">
3138 3
3139 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003140 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003141
3142
3143 </td> <!-- entry_type -->
3144
3145 <td class="entry_description">
Ruben Brunk120eea42014-01-15 15:55:08 -08003146 <p>List of the maximum number of regions that can be used for metering in
3147auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
3148this corresponds to the the maximum number of elements in
3149<a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>,<wbr/> <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>,<wbr/>
3150and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003151 </td>
3152
3153 <td class="entry_units">
3154 </td>
3155
3156 <td class="entry_range">
Ruben Brunk120eea42014-01-15 15:55:08 -08003157 <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
3158this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
3159<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003160 </td>
3161
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003162 <td class="entry_tags">
3163 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003164 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003165 </ul>
3166 </td>
3167
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003168 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003169
3170
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003171 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3172 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003173
3174
3175 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003176 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003177 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003178 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003179 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003180 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003181 <span class="entry_type_container">x</span>
3182
3183 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003184 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003185 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003186 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003187
3188
3189 </td> <!-- entry_type -->
3190
3191 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003192 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3193settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003194 </td>
3195
3196 <td class="entry_units">
3197 </td>
3198
3199 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003200 <p>For each available scene mode,<wbr/> the list must contain three
3201entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3202<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values used
3203by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3204where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003205 </td>
3206
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003207 <td class="entry_tags">
3208 <ul class="entry_tags">
3209 <li><a href="#tag_BC">BC</a></li>
3210 </ul>
3211 </td>
3212
3213 </tr>
3214 <tr class="entries_header">
3215 <th class="th_details" colspan="5">Details</th>
3216 </tr>
3217 <tr class="entry_cont">
3218 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003219 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3220to override <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/>
3221and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3222that scene mode.<wbr/></p>
3223<p>The order of this list matches that of availableSceneModes,<wbr/>
3224with 3 entries for each mode.<wbr/> The overrides listed
3225for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3226mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3227<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values are
3228used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3229is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3230overrides should be set to 0.<wbr/></p>
3231<p>For example,<wbr/> if availableSceneModes contains
3232<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3233expects sceneModeOverrides to have 9 entries formatted like:
3234<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3235ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003236 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003237 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003238
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003239 <tr class="entries_header">
3240 <th class="th_details" colspan="5">HAL Implementation Details</th>
3241 </tr>
3242 <tr class="entry_cont">
3243 <td class="entry_details" colspan="5">
3244 <p>To maintain backward compatibility,<wbr/> this list will be made available
3245in the static metadata of the camera service.<wbr/> The camera service will
3246use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3247<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> when using a scene
3248mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3249 </td>
3250 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003251
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003252 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3253 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003254
3255
3256
3257 <!-- end of kind -->
3258 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003259 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003260
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003261 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003262 <tr>
3263 <th class="th_name">Property Name</th>
3264 <th class="th_type">Type</th>
3265 <th class="th_description">Description</th>
3266 <th class="th_units">Units</th>
3267 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003268 <th class="th_tags">Tags</th>
3269 </tr>
3270 </thead>
3271
3272 <tbody>
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003284 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003285 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003286 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003287 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003288 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003289
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003290 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003291
3292
3293 </td> <!-- entry_type -->
3294
3295 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003296 <p>The ID sent with the latest
3297CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003298 </td>
3299
3300 <td class="entry_units">
3301 </td>
3302
3303 <td class="entry_range">
3304 </td>
3305
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003306 <td class="entry_tags">
3307 </td>
3308
3309 </tr>
3310 <tr class="entries_header">
3311 <th class="th_details" colspan="5">Details</th>
3312 </tr>
3313 <tr class="entry_cont">
3314 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003315 <p>Must be 0 if no
3316CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3317by HAL.<wbr/> Always updated even if AE algorithm ignores the
3318trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003319 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003320 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003321
3322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003323 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3324 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003325
3326
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003327 <tr class="entry" id="dynamic_android.control.aeMode">
3328 <td class="entry_name" rowspan="3">
3329 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3330 </td>
3331 <td class="entry_type">
3332 <span class="entry_type_name entry_type_name_enum">byte</span>
3333
3334 <span class="entry_type_visibility"> [public]</span>
3335
3336 <ul class="entry_type_enum">
3337 <li>
3338 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003339 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3340the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3341<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3342<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3343device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3344a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003345 </li>
3346 <li>
3347 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003348 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3349with no flash control.<wbr/> The application's values for
3350<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3351<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3352<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3353application has control over the various
3354android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003355 </li>
3356 <li>
3357 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003358 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3359the camera's flash unit,<wbr/> firing it in low-light
3360conditions.<wbr/> The flash may be fired during a
3361precapture sequence (triggered by
3362<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3363for captures for which the
3364<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3365STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003366 </li>
3367 <li>
3368 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003369 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3370the camera's flash unit,<wbr/> always firing it for still
3371captures.<wbr/> The flash may be fired during a precapture
3372sequence (triggered by
3373<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3374be fired for captures for which the
3375<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3376STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003377 </li>
3378 <li>
3379 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003380 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3381reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3382a red eye reduction flash will fire during the
3383precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003384 </li>
3385 </ul>
3386
3387 </td> <!-- entry_type -->
3388
3389 <td class="entry_description">
3390 <p>The desired mode for the camera device's
3391auto-exposure routine.<wbr/></p>
3392 </td>
3393
3394 <td class="entry_units">
3395 </td>
3396
3397 <td class="entry_range">
3398 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3399 </td>
3400
3401 <td class="entry_tags">
3402 <ul class="entry_tags">
3403 <li><a href="#tag_BC">BC</a></li>
3404 </ul>
3405 </td>
3406
3407 </tr>
3408 <tr class="entries_header">
3409 <th class="th_details" colspan="5">Details</th>
3410 </tr>
3411 <tr class="entry_cont">
3412 <td class="entry_details" colspan="5">
3413 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3414AUTO.<wbr/></p>
3415<p>When set to any of the ON modes,<wbr/> the camera device's
3416auto-exposure routine is enabled,<wbr/> overriding the
3417application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3418and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3419<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3420<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3421is selected,<wbr/> the camera device's flash unit controls are
3422also overridden.<wbr/></p>
3423<p>The FLASH modes are only available if the camera device
3424has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3425<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3426ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3427<p>When set to any of the ON modes,<wbr/> the values chosen by the
3428camera device auto-exposure routine for the overridden
3429fields for a given capture will be available in its
3430CaptureResult.<wbr/></p>
3431 </td>
3432 </tr>
3433
3434
3435 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3436 <!-- end of entry -->
3437
3438
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003439 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003440 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003441 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003442 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003443 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003444 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003445 <span class="entry_type_container">x</span>
3446
3447 <span class="entry_type_array">
3448 5 x area_count
3449 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003450 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003451
3452
3453 </td> <!-- entry_type -->
3454
3455 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003456 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003457metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003458 </td>
3459
3460 <td class="entry_units">
3461 </td>
3462
3463 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003464 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003465 </td>
3466
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003467 <td class="entry_tags">
3468 <ul class="entry_tags">
3469 <li><a href="#tag_BC">BC</a></li>
3470 </ul>
3471 </td>
3472
3473 </tr>
3474 <tr class="entries_header">
3475 <th class="th_details" colspan="5">Details</th>
3476 </tr>
3477 <tr class="entry_cont">
3478 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003479 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003480xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003481specified coordinates.<wbr/></p>
3482<p>The coordinate system is based on the active pixel array,<wbr/>
3483with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003484(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3485<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003486bottom-right pixel in the active pixel array.<wbr/> The weight
3487should be nonnegative.<wbr/></p>
3488<p>If all regions have 0 weight,<wbr/> then no specific metering area
3489needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003490outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003491should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003492used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003493 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003494 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003495
3496
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003497 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3498 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003499
3500
3501 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003502 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003503 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003504 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003505 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003506 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003507
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003508 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003509
3510 <ul class="entry_type_enum">
3511 <li>
3512 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003513 <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/> When a camera device is opened,<wbr/> it starts in
Igor Murashkina10351a2014-01-15 17:05:22 -08003514this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003515 </li>
3516 <li>
3517 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003518 <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
Zhijun He92e698d2014-01-13 16:24:31 -08003519for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003520 </li>
3521 <li>
3522 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003523 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003524current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003525 </li>
3526 <li>
3527 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003528 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003529 </li>
3530 <li>
3531 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003532 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3533needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003534capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003535 </li>
3536 <li>
3537 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003538 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003539(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3540and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003541completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003542FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003543 </li>
3544 </ul>
3545
3546 </td> <!-- entry_type -->
3547
3548 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003549 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003550 </td>
3551
3552 <td class="entry_units">
3553 </td>
3554
3555 <td class="entry_range">
3556 </td>
3557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003558 <td class="entry_tags">
3559 </td>
3560
3561 </tr>
3562 <tr class="entries_header">
3563 <th class="th_details" colspan="5">Details</th>
3564 </tr>
3565 <tr class="entry_cont">
3566 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003567 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3568resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3569or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
3570the algorithm states to INACTIVE.<wbr/></p>
3571<p>The camera device can do several state transitions between two results,<wbr/> if it is
3572allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3573seen in a result.<wbr/></p>
3574<p>The state in the result is the state for this image (in sync with this image): if
3575AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3576be good to use.<wbr/></p>
3577<p>Below are state transition tables for different AE modes.<wbr/></p>
3578<table>
3579<thead>
3580<tr>
3581<th align="center">State</th>
3582<th align="center">Transition Cause</th>
3583<th align="center">New State</th>
3584<th align="center">Notes</th>
3585</tr>
3586</thead>
3587<tbody>
3588<tr>
3589<td align="center">INACTIVE</td>
3590<td align="center"></td>
3591<td align="center">INACTIVE</td>
3592<td align="center">Camera device auto exposure algorithm is disabled</td>
3593</tr>
3594</tbody>
3595</table>
3596<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3597<table>
3598<thead>
3599<tr>
3600<th align="center">State</th>
3601<th align="center">Transition Cause</th>
3602<th align="center">New State</th>
3603<th align="center">Notes</th>
3604</tr>
3605</thead>
3606<tbody>
3607<tr>
3608<td align="center">INACTIVE</td>
3609<td align="center">Camera device initiates AE scan</td>
3610<td align="center">SEARCHING</td>
3611<td align="center">Values changing</td>
3612</tr>
3613<tr>
3614<td align="center">INACTIVE</td>
3615<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3616<td align="center">LOCKED</td>
3617<td align="center">Values locked</td>
3618</tr>
3619<tr>
3620<td align="center">SEARCHING</td>
3621<td align="center">Camera device finishes AE scan</td>
3622<td align="center">CONVERGED</td>
3623<td align="center">Good values,<wbr/> not changing</td>
3624</tr>
3625<tr>
3626<td align="center">SEARCHING</td>
3627<td align="center">Camera device finishes AE scan</td>
3628<td align="center">FLASH_<wbr/>REQUIRED</td>
3629<td align="center">Converged but too dark w/<wbr/>o flash</td>
3630</tr>
3631<tr>
3632<td align="center">SEARCHING</td>
3633<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3634<td align="center">LOCKED</td>
3635<td align="center">Values locked</td>
3636</tr>
3637<tr>
3638<td align="center">CONVERGED</td>
3639<td align="center">Camera device initiates AE scan</td>
3640<td align="center">SEARCHING</td>
3641<td align="center">Values changing</td>
3642</tr>
3643<tr>
3644<td align="center">CONVERGED</td>
3645<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3646<td align="center">LOCKED</td>
3647<td align="center">Values locked</td>
3648</tr>
3649<tr>
3650<td align="center">FLASH_<wbr/>REQUIRED</td>
3651<td align="center">Camera device initiates AE scan</td>
3652<td align="center">SEARCHING</td>
3653<td align="center">Values changing</td>
3654</tr>
3655<tr>
3656<td align="center">FLASH_<wbr/>REQUIRED</td>
3657<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3658<td align="center">LOCKED</td>
3659<td align="center">Values locked</td>
3660</tr>
3661<tr>
3662<td align="center">LOCKED</td>
3663<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3664<td align="center">SEARCHING</td>
3665<td align="center">Values not good after unlock</td>
3666</tr>
3667<tr>
3668<td align="center">LOCKED</td>
3669<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3670<td align="center">CONVERGED</td>
3671<td align="center">Values good after unlock</td>
3672</tr>
3673<tr>
3674<td align="center">LOCKED</td>
3675<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3676<td align="center">FLASH_<wbr/>REQUIRED</td>
3677<td align="center">Exposure good,<wbr/> but too dark</td>
3678</tr>
3679<tr>
3680<td align="center">PRECAPTURE</td>
3681<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3682<td align="center">CONVERGED</td>
3683<td align="center">Ready for high-quality capture</td>
3684</tr>
3685<tr>
3686<td align="center">PRECAPTURE</td>
3687<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3688<td align="center">LOCKED</td>
3689<td align="center">Ready for high-quality capture</td>
3690</tr>
3691<tr>
3692<td align="center">Any state</td>
3693<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3694<td align="center">PRECAPTURE</td>
3695<td align="center">Start AE precapture metering sequence</td>
3696</tr>
3697</tbody>
3698</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003699 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003700 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003701
3702
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003703 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3704 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003705
3706
3707 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003708 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003709 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003710 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003711 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003712 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003713
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003714 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003715
3716 <ul class="entry_type_enum">
3717 <li>
3718 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003719 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3720<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3721application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003722 </li>
3723 <li>
3724 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003725 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3726<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
3727is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3728the autofocus trigger action is called.<wbr/> When that trigger
3729is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3730the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3731<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3732and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003733 </li>
3734 <li>
3735 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003736 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3737autofocus trigger action is called.<wbr/></p>
3738<p>When that trigger is activated,<wbr/> AF must transition to
3739ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3740NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3741position to default,<wbr/> and sets the AF state to
3742INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003743 </li>
3744 <li>
3745 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003746 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3747position continually to attempt to provide a
3748constantly-in-focus image stream.<wbr/></p>
3749<p>The focusing behavior should be suitable for good quality
3750video recording; typically this means slower focus
3751movement and no overshoots.<wbr/> When the AF trigger is not
3752involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3753and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3754states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3755the algorithm should immediately transition into
3756AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3757lens position until a cancel AF trigger is received.<wbr/></p>
3758<p>Once cancel is received,<wbr/> the algorithm should transition
3759back to INACTIVE and resume passive scan.<wbr/> Note that this
3760behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3761ongoing PASSIVE_<wbr/>SCAN must immediately be
3762canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003763 </li>
3764 <li>
3765 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003766 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3767position continually to attempt to provide a
3768constantly-in-focus image stream.<wbr/></p>
3769<p>The focusing behavior should be suitable for still image
3770capture; typically this means focusing as fast as
3771possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3772algorithm should start in INACTIVE state,<wbr/> and then
3773transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3774appropriate as it attempts to maintain focus.<wbr/> When the AF
3775trigger is activated,<wbr/> the algorithm should finish its
3776PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3777AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3778lens position until a cancel AF trigger is received.<wbr/></p>
3779<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3780should transition back to INACTIVE and then act as if it
3781has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003782 </li>
3783 <li>
3784 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003785 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3786trigger is ignored,<wbr/> AF state should always be
3787INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003788 </li>
3789 </ul>
3790
3791 </td> <!-- entry_type -->
3792
3793 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003794 <p>Whether AF is currently enabled,<wbr/> and what
3795mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003796 </td>
3797
3798 <td class="entry_units">
3799 </td>
3800
3801 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003802 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003803 </td>
3804
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003805 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003806 <ul class="entry_tags">
3807 <li><a href="#tag_BC">BC</a></li>
3808 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003809 </td>
3810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003811 </tr>
3812 <tr class="entries_header">
3813 <th class="th_details" colspan="5">Details</th>
3814 </tr>
3815 <tr class="entry_cont">
3816 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003817 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08003818<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3819the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3820in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003821 </td>
3822 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003823
3824
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003825 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3826 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003827
3828
3829 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003830 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003831 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003832 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003833 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003834 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003835 <span class="entry_type_container">x</span>
3836
3837 <span class="entry_type_array">
3838 5 x area_count
3839 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003840 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003841
3842
3843 </td> <!-- entry_type -->
3844
3845 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003846 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003847estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003848 </td>
3849
3850 <td class="entry_units">
3851 </td>
3852
3853 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003854 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003855 </td>
3856
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003857 <td class="entry_tags">
3858 <ul class="entry_tags">
3859 <li><a href="#tag_BC">BC</a></li>
3860 </ul>
3861 </td>
3862
3863 </tr>
3864 <tr class="entries_header">
3865 <th class="th_details" colspan="5">Details</th>
3866 </tr>
3867 <tr class="entry_cont">
3868 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003869 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003870xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003871specified coordinates.<wbr/></p>
3872<p>The coordinate system is based on the active pixel array,<wbr/>
3873with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003874(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3875<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003876bottom-right pixel in the active pixel array.<wbr/> The weight
3877should be nonnegative.<wbr/></p>
3878<p>If all regions have 0 weight,<wbr/> then no specific focus area
3879needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003880outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003881should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003882used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003883 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003884 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003885
3886
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003887 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3888 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003889
3890
3891 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003892 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003893 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003894 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003895 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003896 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003897
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003898 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003899
3900 <ul class="entry_type_enum">
3901 <li>
3902 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003903 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3904to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3905this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003906 </li>
3907 <li>
3908 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003909 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3910currently doing an AF scan initiated by a continuous
3911autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003912 </li>
3913 <li>
3914 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003915 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3916believes it is in focus,<wbr/> but may restart scanning at
3917any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003918 </li>
3919 <li>
3920 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003921 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3922an AF scan because it was triggered by AF
3923trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003924 </li>
3925 <li>
3926 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003927 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3928believes it is focused correctly and is
3929locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003930 </li>
3931 <li>
3932 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003933 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3934failed to focus successfully and is
3935locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003936 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003937 <li>
3938 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003939 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3940passive scan without finding focus,<wbr/> and may restart
3941scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003942 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003943 </ul>
3944
3945 </td> <!-- entry_type -->
3946
3947 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003948 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003949 </td>
3950
3951 <td class="entry_units">
3952 </td>
3953
3954 <td class="entry_range">
3955 </td>
3956
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003957 <td class="entry_tags">
3958 </td>
3959
3960 </tr>
3961 <tr class="entries_header">
3962 <th class="th_details" colspan="5">Details</th>
3963 </tr>
3964 <tr class="entry_cont">
3965 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003966 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3967resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3968or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
3969the algorithm states to INACTIVE.<wbr/></p>
3970<p>The camera device can do several state transitions between two results,<wbr/> if it is
3971allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3972seen in a result.<wbr/></p>
3973<p>The state in the result is the state for this image (in sync with this image): if
3974AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3975be sharp.<wbr/></p>
3976<p>Below are state transition tables for different AF modes.<wbr/></p>
3977<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>OFF or AF_<wbr/>MODE_<wbr/>EDOF:</p>
3978<table>
3979<thead>
3980<tr>
3981<th align="center">State</th>
3982<th align="center">Transition Cause</th>
3983<th align="center">New State</th>
3984<th align="center">Notes</th>
3985</tr>
3986</thead>
3987<tbody>
3988<tr>
3989<td align="center">INACTIVE</td>
3990<td align="center"></td>
3991<td align="center">INACTIVE</td>
3992<td align="center">Never changes</td>
3993</tr>
3994</tbody>
3995</table>
3996<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>AUTO or AF_<wbr/>MODE_<wbr/>MACRO:</p>
3997<table>
3998<thead>
3999<tr>
4000<th align="center">State</th>
4001<th align="center">Transition Cause</th>
4002<th align="center">New State</th>
4003<th align="center">Notes</th>
4004</tr>
4005</thead>
4006<tbody>
4007<tr>
4008<td align="center">INACTIVE</td>
4009<td align="center">AF_<wbr/>TRIGGER</td>
4010<td align="center">ACTIVE_<wbr/>SCAN</td>
4011<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4012</tr>
4013<tr>
4014<td align="center">ACTIVE_<wbr/>SCAN</td>
4015<td align="center">AF sweep done</td>
4016<td align="center">FOCUSED_<wbr/>LOCKED</td>
4017<td align="center">Focused,<wbr/> Lens now locked</td>
4018</tr>
4019<tr>
4020<td align="center">ACTIVE_<wbr/>SCAN</td>
4021<td align="center">AF sweep done</td>
4022<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4023<td align="center">Not focused,<wbr/> Lens now locked</td>
4024</tr>
4025<tr>
4026<td align="center">ACTIVE_<wbr/>SCAN</td>
4027<td align="center">AF_<wbr/>CANCEL</td>
4028<td align="center">INACTIVE</td>
4029<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4030</tr>
4031<tr>
4032<td align="center">FOCUSED_<wbr/>LOCKED</td>
4033<td align="center">AF_<wbr/>CANCEL</td>
4034<td align="center">INACTIVE</td>
4035<td align="center">Cancel/<wbr/>reset AF</td>
4036</tr>
4037<tr>
4038<td align="center">FOCUSED_<wbr/>LOCKED</td>
4039<td align="center">AF_<wbr/>TRIGGER</td>
4040<td align="center">ACTIVE_<wbr/>SCAN</td>
4041<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4042</tr>
4043<tr>
4044<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4045<td align="center">AF_<wbr/>CANCEL</td>
4046<td align="center">INACTIVE</td>
4047<td align="center">Cancel/<wbr/>reset AF</td>
4048</tr>
4049<tr>
4050<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4051<td align="center">AF_<wbr/>TRIGGER</td>
4052<td align="center">ACTIVE_<wbr/>SCAN</td>
4053<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4054</tr>
4055<tr>
4056<td align="center">Any state</td>
4057<td align="center">Mode change</td>
4058<td align="center">INACTIVE</td>
4059<td align="center"></td>
4060</tr>
4061</tbody>
4062</table>
4063<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>VIDEO:</p>
4064<table>
4065<thead>
4066<tr>
4067<th align="center">State</th>
4068<th align="center">Transition Cause</th>
4069<th align="center">New State</th>
4070<th align="center">Notes</th>
4071</tr>
4072</thead>
4073<tbody>
4074<tr>
4075<td align="center">INACTIVE</td>
4076<td align="center">Camera device initiates new scan</td>
4077<td align="center">PASSIVE_<wbr/>SCAN</td>
4078<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4079</tr>
4080<tr>
4081<td align="center">INACTIVE</td>
4082<td align="center">AF_<wbr/>TRIGGER</td>
4083<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4084<td align="center">AF state query,<wbr/> Lens now locked</td>
4085</tr>
4086<tr>
4087<td align="center">PASSIVE_<wbr/>SCAN</td>
4088<td align="center">Camera device completes current scan</td>
4089<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4090<td align="center">End AF scan,<wbr/> Lens now locked</td>
4091</tr>
4092<tr>
4093<td align="center">PASSIVE_<wbr/>SCAN</td>
4094<td align="center">Camera device fails current scan</td>
4095<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4096<td align="center">End AF scan,<wbr/> Lens now locked</td>
4097</tr>
4098<tr>
4099<td align="center">PASSIVE_<wbr/>SCAN</td>
4100<td align="center">AF_<wbr/>TRIGGER</td>
4101<td align="center">FOCUSED_<wbr/>LOCKED</td>
4102<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4103</tr>
4104<tr>
4105<td align="center">PASSIVE_<wbr/>SCAN</td>
4106<td align="center">AF_<wbr/>TRIGGER</td>
4107<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4108<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4109</tr>
4110<tr>
4111<td align="center">PASSIVE_<wbr/>SCAN</td>
4112<td align="center">AF_<wbr/>CANCEL</td>
4113<td align="center">INACTIVE</td>
4114<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4115</tr>
4116<tr>
4117<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4118<td align="center">Camera device initiates new scan</td>
4119<td align="center">PASSIVE_<wbr/>SCAN</td>
4120<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4121</tr>
4122<tr>
4123<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4124<td align="center">Camera device initiates new scan</td>
4125<td align="center">PASSIVE_<wbr/>SCAN</td>
4126<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4127</tr>
4128<tr>
4129<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4130<td align="center">AF_<wbr/>TRIGGER</td>
4131<td align="center">FOCUSED_<wbr/>LOCKED</td>
4132<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4133</tr>
4134<tr>
4135<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4136<td align="center">AF_<wbr/>TRIGGER</td>
4137<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4138<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4139</tr>
4140<tr>
4141<td align="center">FOCUSED_<wbr/>LOCKED</td>
4142<td align="center">AF_<wbr/>TRIGGER</td>
4143<td align="center">FOCUSED_<wbr/>LOCKED</td>
4144<td align="center">No effect</td>
4145</tr>
4146<tr>
4147<td align="center">FOCUSED_<wbr/>LOCKED</td>
4148<td align="center">AF_<wbr/>CANCEL</td>
4149<td align="center">INACTIVE</td>
4150<td align="center">Restart AF scan</td>
4151</tr>
4152<tr>
4153<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4154<td align="center">AF_<wbr/>TRIGGER</td>
4155<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4156<td align="center">No effect</td>
4157</tr>
4158<tr>
4159<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4160<td align="center">AF_<wbr/>CANCEL</td>
4161<td align="center">INACTIVE</td>
4162<td align="center">Restart AF scan</td>
4163</tr>
4164</tbody>
4165</table>
4166<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>PICTURE:</p>
4167<table>
4168<thead>
4169<tr>
4170<th align="center">State</th>
4171<th align="center">Transition Cause</th>
4172<th align="center">New State</th>
4173<th align="center">Notes</th>
4174</tr>
4175</thead>
4176<tbody>
4177<tr>
4178<td align="center">INACTIVE</td>
4179<td align="center">Camera device initiates new scan</td>
4180<td align="center">PASSIVE_<wbr/>SCAN</td>
4181<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4182</tr>
4183<tr>
4184<td align="center">INACTIVE</td>
4185<td align="center">AF_<wbr/>TRIGGER</td>
4186<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4187<td align="center">AF state query,<wbr/> Lens now locked</td>
4188</tr>
4189<tr>
4190<td align="center">PASSIVE_<wbr/>SCAN</td>
4191<td align="center">Camera device completes current scan</td>
4192<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4193<td align="center">End AF scan,<wbr/> Lens now locked</td>
4194</tr>
4195<tr>
4196<td align="center">PASSIVE_<wbr/>SCAN</td>
4197<td align="center">Camera device fails current scan</td>
4198<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4199<td align="center">End AF scan,<wbr/> Lens now locked</td>
4200</tr>
4201<tr>
4202<td align="center">PASSIVE_<wbr/>SCAN</td>
4203<td align="center">AF_<wbr/>TRIGGER</td>
4204<td align="center">FOCUSED_<wbr/>LOCKED</td>
4205<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4206</tr>
4207<tr>
4208<td align="center">PASSIVE_<wbr/>SCAN</td>
4209<td align="center">AF_<wbr/>TRIGGER</td>
4210<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4211<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4212</tr>
4213<tr>
4214<td align="center">PASSIVE_<wbr/>SCAN</td>
4215<td align="center">AF_<wbr/>CANCEL</td>
4216<td align="center">INACTIVE</td>
4217<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4218</tr>
4219<tr>
4220<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4221<td align="center">Camera device initiates new scan</td>
4222<td align="center">PASSIVE_<wbr/>SCAN</td>
4223<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4224</tr>
4225<tr>
4226<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4227<td align="center">Camera device initiates new scan</td>
4228<td align="center">PASSIVE_<wbr/>SCAN</td>
4229<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4230</tr>
4231<tr>
4232<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4233<td align="center">AF_<wbr/>TRIGGER</td>
4234<td align="center">FOCUSED_<wbr/>LOCKED</td>
4235<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4236</tr>
4237<tr>
4238<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4239<td align="center">AF_<wbr/>TRIGGER</td>
4240<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4241<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4242</tr>
4243<tr>
4244<td align="center">FOCUSED_<wbr/>LOCKED</td>
4245<td align="center">AF_<wbr/>TRIGGER</td>
4246<td align="center">FOCUSED_<wbr/>LOCKED</td>
4247<td align="center">No effect</td>
4248</tr>
4249<tr>
4250<td align="center">FOCUSED_<wbr/>LOCKED</td>
4251<td align="center">AF_<wbr/>CANCEL</td>
4252<td align="center">INACTIVE</td>
4253<td align="center">Restart AF scan</td>
4254</tr>
4255<tr>
4256<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4257<td align="center">AF_<wbr/>TRIGGER</td>
4258<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4259<td align="center">No effect</td>
4260</tr>
4261<tr>
4262<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4263<td align="center">AF_<wbr/>CANCEL</td>
4264<td align="center">INACTIVE</td>
4265<td align="center">Restart AF scan</td>
4266</tr>
4267</tbody>
4268</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004269 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004270 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004271
4272
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004273 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4274 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004275
4276
4277 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004278 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004279 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004280 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004281 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004282 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004283
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004284 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004285
4286
4287 </td> <!-- entry_type -->
4288
4289 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004290 <p>The ID sent with the latest
4291CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004292 </td>
4293
4294 <td class="entry_units">
4295 </td>
4296
4297 <td class="entry_range">
4298 </td>
4299
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004300 <td class="entry_tags">
4301 </td>
4302
4303 </tr>
4304 <tr class="entries_header">
4305 <th class="th_details" colspan="5">Details</th>
4306 </tr>
4307 <tr class="entry_cont">
4308 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004309 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4310received yet by HAL.<wbr/> Always updated even if AF algorithm
4311ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004312 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004313 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004314
4315
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004316 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4317 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004318
4319
4320 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004321 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004322 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004323 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004324 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004325 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004326
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004327 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004328
4329 <ul class="entry_type_enum">
4330 <li>
4331 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004332 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4333the application-selected color transform matrix
4334(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4335(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4336device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004337 </li>
4338 <li>
4339 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004340 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4341the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4342and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004343 </li>
4344 <li>
4345 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004346 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4347the camera device uses incandescent light as the assumed scene
4348illumination for white balance.<wbr/> While the exact white balance
4349transforms are up to the camera device,<wbr/> they will approximately
4350match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004351 </li>
4352 <li>
4353 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004354 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4355the camera device uses fluorescent light as the assumed scene
4356illumination for white balance.<wbr/> While the exact white balance
4357transforms are up to the camera device,<wbr/> they will approximately
4358match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004359 </li>
4360 <li>
4361 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004362 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4363the camera device uses warm fluorescent light as the assumed scene
4364illumination for white balance.<wbr/> While the exact white balance
4365transforms are up to the camera device,<wbr/> they will approximately
4366match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004367 </li>
4368 <li>
4369 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004370 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4371the camera device uses daylight light as the assumed scene
4372illumination for white balance.<wbr/> While the exact white balance
4373transforms are up to the camera device,<wbr/> they will approximately
4374match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004375 </li>
4376 <li>
4377 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004378 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4379the camera device uses cloudy daylight light as the assumed scene
4380illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004381 </li>
4382 <li>
4383 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004384 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4385the camera device uses twilight light as the assumed scene
4386illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004387 </li>
4388 <li>
4389 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004390 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4391the camera device uses shade light as the assumed scene
4392illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004393 </li>
4394 </ul>
4395
4396 </td> <!-- entry_type -->
4397
4398 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004399 <p>Whether AWB is currently setting the color
4400transform fields,<wbr/> and what its illumination target
4401is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004402 </td>
4403
4404 <td class="entry_units">
4405 </td>
4406
4407 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004408 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004409 </td>
4410
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004411 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004412 <ul class="entry_tags">
4413 <li><a href="#tag_BC">BC</a></li>
4414 <li><a href="#tag_AWB">AWB</a></li>
4415 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004416 </td>
4417
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004418 </tr>
4419 <tr class="entries_header">
4420 <th class="th_details" colspan="5">Details</th>
4421 </tr>
4422 <tr class="entry_cont">
4423 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004424 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4425<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4426routine is enabled,<wbr/> overriding the application's selected
4427<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
4428<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4429<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4430routine is disabled.<wbr/> The applicantion manually controls the white
4431balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4432and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4433<p>When set to any other modes,<wbr/> the camera device's auto white balance
4434routine is disabled.<wbr/> The camera device uses each particular illumination
4435target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004436 </td>
4437 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004438
4439
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004440 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4441 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004442
4443
4444 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004445 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004446 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004447 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004448 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004449 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004450 <span class="entry_type_container">x</span>
4451
4452 <span class="entry_type_array">
4453 5 x area_count
4454 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004455 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004456
4457
4458 </td> <!-- entry_type -->
4459
4460 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004461 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004462estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004463 </td>
4464
4465 <td class="entry_units">
4466 </td>
4467
4468 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004469 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004470 </td>
4471
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004472 <td class="entry_tags">
4473 <ul class="entry_tags">
4474 <li><a href="#tag_BC">BC</a></li>
4475 </ul>
4476 </td>
4477
4478 </tr>
4479 <tr class="entries_header">
4480 <th class="th_details" colspan="5">Details</th>
4481 </tr>
4482 <tr class="entry_cont">
4483 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004484 <p>Only used in AUTO mode.<wbr/></p>
4485<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004486xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08004487specified coordinates.<wbr/></p>
4488<p>The coordinate system is based on the active pixel array,<wbr/>
4489with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004490(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4491<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08004492bottom-right pixel in the active pixel array.<wbr/> The weight
4493should be nonnegative.<wbr/></p>
4494<p>If all regions have 0 weight,<wbr/> then no specific metering area
4495needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004496outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08004497should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004498used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004499 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004500 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004501
4502
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004503 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4504 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004505
4506
4507 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004508 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004509 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004510 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004511 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004512 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004513
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004514 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004515
4516 <ul class="entry_type_enum">
4517 <li>
4518 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004519 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4520starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004521 </li>
4522 <li>
4523 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004524 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004525values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004526 </li>
4527 <li>
4528 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004529 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004530current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004531 </li>
4532 <li>
4533 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004534 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004535 </li>
4536 </ul>
4537
4538 </td> <!-- entry_type -->
4539
4540 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004541 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004542 </td>
4543
4544 <td class="entry_units">
4545 </td>
4546
4547 <td class="entry_range">
4548 </td>
4549
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004550 <td class="entry_tags">
4551 </td>
4552
4553 </tr>
4554 <tr class="entries_header">
4555 <th class="th_details" colspan="5">Details</th>
4556 </tr>
4557 <tr class="entry_cont">
4558 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004559 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4560resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4561or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
4562the algorithm states to INACTIVE.<wbr/></p>
4563<p>The camera device can do several state transitions between two results,<wbr/> if it is
4564allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4565a result.<wbr/></p>
4566<p>The state in the result is the state for this image (in sync with this image): if
4567AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4568be good to use.<wbr/></p>
4569<p>Below are state transition tables for different AWB modes.<wbr/></p>
4570<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4571<table>
4572<thead>
4573<tr>
4574<th align="center">State</th>
4575<th align="center">Transition Cause</th>
4576<th align="center">New State</th>
4577<th align="center">Notes</th>
4578</tr>
4579</thead>
4580<tbody>
4581<tr>
4582<td align="center">INACTIVE</td>
4583<td align="center"></td>
4584<td align="center">INACTIVE</td>
4585<td align="center">Camera device auto white balance algorithm is disabled</td>
4586</tr>
4587</tbody>
4588</table>
4589<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4590<table>
4591<thead>
4592<tr>
4593<th align="center">State</th>
4594<th align="center">Transition Cause</th>
4595<th align="center">New State</th>
4596<th align="center">Notes</th>
4597</tr>
4598</thead>
4599<tbody>
4600<tr>
4601<td align="center">INACTIVE</td>
4602<td align="center">Camera device initiates AWB scan</td>
4603<td align="center">SEARCHING</td>
4604<td align="center">Values changing</td>
4605</tr>
4606<tr>
4607<td align="center">INACTIVE</td>
4608<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4609<td align="center">LOCKED</td>
4610<td align="center">Values locked</td>
4611</tr>
4612<tr>
4613<td align="center">SEARCHING</td>
4614<td align="center">Camera device finishes AWB scan</td>
4615<td align="center">CONVERGED</td>
4616<td align="center">Good values,<wbr/> not changing</td>
4617</tr>
4618<tr>
4619<td align="center">SEARCHING</td>
4620<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4621<td align="center">LOCKED</td>
4622<td align="center">Values locked</td>
4623</tr>
4624<tr>
4625<td align="center">CONVERGED</td>
4626<td align="center">Camera device initiates AWB scan</td>
4627<td align="center">SEARCHING</td>
4628<td align="center">Values changing</td>
4629</tr>
4630<tr>
4631<td align="center">CONVERGED</td>
4632<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4633<td align="center">LOCKED</td>
4634<td align="center">Values locked</td>
4635</tr>
4636<tr>
4637<td align="center">LOCKED</td>
4638<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4639<td align="center">SEARCHING</td>
4640<td align="center">Values not good after unlock</td>
4641</tr>
4642<tr>
4643<td align="center">LOCKED</td>
4644<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4645<td align="center">CONVERGED</td>
4646<td align="center">Values good after unlock</td>
4647</tr>
4648</tbody>
4649</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004650 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004651 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004652
4653
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004654 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4655 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004656
4657
4658 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004659 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004660 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004661 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004662 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004663 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004664
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004665 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004666
4667 <ul class="entry_type_enum">
4668 <li>
4669 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004670 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4671routines are disabled,<wbr/> no other settings in
4672android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004673 </li>
4674 <li>
4675 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004676 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4677Manual control of capture parameters is disabled.<wbr/> All
4678controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4679effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004680 </li>
4681 <li>
4682 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004683 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4684control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4685controls; the HAL must ignore those settings while
4686USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4687scene mode).<wbr/> Other control entries are still active.<wbr/>
4688This setting can only be used if availableSceneModes !=
4689UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004690 </li>
4691 </ul>
4692
4693 </td> <!-- entry_type -->
4694
4695 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004696 <p>Overall mode of 3A control
4697routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004698 </td>
4699
4700 <td class="entry_units">
4701 </td>
4702
4703 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004704 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004705 </td>
4706
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004707 <td class="entry_tags">
4708 <ul class="entry_tags">
4709 <li><a href="#tag_BC">BC</a></li>
4710 </ul>
4711 </td>
4712
4713 </tr>
4714 <tr class="entries_header">
4715 <th class="th_details" colspan="5">Details</th>
4716 </tr>
4717 <tr class="entry_cont">
4718 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004719 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004720by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004721capture parameters itself.<wbr/></p>
4722<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004723android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08004724<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004725android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004726one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004727as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004728<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004729 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004730 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004731
4732
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004733 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4734 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004735
4736
4737
4738 <!-- end of kind -->
4739 </tbody>
4740
4741 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004742 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004743
4744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004745 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004746
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004747 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004748 <tr>
4749 <th class="th_name">Property Name</th>
4750 <th class="th_type">Type</th>
4751 <th class="th_description">Description</th>
4752 <th class="th_units">Units</th>
4753 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004754 <th class="th_tags">Tags</th>
4755 </tr>
4756 </thead>
4757
4758 <tbody>
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004770 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004771 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004772 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004773 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004774 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004775
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004776 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004777
4778 <ul class="entry_type_enum">
4779 <li>
4780 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004781 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4782Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004783 </li>
4784 <li>
4785 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004786 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4787rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004788 </li>
4789 </ul>
4790
4791 </td> <!-- entry_type -->
4792
4793 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004794 <p>Controls the quality of the demosaicing
4795processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004796 </td>
4797
4798 <td class="entry_units">
4799 </td>
4800
4801 <td class="entry_range">
4802 </td>
4803
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004804 <td class="entry_tags">
4805 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004806 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004807 </ul>
4808 </td>
4809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004810 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004811
4812
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004813 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4814 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004815
4816
4817
4818 <!-- end of kind -->
4819 </tbody>
4820
4821 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004822 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004823
4824
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004825 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004826
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004827 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004828 <tr>
4829 <th class="th_name">Property Name</th>
4830 <th class="th_type">Type</th>
4831 <th class="th_description">Description</th>
4832 <th class="th_units">Units</th>
4833 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004834 <th class="th_tags">Tags</th>
4835 </tr>
4836 </thead>
4837
4838 <tbody>
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004850 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004851 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004852 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004853 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004854 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004855
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004856 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004857
4858 <ul class="entry_type_enum">
4859 <li>
4860 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004861 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004862 </li>
4863 <li>
4864 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004865 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4866output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004867 </li>
4868 <li>
4869 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004870 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4871quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004872 </li>
4873 </ul>
4874
4875 </td> <!-- entry_type -->
4876
4877 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004878 <p>Operation mode for edge
4879enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004880 </td>
4881
4882 <td class="entry_units">
4883 </td>
4884
4885 <td class="entry_range">
4886 </td>
4887
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004888 <td class="entry_tags">
4889 </td>
4890
4891 </tr>
4892 <tr class="entries_header">
4893 <th class="th_details" colspan="5">Details</th>
4894 </tr>
4895 <tr class="entry_cont">
4896 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004897 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4898enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004899<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004900will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004901camera device will use the highest-quality enhancement algorithms,<wbr/>
4902even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004903not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004904 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004905 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004906
4907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004908 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4909 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004910
4911
4912 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004913 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004914 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004915 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004916 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004917 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004918
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004919 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004920
4921
4922 </td> <!-- entry_type -->
4923
4924 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004925 <p>Control the amount of edge enhancement
4926applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004927 </td>
4928
4929 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004930 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004931 </td>
4932
4933 <td class="entry_range">
4934 </td>
4935
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004936 <td class="entry_tags">
4937 </td>
4938
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004939 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004940
4941
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004942 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4943 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004944
4945
4946
4947 <!-- end of kind -->
4948 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004949 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004950
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004951 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004952 <tr>
4953 <th class="th_name">Property Name</th>
4954 <th class="th_type">Type</th>
4955 <th class="th_description">Description</th>
4956 <th class="th_units">Units</th>
4957 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004958 <th class="th_tags">Tags</th>
4959 </tr>
4960 </thead>
4961
4962 <tbody>
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004974 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004975 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004976 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004977 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004978 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004979
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004980 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004981
4982 <ul class="entry_type_enum">
4983 <li>
4984 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004985 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004986 </li>
4987 <li>
4988 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004989 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4990output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004991 </li>
4992 <li>
4993 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004994 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4995quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004996 </li>
4997 </ul>
4998
4999 </td> <!-- entry_type -->
5000
5001 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005002 <p>Operation mode for edge
5003enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005004 </td>
5005
5006 <td class="entry_units">
5007 </td>
5008
5009 <td class="entry_range">
5010 </td>
5011
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005012 <td class="entry_tags">
5013 </td>
5014
5015 </tr>
5016 <tr class="entries_header">
5017 <th class="th_details" colspan="5">Details</th>
5018 </tr>
5019 <tr class="entry_cont">
5020 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005021 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5022enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005023<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005024will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005025camera device will use the highest-quality enhancement algorithms,<wbr/>
5026even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005027not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005028 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005029 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005030
5031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005032 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5033 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005034
5035
5036
5037 <!-- end of kind -->
5038 </tbody>
5039
5040 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005041 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005042
5043
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005044 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005045
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005046 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005047 <tr>
5048 <th class="th_name">Property Name</th>
5049 <th class="th_type">Type</th>
5050 <th class="th_description">Description</th>
5051 <th class="th_units">Units</th>
5052 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005053 <th class="th_tags">Tags</th>
5054 </tr>
5055 </thead>
5056
5057 <tbody>
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005069 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005070 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005071 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005072 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005073 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005074
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005075 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005076
5077
5078 </td> <!-- entry_type -->
5079
5080 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005081 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005082 </td>
5083
5084 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005085 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005086 </td>
5087
5088 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005089 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005090 </td>
5091
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005092 <td class="entry_tags">
5093 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005094 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005095 </ul>
5096 </td>
5097
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005098 </tr>
5099 <tr class="entries_header">
5100 <th class="th_details" colspan="5">Details</th>
5101 </tr>
5102 <tr class="entry_cont">
5103 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005104 <p>Power for snapshot may use a different scale than
5105for torch mode.<wbr/> Only one entry for torch mode will be
5106used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005107 </td>
5108 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005109
5110
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005111 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5112 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005113
5114
5115 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005116 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005117 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005118 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005119 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005120 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005121
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005122 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005123
5124
5125 </td> <!-- entry_type -->
5126
5127 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005128 <p>Firing time of flash relative to start of
5129exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005130 </td>
5131
5132 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005133 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005134 </td>
5135
5136 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005137 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005138 </td>
5139
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005140 <td class="entry_tags">
5141 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005142 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005143 </ul>
5144 </td>
5145
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005146 </tr>
5147 <tr class="entries_header">
5148 <th class="th_details" colspan="5">Details</th>
5149 </tr>
5150 <tr class="entry_cont">
5151 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005152 <p>Clamped to (0,<wbr/> exposure time - flash
5153duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005154 </td>
5155 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005156
5157
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005158 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5159 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005160
5161
5162 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005163 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005164 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005165 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005166 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005167 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005168
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005169 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005170
5171 <ul class="entry_type_enum">
5172 <li>
5173 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005174 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005175 </li>
5176 <li>
5177 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005178 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5179for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5180<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005181 </li>
5182 <li>
5183 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005184 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005185 </li>
5186 </ul>
5187
5188 </td> <!-- entry_type -->
5189
5190 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005191 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005192 </td>
5193
5194 <td class="entry_units">
5195 </td>
5196
5197 <td class="entry_range">
5198 </td>
5199
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005200 <td class="entry_tags">
5201 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005202 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005203 </ul>
5204 </td>
5205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005206 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005207 <tr class="entries_header">
5208 <th class="th_details" colspan="5">Details</th>
5209 </tr>
5210 <tr class="entry_cont">
5211 <td class="entry_details" colspan="5">
5212 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005213(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005214<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
5215Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5216ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5217<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5218<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5219device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5220control should be used along with AE precapture metering sequence
5221(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
5222<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5223for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08005224<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005225 </td>
5226 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005227
5228
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005229 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5230 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005231
5232
5233
5234 <!-- end of kind -->
5235 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005236 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005237
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005238 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005239 <tr>
5240 <th class="th_name">Property Name</th>
5241 <th class="th_type">Type</th>
5242 <th class="th_description">Description</th>
5243 <th class="th_units">Units</th>
5244 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005245 <th class="th_tags">Tags</th>
5246 </tr>
5247 </thead>
5248
5249 <tbody>
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005263 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005264 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005265 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005266 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -08005267 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005268
Zhijun He5169ce12014-01-24 16:48:25 -08005269 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005270
Zhijun He5169ce12014-01-24 16:48:25 -08005271 <ul class="entry_type_enum">
5272 <li>
5273 <span class="entry_type_enum_name">FALSE</span>
5274 </li>
5275 <li>
5276 <span class="entry_type_enum_name">TRUE</span>
5277 </li>
5278 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005279
5280 </td> <!-- entry_type -->
5281
5282 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08005283 <p>Whether this camera device has a
5284flash.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005285 </td>
5286
5287 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005288 </td>
5289
5290 <td class="entry_range">
5291 </td>
5292
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005293 <td class="entry_tags">
5294 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005295 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005296 </ul>
5297 </td>
5298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005299 </tr>
5300 <tr class="entries_header">
5301 <th class="th_details" colspan="5">Details</th>
5302 </tr>
5303 <tr class="entry_cont">
5304 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005305 <p>If no flash,<wbr/> none of the flash controls do
Zhijun He5169ce12014-01-24 16:48:25 -08005306anything.<wbr/> All other metadata should return 0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005307 </td>
5308 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005309
5310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5312 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005313
5314
5315 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005316 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005317 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005318 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005319 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005320 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005321
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005322 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005323
5324
5325 </td> <!-- entry_type -->
5326
5327 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005328 <p>Time taken before flash can fire
5329again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005330 </td>
5331
5332 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005333 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005334 </td>
5335
5336 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005337 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005338 </td>
5339
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005340 <td class="entry_tags">
5341 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005342 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005343 </ul>
5344 </td>
5345
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005346 </tr>
5347 <tr class="entries_header">
5348 <th class="th_details" colspan="5">Details</th>
5349 </tr>
5350 <tr class="entry_cont">
5351 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005352 <p>1 second too long/<wbr/>too short for recharge? Should
5353this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005354 </td>
5355 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005356
5357
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005358 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5359 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005360
5361
5362
5363
5364
5365 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005366 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005367 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005368 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005369 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005370 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005371
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005372 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005373
5374
5375 </td> <!-- entry_type -->
5376
5377 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005378 <p>The x,<wbr/>y whitepoint of the
5379flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005380 </td>
5381
5382 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005383 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005384 </td>
5385
5386 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005387 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005388 </td>
5389
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005390 <td class="entry_tags">
5391 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005392 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005393 </ul>
5394 </td>
5395
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005396 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005397
5398
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005399 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5400 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005401
5402
5403 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005404 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005405 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005406 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005407 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005408 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005409
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005410 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005411
5412
5413 </td> <!-- entry_type -->
5414
5415 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005416 <p>Max energy output of the flash for a full
5417power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005418 </td>
5419
5420 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005421 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005422 </td>
5423
5424 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005425 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005426 </td>
5427
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005428 <td class="entry_tags">
5429 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005430 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005431 </ul>
5432 </td>
5433
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005434 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005435
5436
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005437 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5438 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005439
5440
5441
5442 <!-- end of kind -->
5443 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005444 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005445
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005446 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005447 <tr>
5448 <th class="th_name">Property Name</th>
5449 <th class="th_type">Type</th>
5450 <th class="th_description">Description</th>
5451 <th class="th_units">Units</th>
5452 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005453 <th class="th_tags">Tags</th>
5454 </tr>
5455 </thead>
5456
5457 <tbody>
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005469 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005470 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005471 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005472 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005473 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005474
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005475 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005476
5477
5478 </td> <!-- entry_type -->
5479
5480 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005481 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005482 </td>
5483
5484 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005485 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005486 </td>
5487
5488 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005489 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005490 </td>
5491
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005492 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005493 <ul class="entry_tags">
5494 <li><a href="#tag_V1">V1</a></li>
5495 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005496 </td>
5497
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005498 </tr>
5499 <tr class="entries_header">
5500 <th class="th_details" colspan="5">Details</th>
5501 </tr>
5502 <tr class="entry_cont">
5503 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005504 <p>Power for snapshot may use a different scale than
5505for torch mode.<wbr/> Only one entry for torch mode will be
5506used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005507 </td>
5508 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005509
5510
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005511 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5512 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005513
5514
5515 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005516 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005517 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005518 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005519 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005520 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005521
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005522 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005523
5524
5525 </td> <!-- entry_type -->
5526
5527 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005528 <p>Firing time of flash relative to start of
5529exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005530 </td>
5531
5532 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005533 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005534 </td>
5535
5536 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005537 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005538 </td>
5539
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005540 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005541 <ul class="entry_tags">
5542 <li><a href="#tag_V1">V1</a></li>
5543 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005544 </td>
5545
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005546 </tr>
5547 <tr class="entries_header">
5548 <th class="th_details" colspan="5">Details</th>
5549 </tr>
5550 <tr class="entry_cont">
5551 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005552 <p>Clamped to (0,<wbr/> exposure time - flash
5553duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005554 </td>
5555 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005556
5557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005558 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5559 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005560
5561
5562 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005563 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005564 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005565 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005566 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005567 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005568
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005569 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005570
5571 <ul class="entry_type_enum">
5572 <li>
5573 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005574 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005575 </li>
5576 <li>
5577 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005578 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5579for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5580<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005581 </li>
5582 <li>
5583 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005584 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005585 </li>
5586 </ul>
5587
5588 </td> <!-- entry_type -->
5589
5590 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005591 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005592 </td>
5593
5594 <td class="entry_units">
5595 </td>
5596
5597 <td class="entry_range">
5598 </td>
5599
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005600 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005601 <ul class="entry_tags">
5602 <li><a href="#tag_BC">BC</a></li>
5603 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005604 </td>
5605
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005606 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005607 <tr class="entries_header">
5608 <th class="th_details" colspan="5">Details</th>
5609 </tr>
5610 <tr class="entry_cont">
5611 <td class="entry_details" colspan="5">
5612 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005613(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005614<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
5615Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5616ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5617<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5618<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5619device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5620control should be used along with AE precapture metering sequence
5621(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
5622<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5623for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08005624<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005625 </td>
5626 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005627
5628
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005629 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5630 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005631
5632
5633 <tr class="entry" id="dynamic_android.flash.state">
Zhijun He5169ce12014-01-24 16:48:25 -08005634 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005635 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005636 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005637 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005638 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005639
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005640 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005641
5642 <ul class="entry_type_enum">
5643 <li>
5644 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005645 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005646 </li>
5647 <li>
5648 <span class="entry_type_enum_name">CHARGING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005649 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash is
Igor Murashkina10351a2014-01-15 17:05:22 -08005650charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005651 </li>
5652 <li>
5653 <span class="entry_type_enum_name">READY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005654 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash is
Igor Murashkina10351a2014-01-15 17:05:22 -08005655ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005656 </li>
5657 <li>
5658 <span class="entry_type_enum_name">FIRED</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005659 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash fired
Igor Murashkina10351a2014-01-15 17:05:22 -08005660for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005661 </li>
5662 </ul>
5663
5664 </td> <!-- entry_type -->
5665
5666 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005667 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -08005668unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005669 </td>
5670
5671 <td class="entry_units">
5672 </td>
5673
5674 <td class="entry_range">
5675 </td>
5676
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005677 <td class="entry_tags">
5678 </td>
5679
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005680 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08005681 <tr class="entries_header">
5682 <th class="th_details" colspan="5">Details</th>
5683 </tr>
5684 <tr class="entry_cont">
5685 <td class="entry_details" colspan="5">
5686 <p>When the camera device doesn't have flash unit
5687(i.<wbr/>e.<wbr/> <code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == false</code>),<wbr/> this state will always be UNAVAILABLE.<wbr/>
5688Other states indicate the current flash status.<wbr/></p>
5689 </td>
5690 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005691
5692
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005693 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5694 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005695
5696
5697
5698 <!-- end of kind -->
5699 </tbody>
5700
5701 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005702 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005703
5704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005705 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005706
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005707 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005708 <tr>
5709 <th class="th_name">Property Name</th>
5710 <th class="th_type">Type</th>
5711 <th class="th_description">Description</th>
5712 <th class="th_units">Units</th>
5713 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005714 <th class="th_tags">Tags</th>
5715 </tr>
5716 </thead>
5717
5718 <tbody>
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005730 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005731 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005732 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005733 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005734 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005735
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005736 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005737
5738 <ul class="entry_type_enum">
5739 <li>
5740 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005741 <span class="entry_type_enum_notes"><p>No geometric correction is
5742applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005743 </li>
5744 <li>
5745 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005746 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5747bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005748 </li>
5749 <li>
5750 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005751 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5752quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005753 </li>
5754 </ul>
5755
5756 </td> <!-- entry_type -->
5757
5758 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005759 <p>Operating mode of geometric
5760correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005761 </td>
5762
5763 <td class="entry_units">
5764 </td>
5765
5766 <td class="entry_range">
5767 </td>
5768
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005769 <td class="entry_tags">
5770 </td>
5771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005772 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005773
5774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005775 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5776 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005777
5778
5779 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005780 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005781 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005782 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005783 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005784 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005785
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005786 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005787
5788
5789 </td> <!-- entry_type -->
5790
5791 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005792 <p>Control the amount of shading correction
5793applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005794 </td>
5795
5796 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005797 unitless: 1-10; 10 is full shading
5798 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005799 </td>
5800
5801 <td class="entry_range">
5802 </td>
5803
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005804 <td class="entry_tags">
5805 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005806 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005807 </ul>
5808 </td>
5809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005810 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005811
5812
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005813 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5814 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005815
5816
5817
5818 <!-- end of kind -->
5819 </tbody>
5820
5821 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005822 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005823
5824
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005825 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005826
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005827 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005828 <tr>
5829 <th class="th_name">Property Name</th>
5830 <th class="th_type">Type</th>
5831 <th class="th_description">Description</th>
5832 <th class="th_units">Units</th>
5833 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005834 <th class="th_tags">Tags</th>
5835 </tr>
5836 </thead>
5837
5838 <tbody>
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005850 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005851 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005852 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005853 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005854 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005855
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005856 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005857
5858 <ul class="entry_type_enum">
5859 <li>
5860 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005861 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5862applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005863 </li>
5864 <li>
5865 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005866 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5867Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005868 </li>
5869 <li>
5870 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005871 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5872quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005873 </li>
5874 </ul>
5875
5876 </td> <!-- entry_type -->
5877
5878 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005879 <p>Set operational mode for hot pixel
5880correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005881 </td>
5882
5883 <td class="entry_units">
5884 </td>
5885
5886 <td class="entry_range">
5887 </td>
5888
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005889 <td class="entry_tags">
5890 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005891 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005892 </ul>
5893 </td>
5894
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005895 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005896
5897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005898 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5899 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005900
5901
5902
5903 <!-- end of kind -->
5904 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005905 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005906
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005907 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005908 <tr>
5909 <th class="th_name">Property Name</th>
5910 <th class="th_type">Type</th>
5911 <th class="th_description">Description</th>
5912 <th class="th_units">Units</th>
5913 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005914 <th class="th_tags">Tags</th>
5915 </tr>
5916 </thead>
5917
5918 <tbody>
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005932 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005933 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005934 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005935 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005936 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005937 <span class="entry_type_container">x</span>
5938
5939 <span class="entry_type_array">
5940 2 x n
5941 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005942 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005943 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005944
5945
5946 </td> <!-- entry_type -->
5947
5948 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005949 <p>Location of hot/<wbr/>defective pixels on
5950sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005951 </td>
5952
5953 <td class="entry_units">
5954 </td>
5955
5956 <td class="entry_range">
5957 </td>
5958
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005959 <td class="entry_tags">
5960 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005961 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005962 </ul>
5963 </td>
5964
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005965 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005966
5967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5969 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005970
5971
5972
5973
5974
5975
5976 <!-- end of kind -->
5977 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005978 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005979
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005980 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005981 <tr>
5982 <th class="th_name">Property Name</th>
5983 <th class="th_type">Type</th>
5984 <th class="th_description">Description</th>
5985 <th class="th_units">Units</th>
5986 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005987 <th class="th_tags">Tags</th>
5988 </tr>
5989 </thead>
5990
5991 <tbody>
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006003 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006004 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006005 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006006 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006007 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006008
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006009 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006010
6011 <ul class="entry_type_enum">
6012 <li>
6013 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006014 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6015applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006016 </li>
6017 <li>
6018 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006019 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6020Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006021 </li>
6022 <li>
6023 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006024 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6025quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006026 </li>
6027 </ul>
6028
6029 </td> <!-- entry_type -->
6030
6031 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006032 <p>Set operational mode for hot pixel
6033correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006034 </td>
6035
6036 <td class="entry_units">
6037 </td>
6038
6039 <td class="entry_range">
6040 </td>
6041
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006042 <td class="entry_tags">
6043 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006044 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006045 </ul>
6046 </td>
6047
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006048 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006049
6050
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006051 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6052 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006053
6054
6055
6056 <!-- end of kind -->
6057 </tbody>
6058
6059 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006060 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006061
6062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006063 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006064
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006065 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006066 <tr>
6067 <th class="th_name">Property Name</th>
6068 <th class="th_type">Type</th>
6069 <th class="th_description">Description</th>
6070 <th class="th_units">Units</th>
6071 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006072 <th class="th_tags">Tags</th>
6073 </tr>
6074 </thead>
6075
6076 <tbody>
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006088 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006089 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006090 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006091 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006092 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006093 <span class="entry_type_container">x</span>
6094
6095 <span class="entry_type_array">
6096 3
6097 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006098 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006099 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006100
6101
6102 </td> <!-- entry_type -->
6103
6104 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006105 <p>GPS coordinates to include in output JPEG
6106EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006107 </td>
6108
6109 <td class="entry_units">
6110 </td>
6111
6112 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006113 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006114 </td>
6115
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006116 <td class="entry_tags">
6117 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006118 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006119 </ul>
6120 </td>
6121
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006122 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006123
6124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006125 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6126 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006127
6128
6129 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006130 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006131 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006132 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006133 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006134 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006135
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006136 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006137
6138
6139 </td> <!-- entry_type -->
6140
6141 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006142 <p>32 characters describing GPS algorithm to
6143include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006144 </td>
6145
6146 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006147 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006148 </td>
6149
6150 <td class="entry_range">
6151 </td>
6152
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006153 <td class="entry_tags">
6154 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006155 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006156 </ul>
6157 </td>
6158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006159 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006160
6161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006162 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6163 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006164
6165
6166 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006167 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006168 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006169 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006170 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006171 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006172
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006173 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006174
6175
6176 </td> <!-- entry_type -->
6177
6178 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006179 <p>Time GPS fix was made to include in
6180EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006181 </td>
6182
6183 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006184 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006185 </td>
6186
6187 <td class="entry_range">
6188 </td>
6189
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006190 <td class="entry_tags">
6191 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006192 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006193 </ul>
6194 </td>
6195
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006196 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006197
6198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006199 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6200 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006201
6202
6203 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006204 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006205 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006206 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006207 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006208 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006209
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006210 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006211
6212
6213 </td> <!-- entry_type -->
6214
6215 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006216 <p>Orientation of JPEG image to
6217write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006218 </td>
6219
6220 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006221 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006222 </td>
6223
6224 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006225 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006226 </td>
6227
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006228 <td class="entry_tags">
6229 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006230 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006231 </ul>
6232 </td>
6233
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006234 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006235
6236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006237 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6238 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006239
6240
6241 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006242 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006243 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006244 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006245 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006246 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006247
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006248 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006249
6250
6251 </td> <!-- entry_type -->
6252
6253 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006254 <p>Compression quality of the final JPEG
6255image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006256 </td>
6257
6258 <td class="entry_units">
6259 </td>
6260
6261 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006262 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006263 </td>
6264
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006265 <td class="entry_tags">
6266 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006267 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006268 </ul>
6269 </td>
6270
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006271 </tr>
6272 <tr class="entries_header">
6273 <th class="th_details" colspan="5">Details</th>
6274 </tr>
6275 <tr class="entry_cont">
6276 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006277 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006278 </td>
6279 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006280
6281
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006282 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6283 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006284
6285
6286 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006287 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006288 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006289 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006290 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006291 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006292
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006293 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006294
6295
6296 </td> <!-- entry_type -->
6297
6298 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006299 <p>Compression quality of JPEG
6300thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006301 </td>
6302
6303 <td class="entry_units">
6304 </td>
6305
6306 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006307 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006308 </td>
6309
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006310 <td class="entry_tags">
6311 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006312 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006313 </ul>
6314 </td>
6315
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006316 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006317
6318
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006319 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6320 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006321
6322
6323 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006324 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006325 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006326 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006327 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006328 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006329 <span class="entry_type_container">x</span>
6330
6331 <span class="entry_type_array">
6332 2
6333 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006334 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006335
6336
6337 </td> <!-- entry_type -->
6338
6339 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006340 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006341 </td>
6342
6343 <td class="entry_units">
6344 </td>
6345
6346 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006347 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006348 </td>
6349
6350 <td class="entry_tags">
6351 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006352 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006353 </ul>
6354 </td>
6355
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006356 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006357 <tr class="entries_header">
6358 <th class="th_details" colspan="5">Details</th>
6359 </tr>
6360 <tr class="entry_cont">
6361 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006362 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6363but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006364<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6365the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006366 </td>
6367 </tr>
6368
6369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006370 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6371 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006372
6373
6374
6375 <!-- end of kind -->
6376 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006377 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006378
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006379 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006380 <tr>
6381 <th class="th_name">Property Name</th>
6382 <th class="th_type">Type</th>
6383 <th class="th_description">Description</th>
6384 <th class="th_units">Units</th>
6385 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006386 <th class="th_tags">Tags</th>
6387 </tr>
6388 </thead>
6389
6390 <tbody>
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006402 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006403 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006404 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006405 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006406 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006407 <span class="entry_type_container">x</span>
6408
6409 <span class="entry_type_array">
6410 2 x n
6411 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006412 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006413
6414
6415 </td> <!-- entry_type -->
6416
6417 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006418 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006419 </td>
6420
6421 <td class="entry_units">
6422 </td>
6423
6424 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006425 <p>Will include at least one valid resolution,<wbr/> plus
6426(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006427 </td>
6428
6429 <td class="entry_tags">
6430 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006431 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006432 </ul>
6433 </td>
6434
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006435 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006436 <tr class="entries_header">
6437 <th class="th_details" colspan="5">Details</th>
6438 </tr>
6439 <tr class="entry_cont">
6440 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006441 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006442<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006443<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6444If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6445<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006446aspect ratio of largest size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006447The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006448in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006449<li>Each size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a> will have at least
Igor Murashkin0b080452013-12-27 15:30:25 -08006450one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6451and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006452<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006453</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006454 </td>
6455 </tr>
6456
6457
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006458 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6459 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006460
6461
6462 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006463 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006464 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006465 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006466 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006467 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006468
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006469 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006470
6471
6472 </td> <!-- entry_type -->
6473
6474 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006475 <p>Maximum size in bytes for the compressed
6476JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006477 </td>
6478
6479 <td class="entry_units">
6480 </td>
6481
6482 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006483 <p>Must be large enough to fit any JPEG produced by
6484the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006485 </td>
6486
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006487 <td class="entry_tags">
6488 </td>
6489
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006490 </tr>
6491 <tr class="entries_header">
6492 <th class="th_details" colspan="5">Details</th>
6493 </tr>
6494 <tr class="entry_cont">
6495 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006496 <p>This is used for sizing the gralloc buffers for
6497JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006498 </td>
6499 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006500
6501
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006502 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6503 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006504
6505
6506
6507 <!-- end of kind -->
6508 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006509 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006510
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006511 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006512 <tr>
6513 <th class="th_name">Property Name</th>
6514 <th class="th_type">Type</th>
6515 <th class="th_description">Description</th>
6516 <th class="th_units">Units</th>
6517 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006518 <th class="th_tags">Tags</th>
6519 </tr>
6520 </thead>
6521
6522 <tbody>
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006534 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006535 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006536 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006537 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006538 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006539 <span class="entry_type_container">x</span>
6540
6541 <span class="entry_type_array">
6542 3
6543 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006544 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006545 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006546
6547
6548 </td> <!-- entry_type -->
6549
6550 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006551 <p>GPS coordinates to include in output JPEG
6552EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006553 </td>
6554
6555 <td class="entry_units">
6556 </td>
6557
6558 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006559 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006560 </td>
6561
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006562 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006563 <ul class="entry_tags">
6564 <li><a href="#tag_BC">BC</a></li>
6565 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006566 </td>
6567
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006568 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006569
6570
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006571 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6572 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006573
6574
6575 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006576 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006577 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006578 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006579 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006580 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006581
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006582 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006583
6584
6585 </td> <!-- entry_type -->
6586
6587 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006588 <p>32 characters describing GPS algorithm to
6589include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006590 </td>
6591
6592 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006593 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006594 </td>
6595
6596 <td class="entry_range">
6597 </td>
6598
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006599 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006600 <ul class="entry_tags">
6601 <li><a href="#tag_BC">BC</a></li>
6602 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006603 </td>
6604
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006605 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006606
6607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006608 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6609 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006610
6611
6612 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006613 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006614 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006615 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006616 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006617 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006618
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006619 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006620
6621
6622 </td> <!-- entry_type -->
6623
6624 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006625 <p>Time GPS fix was made to include in
6626EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006627 </td>
6628
6629 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006630 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006631 </td>
6632
6633 <td class="entry_range">
6634 </td>
6635
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006636 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006637 <ul class="entry_tags">
6638 <li><a href="#tag_BC">BC</a></li>
6639 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006640 </td>
6641
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006642 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006643
6644
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006645 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6646 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006647
6648
6649 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006650 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006651 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006652 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006653 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006654 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006655
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006656 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006657
6658
6659 </td> <!-- entry_type -->
6660
6661 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006662 <p>Orientation of JPEG image to
6663write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006664 </td>
6665
6666 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006667 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006668 </td>
6669
6670 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006671 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006672 </td>
6673
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006674 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006675 <ul class="entry_tags">
6676 <li><a href="#tag_BC">BC</a></li>
6677 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006678 </td>
6679
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006680 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006681
6682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006683 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6684 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006685
6686
6687 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006688 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006689 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006690 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006691 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006692 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006693
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006694 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006695
6696
6697 </td> <!-- entry_type -->
6698
6699 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006700 <p>Compression quality of the final JPEG
6701image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006702 </td>
6703
6704 <td class="entry_units">
6705 </td>
6706
6707 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006708 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006709 </td>
6710
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006711 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006712 <ul class="entry_tags">
6713 <li><a href="#tag_BC">BC</a></li>
6714 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006715 </td>
6716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006717 </tr>
6718 <tr class="entries_header">
6719 <th class="th_details" colspan="5">Details</th>
6720 </tr>
6721 <tr class="entry_cont">
6722 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006723 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006724 </td>
6725 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006726
6727
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006728 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6729 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006730
6731
6732 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006733 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006734 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006737 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006739 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006740
6741
6742 </td> <!-- entry_type -->
6743
6744 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006745 <p>The size of the compressed JPEG image,<wbr/> in
6746bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006747 </td>
6748
6749 <td class="entry_units">
6750 </td>
6751
6752 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006753 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006754 </td>
6755
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006756 <td class="entry_tags">
6757 </td>
6758
6759 </tr>
6760 <tr class="entries_header">
6761 <th class="th_details" colspan="5">Details</th>
6762 </tr>
6763 <tr class="entry_cont">
6764 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006765 <p>If no JPEG output is produced for the request,<wbr/>
6766this must be 0.<wbr/></p>
6767<p>Otherwise,<wbr/> this describes the real size of the compressed
6768JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006769if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6770has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
Igor Murashkin0b080452013-12-27 15:30:25 -08006771the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6772500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006773 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006774 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006775
6776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006777 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6778 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006779
6780
6781 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006782 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006783 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006784 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006785 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006786 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006787
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006788 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006789
6790
6791 </td> <!-- entry_type -->
6792
6793 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006794 <p>Compression quality of JPEG
6795thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006796 </td>
6797
6798 <td class="entry_units">
6799 </td>
6800
6801 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006802 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006803 </td>
6804
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006805 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006806 <ul class="entry_tags">
6807 <li><a href="#tag_BC">BC</a></li>
6808 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006809 </td>
6810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006811 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006812
6813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6815 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006816
6817
6818 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006819 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006820 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006821 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006822 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006823 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006824 <span class="entry_type_container">x</span>
6825
6826 <span class="entry_type_array">
6827 2
6828 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006829 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006830
6831
6832 </td> <!-- entry_type -->
6833
6834 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006835 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006836 </td>
6837
6838 <td class="entry_units">
6839 </td>
6840
6841 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006842 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006843 </td>
6844
6845 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006846 <ul class="entry_tags">
6847 <li><a href="#tag_BC">BC</a></li>
6848 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006849 </td>
6850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006851 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006852 <tr class="entries_header">
6853 <th class="th_details" colspan="5">Details</th>
6854 </tr>
6855 <tr class="entry_cont">
6856 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006857 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6858but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006859<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6860the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006861 </td>
6862 </tr>
6863
6864
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006865 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6866 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006867
6868
6869
6870 <!-- end of kind -->
6871 </tbody>
6872
6873 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006874 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006875
6876
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006877 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006878
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006879 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006880 <tr>
6881 <th class="th_name">Property Name</th>
6882 <th class="th_type">Type</th>
6883 <th class="th_description">Description</th>
6884 <th class="th_units">Units</th>
6885 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006886 <th class="th_tags">Tags</th>
6887 </tr>
6888 </thead>
6889
6890 <tbody>
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006902 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006903 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006904 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006905 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006906 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006907
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006908 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006909
6910
6911 </td> <!-- entry_type -->
6912
6913 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006914 <p>The ratio of lens focal length to the effective
6915aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006916 </td>
6917
6918 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006919 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006920 </td>
6921
6922 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006923 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006924 </td>
6925
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006926 <td class="entry_tags">
6927 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006928 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006929 </ul>
6930 </td>
6931
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006932 </tr>
6933 <tr class="entries_header">
6934 <th class="th_details" colspan="5">Details</th>
6935 </tr>
6936 <tr class="entry_cont">
6937 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006938 <p>This will only be supported on the camera devices that
6939have variable aperture lens.<wbr/> The aperture value can only be
6940one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6941<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6942this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6943<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6944to achieve manual exposure control.<wbr/></p>
6945<p>The requested aperture value may take several frames to reach the
6946requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08006947aperture size in capture result metadata while the aperture is changing.<wbr/>
6948While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Zhijun He1b58d382014-01-10 10:22:53 -08006949<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6950the ON modes,<wbr/> this will be overridden by the camera device
6951auto-exposure algorithm,<wbr/> the overridden values are then provided
6952back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006953 </td>
6954 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006955
6956
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006957 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6958 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006959
6960
6961 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006962 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006963 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006964 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006965 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006966 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006967
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006968 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006969
6970
6971 </td> <!-- entry_type -->
6972
6973 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006974 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006975 </td>
6976
6977 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006978 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006979 </td>
6980
6981 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006982 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006983 </td>
6984
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006985 <td class="entry_tags">
6986 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006987 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006988 </ul>
6989 </td>
6990
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006991 </tr>
6992 <tr class="entries_header">
6993 <th class="th_details" colspan="5">Details</th>
6994 </tr>
6995 <tr class="entry_cont">
6996 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006997 <p>This will not be supported on most camera devices.<wbr/> On devices
6998where this is supported,<wbr/> this may only be set to one of the
6999values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7000<p>Lens filters are typically used to lower the amount of light the
7001sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7002step is the standard logarithmic representation,<wbr/> which are
7003non-negative,<wbr/> and inversely proportional to the amount of light
7004hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7005in no reduction of the incoming light,<wbr/> and setting this to 2 would
7006mean that the filter is set to reduce incoming light by two stops
7007(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007008<p>It may take several frames before the lens filter density changes
7009to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7010<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007011 </td>
7012 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007013
7014
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007015 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7016 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007017
7018
7019 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007020 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007021 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007022 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007023 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007024 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007025
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007026 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007027
7028
7029 </td> <!-- entry_type -->
7030
7031 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007032 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007033 </td>
7034
7035 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007036 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007037 </td>
7038
7039 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007040 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007041 </td>
7042
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007043 <td class="entry_tags">
7044 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007045 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007046 </ul>
7047 </td>
7048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007049 </tr>
7050 <tr class="entries_header">
7051 <th class="th_details" colspan="5">Details</th>
7052 </tr>
7053 <tr class="entry_cont">
7054 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007055 <p>This setting controls the physical focal length of the camera
7056device's lens.<wbr/> Changing the focal length changes the field of
7057view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7058<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
7059setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007060frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007061While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7062be set to MOVING.<wbr/></p>
7063<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007064 </td>
7065 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007066
7067
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007068 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7069 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007070
7071
7072 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007073 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007074 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007075 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007076 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007077 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007078
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007079 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007080
7081
7082 </td> <!-- entry_type -->
7083
7084 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007085 <p>Distance to plane of sharpest focus,<wbr/>
7086measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007087 </td>
7088
7089 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007090 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007091 </td>
7092
7093 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007094 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007095 </td>
7096
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007097 <td class="entry_tags">
7098 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007099 <li><a href="#tag_BC">BC</a></li>
7100 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007101 </ul>
7102 </td>
7103
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007104 </tr>
7105 <tr class="entries_header">
7106 <th class="th_details" colspan="5">Details</th>
7107 </tr>
7108 <tr class="entry_cont">
7109 <td class="entry_details" colspan="5">
Zhijun He5169ce12014-01-24 16:48:25 -08007110 <p>0 means infinity focus.<wbr/> Used value will be clamped
7111to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7112<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7113instantaneously,<wbr/> and it may take several frames before the lens
7114can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7115<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007116 </td>
7117 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007118
7119
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007120 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7121 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007122
7123
7124 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007125 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007126 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007127 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007128 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007129 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007130
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007131 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007132
7133 <ul class="entry_type_enum">
7134 <li>
7135 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007136 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007137 </li>
7138 <li>
7139 <span class="entry_type_enum_name">ON</span>
7140 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007141 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007142 </li>
7143 </ul>
7144
7145 </td> <!-- entry_type -->
7146
7147 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007148 <p>Sets whether the camera device uses optical image stabilization (OIS)
7149when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007150 </td>
7151
7152 <td class="entry_units">
7153 </td>
7154
7155 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007156 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007157 </td>
7158
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007159 <td class="entry_tags">
7160 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007161 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007162 </ul>
7163 </td>
7164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007165 </tr>
7166 <tr class="entries_header">
7167 <th class="th_details" colspan="5">Details</th>
7168 </tr>
7169 <tr class="entry_cont">
7170 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007171 <p>OIS is used to compensate for motion blur due to small movements of
7172the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7173use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7174allows for longer exposure times before camera shake becomes
7175apparent.<wbr/></p>
7176<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007177 </td>
7178 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007179
7180
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007181 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7182 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007183
7184
7185
7186 <!-- end of kind -->
7187 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007188 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007189
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007190 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007191 <tr>
7192 <th class="th_name">Property Name</th>
7193 <th class="th_type">Type</th>
7194 <th class="th_description">Description</th>
7195 <th class="th_units">Units</th>
7196 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007197 <th class="th_tags">Tags</th>
7198 </tr>
7199 </thead>
7200
7201 <tbody>
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007215 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007216 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007217 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007218 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007219 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007220 <span class="entry_type_container">x</span>
7221
7222 <span class="entry_type_array">
7223 n
7224 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007225 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007226
7227
7228 </td> <!-- entry_type -->
7229
7230 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007231 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007232values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007233 </td>
7234
7235 <td class="entry_units">
7236 </td>
7237
7238 <td class="entry_range">
Zhijun He5169ce12014-01-24 16:48:25 -08007239 <p>one entry required,<wbr/> &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007240 </td>
7241
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007242 <td class="entry_tags">
7243 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007244 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007245 </ul>
7246 </td>
7247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007248 </tr>
7249 <tr class="entries_header">
7250 <th class="th_details" colspan="5">Details</th>
7251 </tr>
7252 <tr class="entry_cont">
7253 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007254 <p>If the camera device doesn't support variable apertures,<wbr/>
7255listed value will be the fixed aperture.<wbr/></p>
7256<p>If the camera device supports variable apertures,<wbr/> the aperture value
7257in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007258 </td>
7259 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007260
7261
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007262 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7263 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007264
7265
7266 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007267 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007268 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007269 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007270 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007271 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007272 <span class="entry_type_container">x</span>
7273
7274 <span class="entry_type_array">
7275 n
7276 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007277 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007278
7279
7280 </td> <!-- entry_type -->
7281
7282 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007283 <p>List of supported neutral density filter values for
7284<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007285 </td>
7286
7287 <td class="entry_units">
7288 </td>
7289
7290 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007291 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007292 </td>
7293
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007294 <td class="entry_tags">
7295 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007296 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007297 </ul>
7298 </td>
7299
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007300 </tr>
7301 <tr class="entries_header">
7302 <th class="th_details" colspan="5">Details</th>
7303 </tr>
7304 <tr class="entry_cont">
7305 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007306 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7307availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7308list contains only the exact filter density values available on
7309this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007310 </td>
7311 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007312
7313
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007314 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7315 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007316
7317
7318 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007319 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007320 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007321 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007322 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007323 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007324 <span class="entry_type_container">x</span>
7325
7326 <span class="entry_type_array">
7327 n
7328 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007329 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007330 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007331
7332
7333 </td> <!-- entry_type -->
7334
7335 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007336 <p>The available focal lengths for this device for use with
7337<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007338 </td>
7339
7340 <td class="entry_units">
7341 </td>
7342
7343 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007344 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7345contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007346 </td>
7347
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007348 <td class="entry_tags">
7349 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007350 <li><a href="#tag_BC">BC</a></li>
7351 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007352 </ul>
7353 </td>
7354
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007355 </tr>
7356 <tr class="entries_header">
7357 <th class="th_details" colspan="5">Details</th>
7358 </tr>
7359 <tr class="entry_cont">
7360 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007361 <p>If optical zoom is not supported,<wbr/> this will only report
7362a single value corresponding to the static focal length of the
7363device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7364by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007365 </td>
7366 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007367
7368
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007369 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7370 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007371
7372
7373 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007374 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007375 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007376 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007377 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007378 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007379 <span class="entry_type_container">x</span>
7380
7381 <span class="entry_type_array">
7382 n
7383 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007384 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007385 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007386
7387
7388 </td> <!-- entry_type -->
7389
7390 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007391 <p>List containing a subset of the optical image
7392stabilization (OIS) modes specified in
7393<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007394 </td>
7395
7396 <td class="entry_units">
7397 </td>
7398
7399 <td class="entry_range">
7400 </td>
7401
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007402 <td class="entry_tags">
7403 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007404 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007405 </ul>
7406 </td>
7407
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007408 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007409 <tr class="entries_header">
7410 <th class="th_details" colspan="5">Details</th>
7411 </tr>
7412 <tr class="entry_cont">
7413 <td class="entry_details" colspan="5">
7414 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7415contain only OFF.<wbr/></p>
7416 </td>
7417 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007418
7419
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007420 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7421 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007422
7423
7424 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007425 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007426 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007427 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007428 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007429 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007430 <span class="entry_type_container">x</span>
7431
7432 <span class="entry_type_array">
7433 2 x 3 x n x m
7434 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007435 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007436 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007437
7438
7439 </td> <!-- entry_type -->
7440
7441 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007442 <p>A low-resolution map for correction of
7443geometric distortions and chromatic aberrations,<wbr/> per
7444color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007445 </td>
7446
7447 <td class="entry_units">
7448 </td>
7449
7450 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007451 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007452 </td>
7453
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007454 <td class="entry_tags">
7455 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007456 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007457 </ul>
7458 </td>
7459
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007460 </tr>
7461 <tr class="entries_header">
7462 <th class="th_details" colspan="5">Details</th>
7463 </tr>
7464 <tr class="entry_cont">
7465 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007466 <p>[DNG wants a function instead].<wbr/> What's easiest
7467for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7468j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7469j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7470entry being ( (X,<wbr/> Y)_<wbr/>r,<wbr/> (X,<wbr/> Y)_<wbr/>g,<wbr/> (X,<wbr/> Y)_<wbr/>b ) )</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007471 </td>
7472 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007473
7474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007475 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7476 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007477
7478
7479 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007480 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007481 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007482 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007483 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007484 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007485 <span class="entry_type_container">x</span>
7486
7487 <span class="entry_type_array">
7488 2
7489 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007490 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007491 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007492
7493
7494 </td> <!-- entry_type -->
7495
7496 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007497 <p>Dimensions of geometric correction
7498map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007499 </td>
7500
7501 <td class="entry_units">
7502 </td>
7503
7504 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007505 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007506 </td>
7507
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007508 <td class="entry_tags">
7509 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007510 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007511 </ul>
7512 </td>
7513
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007514 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007515
7516
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007517 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7518 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007519
7520
7521 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007522 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007523 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007524 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007525 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007526 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007527
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007528 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007529
7530
7531 </td> <!-- entry_type -->
7532
7533 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007534 <p>Hyperfocal distance for this lens; set to
75350 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007536 </td>
7537
7538 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007539 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007540 </td>
7541
7542 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007543 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007544 </td>
7545
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007546 <td class="entry_tags">
7547 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007548 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007549 </ul>
7550 </td>
7551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007552 </tr>
7553 <tr class="entries_header">
7554 <th class="th_details" colspan="5">Details</th>
7555 </tr>
7556 <tr class="entry_cont">
7557 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007558 <p>The hyperfocal distance is used for the old
7559API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007560 </td>
7561 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007562
7563
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007564 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7565 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007566
7567
7568 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007569 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007570 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007571 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007572 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007573 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007574
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007575 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007576
7577
7578 </td> <!-- entry_type -->
7579
7580 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007581 <p>Shortest distance from frontmost surface
7582of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007583 </td>
7584
7585 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007586 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007587 </td>
7588
7589 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007590 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007591 </td>
7592
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007593 <td class="entry_tags">
7594 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007595 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007596 </ul>
7597 </td>
7598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007599 </tr>
7600 <tr class="entries_header">
7601 <th class="th_details" colspan="5">Details</th>
7602 </tr>
7603 <tr class="entry_cont">
7604 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007605 <p>If the lens is fixed-focus,<wbr/> this should be
76060</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007607 </td>
7608 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007609
7610
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007611 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7612 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007613
7614
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007615 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007616 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007617 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007618 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007619 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007620 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007621 <span class="entry_type_container">x</span>
7622
7623 <span class="entry_type_array">
7624 2
7625 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007626 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007627 <div class="entry_type_notes">width and height of lens shading map provided by the HAL.<wbr/> (N x M)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007628
7629
7630 </td> <!-- entry_type -->
7631
7632 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007633 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007634 </td>
7635
7636 <td class="entry_units">
7637 </td>
7638
7639 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007640 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007641 </td>
7642
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007643 <td class="entry_tags">
7644 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007645 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007646 </ul>
7647 </td>
7648
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007649 </tr>
7650 <tr class="entries_header">
7651 <th class="th_details" colspan="5">Details</th>
7652 </tr>
7653 <tr class="entry_cont">
7654 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007655 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7656must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007657 </td>
7658 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007659
7660
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007661 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7662 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007663
7664
7665
7666
7667
7668 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007669 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007670 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007671 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007672 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007673 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007674
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007675 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007676
7677 <ul class="entry_type_enum">
7678 <li>
7679 <span class="entry_type_enum_name">FRONT</span>
7680 </li>
7681 <li>
7682 <span class="entry_type_enum_name">BACK</span>
7683 </li>
7684 </ul>
7685
7686 </td> <!-- entry_type -->
7687
7688 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007689 <p>Direction the camera faces relative to
7690device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007691 </td>
7692
7693 <td class="entry_units">
7694 </td>
7695
7696 <td class="entry_range">
7697 </td>
7698
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007699 <td class="entry_tags">
7700 </td>
7701
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007702 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007703
7704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007705 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7706 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007707
7708
7709 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007710 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007711 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007712 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007713 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007714 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007715 <span class="entry_type_container">x</span>
7716
7717 <span class="entry_type_array">
7718 2
7719 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007720 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007721 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007722
7723
7724 </td> <!-- entry_type -->
7725
7726 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007727 <p>Relative angle of camera optical axis to the
7728perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007729 </td>
7730
7731 <td class="entry_units">
7732 </td>
7733
7734 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007735 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007736 </td>
7737
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007738 <td class="entry_tags">
7739 <ul class="entry_tags">
7740 <li><a href="#tag_ADV">ADV</a></li>
7741 </ul>
7742 </td>
7743
7744 </tr>
7745 <tr class="entries_header">
7746 <th class="th_details" colspan="5">Details</th>
7747 </tr>
7748 <tr class="entry_cont">
7749 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007750 <p>Examples:</p>
7751<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007752is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007753<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007754device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007755<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7756the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007757<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007758direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007759 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007760 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007761
7762
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007763 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7764 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007765
7766
7767 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007768 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007769 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007770 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007771 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007772 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007773 <span class="entry_type_container">x</span>
7774
7775 <span class="entry_type_array">
7776 3, location in mm, in the sensor coordinate
7777 system
7778 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007779 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007780
7781
7782 </td> <!-- entry_type -->
7783
7784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007785 <p>Coordinates of camera optical axis on
7786device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007787 </td>
7788
7789 <td class="entry_units">
7790 </td>
7791
7792 <td class="entry_range">
7793 </td>
7794
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007795 <td class="entry_tags">
7796 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007797 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007798 </ul>
7799 </td>
7800
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007801 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007802
7803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007804 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7805 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007806
7807
7808
7809 <!-- end of kind -->
7810 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007811 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007812
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007813 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007814 <tr>
7815 <th class="th_name">Property Name</th>
7816 <th class="th_type">Type</th>
7817 <th class="th_description">Description</th>
7818 <th class="th_units">Units</th>
7819 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007820 <th class="th_tags">Tags</th>
7821 </tr>
7822 </thead>
7823
7824 <tbody>
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007836 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007837 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007838 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007839 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007840 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007841
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007842 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007843
7844
7845 </td> <!-- entry_type -->
7846
7847 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007848 <p>The ratio of lens focal length to the effective
7849aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007850 </td>
7851
7852 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007853 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007854 </td>
7855
7856 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007857 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007858 </td>
7859
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007860 <td class="entry_tags">
7861 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007862 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007863 </ul>
7864 </td>
7865
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007866 </tr>
7867 <tr class="entries_header">
7868 <th class="th_details" colspan="5">Details</th>
7869 </tr>
7870 <tr class="entry_cont">
7871 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007872 <p>This will only be supported on the camera devices that
7873have variable aperture lens.<wbr/> The aperture value can only be
7874one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7875<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7876this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7877<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7878to achieve manual exposure control.<wbr/></p>
7879<p>The requested aperture value may take several frames to reach the
7880requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08007881aperture size in capture result metadata while the aperture is changing.<wbr/>
7882While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Zhijun He1b58d382014-01-10 10:22:53 -08007883<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7884the ON modes,<wbr/> this will be overridden by the camera device
7885auto-exposure algorithm,<wbr/> the overridden values are then provided
7886back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007887 </td>
7888 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007889
7890
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007891 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7892 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007893
7894
7895 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007896 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007897 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007898 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007899 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007900 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007901
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007902 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007903
7904
7905 </td> <!-- entry_type -->
7906
7907 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007908 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007909 </td>
7910
7911 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007912 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007913 </td>
7914
7915 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007916 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007917 </td>
7918
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007919 <td class="entry_tags">
7920 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007921 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007922 </ul>
7923 </td>
7924
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007925 </tr>
7926 <tr class="entries_header">
7927 <th class="th_details" colspan="5">Details</th>
7928 </tr>
7929 <tr class="entry_cont">
7930 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007931 <p>This will not be supported on most camera devices.<wbr/> On devices
7932where this is supported,<wbr/> this may only be set to one of the
7933values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7934<p>Lens filters are typically used to lower the amount of light the
7935sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7936step is the standard logarithmic representation,<wbr/> which are
7937non-negative,<wbr/> and inversely proportional to the amount of light
7938hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7939in no reduction of the incoming light,<wbr/> and setting this to 2 would
7940mean that the filter is set to reduce incoming light by two stops
7941(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007942<p>It may take several frames before the lens filter density changes
7943to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7944<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007945 </td>
7946 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007947
7948
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007949 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7950 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007951
7952
7953 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007954 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007955 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007956 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007957 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007958 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007959
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007960 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007961
7962
7963 </td> <!-- entry_type -->
7964
7965 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007966 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007967 </td>
7968
7969 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007970 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007971 </td>
7972
7973 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007974 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007975 </td>
7976
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007977 <td class="entry_tags">
7978 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007979 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007980 </ul>
7981 </td>
7982
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007983 </tr>
7984 <tr class="entries_header">
7985 <th class="th_details" colspan="5">Details</th>
7986 </tr>
7987 <tr class="entry_cont">
7988 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007989 <p>This setting controls the physical focal length of the camera
7990device's lens.<wbr/> Changing the focal length changes the field of
7991view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7992<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
7993setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007994frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007995While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7996be set to MOVING.<wbr/></p>
7997<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007998 </td>
7999 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008000
8001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008002 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8003 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008004
8005
8006 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008007 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008008 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008009 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008010 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008011 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008012
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008013 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008014
8015
8016 </td> <!-- entry_type -->
8017
8018 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008019 <p>Distance to plane of sharpest focus,<wbr/>
8020measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008021 </td>
8022
8023 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008024 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008025 </td>
8026
8027 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008028 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008029 </td>
8030
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008031 <td class="entry_tags">
8032 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008033 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008034 </ul>
8035 </td>
8036
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008037 </tr>
8038 <tr class="entries_header">
8039 <th class="th_details" colspan="5">Details</th>
8040 </tr>
8041 <tr class="entry_cont">
8042 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008043 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008044 </td>
8045 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008046
8047
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008048 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8049 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008050
8051
8052 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008053 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008054 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008055 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008056 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008057 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008058 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008059
Zhijun He50451ad2013-09-26 10:27:47 -07008060 <span class="entry_type_array">
8061 2
8062 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008063 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008064 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008065
8066
8067 </td> <!-- entry_type -->
8068
8069 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008070 <p>The range of scene distances that are in
8071sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008072 </td>
8073
8074 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008075 pair of focus distances in diopters: (near,<wbr/>
8076 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008077 </td>
8078
8079 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008080 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008081 </td>
8082
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008083 <td class="entry_tags">
8084 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008085 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008086 </ul>
8087 </td>
8088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008089 </tr>
8090 <tr class="entries_header">
8091 <th class="th_details" colspan="5">Details</th>
8092 </tr>
8093 <tr class="entry_cont">
8094 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008095 <p>If variable focus not supported,<wbr/> can still report
8096fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008097 </td>
8098 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008099
8100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008101 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8102 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008103
8104
8105 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008106 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008107 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008108 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008109 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008110 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008111
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008112 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008113
8114 <ul class="entry_type_enum">
8115 <li>
8116 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008117 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008118 </li>
8119 <li>
8120 <span class="entry_type_enum_name">ON</span>
8121 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008122 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008123 </li>
8124 </ul>
8125
8126 </td> <!-- entry_type -->
8127
8128 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008129 <p>Sets whether the camera device uses optical image stabilization (OIS)
8130when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008131 </td>
8132
8133 <td class="entry_units">
8134 </td>
8135
8136 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008137 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008138 </td>
8139
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008140 <td class="entry_tags">
8141 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008142 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008143 </ul>
8144 </td>
8145
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008146 </tr>
8147 <tr class="entries_header">
8148 <th class="th_details" colspan="5">Details</th>
8149 </tr>
8150 <tr class="entry_cont">
8151 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008152 <p>OIS is used to compensate for motion blur due to small movements of
8153the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8154use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8155allows for longer exposure times before camera shake becomes
8156apparent.<wbr/></p>
8157<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008158 </td>
8159 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008160
8161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008162 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8163 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008164
8165
8166 <tr class="entry" id="dynamic_android.lens.state">
Zhijun He5169ce12014-01-24 16:48:25 -08008167 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008168 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008169 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008170 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008171 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008172
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008173 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008174
8175 <ul class="entry_type_enum">
8176 <li>
8177 <span class="entry_type_enum_name">STATIONARY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008178 <span class="entry_type_enum_notes"><p>The lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8179android.<wbr/>lens.<wbr/>filter<wbr/>Density and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008180 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008181 <li>
8182 <span class="entry_type_enum_name">MOVING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008183 <span class="entry_type_enum_notes"><p>Any of the lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8184android.<wbr/>lens.<wbr/>filter<wbr/>Density or <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) is changing.<wbr/></p></span>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008185 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008186 </ul>
8187
8188 </td> <!-- entry_type -->
8189
8190 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08008191 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008192 </td>
8193
8194 <td class="entry_units">
8195 </td>
8196
8197 <td class="entry_range">
8198 </td>
8199
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008200 <td class="entry_tags">
8201 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008202 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008203 </ul>
8204 </td>
8205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008206 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08008207 <tr class="entries_header">
8208 <th class="th_details" colspan="5">Details</th>
8209 </tr>
8210 <tr class="entry_cont">
8211 <td class="entry_details" colspan="5">
8212 <p>For lens parameters <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
8213<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> when changes are requested,<wbr/>
8214they may take several frames to reach the requested values.<wbr/> This state indicates
8215the current status of the lens parameters.<wbr/></p>
8216<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8217either because the parameters are all fixed,<wbr/> or because the lens has had enough
8218time to reach the most recently-requested values.<wbr/>
8219If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8220<ul>
8221<li>Fixed focus (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> == 0</code>),<wbr/> which means
8222<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8223<li>Fixed focal length (<a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a> contains single value),<wbr/>
8224which means the optical zoom is not supported.<wbr/></li>
8225<li>No ND filter (<a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a> contains only 0).<wbr/></li>
8226<li>Fixed aperture (<a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a> contains single value).<wbr/></li>
8227</ul>
8228<p>Then this state will always be STATIONARY.<wbr/></p>
8229<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8230is changing.<wbr/></p>
8231 </td>
8232 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008233
8234
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008235 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8236 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008237
8238
8239
8240 <!-- end of kind -->
8241 </tbody>
8242
8243 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008244 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008245
8246
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008247 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008248
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008249 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008250 <tr>
8251 <th class="th_name">Property Name</th>
8252 <th class="th_type">Type</th>
8253 <th class="th_description">Description</th>
8254 <th class="th_units">Units</th>
8255 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008256 <th class="th_tags">Tags</th>
8257 </tr>
8258 </thead>
8259
8260 <tbody>
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008272 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008273 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008274 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008275 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008276 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008277
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008278 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008279
8280 <ul class="entry_type_enum">
8281 <li>
8282 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008283 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008284 </li>
8285 <li>
8286 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008287 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8288output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008289 </li>
8290 <li>
8291 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008292 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8293quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008294 </li>
8295 </ul>
8296
8297 </td> <!-- entry_type -->
8298
8299 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008300 <p>Mode of operation for the noise reduction
8301algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008302 </td>
8303
8304 <td class="entry_units">
8305 </td>
8306
8307 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008308 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008309 </td>
8310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008311 <td class="entry_tags">
8312 <ul class="entry_tags">
8313 <li><a href="#tag_V1">V1</a></li>
8314 </ul>
8315 </td>
8316
8317 </tr>
8318 <tr class="entries_header">
8319 <th class="th_details" colspan="5">Details</th>
8320 </tr>
8321 <tr class="entry_cont">
8322 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008323 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8324will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008325<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8326will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8327will use the highest-quality noise filtering algorithms,<wbr/>
8328even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008329slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008330 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008331 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008332
8333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008334 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8335 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008336
8337
8338 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008339 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008340 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008341 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008342 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008343 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008344
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008345 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008346
8347
8348 </td> <!-- entry_type -->
8349
8350 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008351 <p>Control the amount of noise reduction
8352applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008353 </td>
8354
8355 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008356 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008357 </td>
8358
8359 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008360 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008361 </td>
8362
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008363 <td class="entry_tags">
8364 </td>
8365
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008366 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008367
8368
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008369 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8370 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008371
8372
8373
8374 <!-- end of kind -->
8375 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008376 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008377
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008378 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008379 <tr>
8380 <th class="th_name">Property Name</th>
8381 <th class="th_type">Type</th>
8382 <th class="th_description">Description</th>
8383 <th class="th_units">Units</th>
8384 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008385 <th class="th_tags">Tags</th>
8386 </tr>
8387 </thead>
8388
8389 <tbody>
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008401 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008402 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008403 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008404 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008405 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008406
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008407 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008408
8409 <ul class="entry_type_enum">
8410 <li>
8411 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008412 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008413 </li>
8414 <li>
8415 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008416 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8417output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008418 </li>
8419 <li>
8420 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008421 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8422quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008423 </li>
8424 </ul>
8425
8426 </td> <!-- entry_type -->
8427
8428 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008429 <p>Mode of operation for the noise reduction
8430algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008431 </td>
8432
8433 <td class="entry_units">
8434 </td>
8435
8436 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008437 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008438 </td>
8439
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008440 <td class="entry_tags">
8441 <ul class="entry_tags">
8442 <li><a href="#tag_V1">V1</a></li>
8443 </ul>
8444 </td>
8445
8446 </tr>
8447 <tr class="entries_header">
8448 <th class="th_details" colspan="5">Details</th>
8449 </tr>
8450 <tr class="entry_cont">
8451 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008452 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8453will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008454<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8455will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8456will use the highest-quality noise filtering algorithms,<wbr/>
8457even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008458slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008459 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008460 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008461
8462
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008463 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8464 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008465
8466
8467
8468 <!-- end of kind -->
8469 </tbody>
8470
8471 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008472 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008473
8474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008475 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008476
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008477 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008478 <tr>
8479 <th class="th_name">Property Name</th>
8480 <th class="th_type">Type</th>
8481 <th class="th_description">Description</th>
8482 <th class="th_units">Units</th>
8483 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008484 <th class="th_tags">Tags</th>
8485 </tr>
8486 </thead>
8487
8488 <tbody>
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008500 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008501 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008502 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008503 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008504 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008505
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008506 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008507
8508
8509 </td> <!-- entry_type -->
8510
8511 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008512 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008513scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008514region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8515and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008516 </td>
8517
8518 <td class="entry_units">
8519 </td>
8520
8521 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008522 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008523 </td>
8524
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008525 <td class="entry_tags">
8526 </td>
8527
8528 </tr>
8529 <tr class="entries_header">
8530 <th class="th_details" colspan="5">Details</th>
8531 </tr>
8532 <tr class="entry_cont">
8533 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008534 <p>Normalized coordinates refer to those in the
8535(-1000,<wbr/>1000) range mentioned in the
8536android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008537<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008538sensor array-relative coordinates for all region data.<wbr/> Does
8539not need to be listed in static metadata.<wbr/> Support will be
8540removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008541 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008542 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008543
8544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008545 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8546 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008547
8548
8549 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008550 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008551 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008552 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008553 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008554 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008555
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008556 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008557
8558
8559 </td> <!-- entry_type -->
8560
8561 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008562 <p>If set to 1,<wbr/> then the camera service always
8563switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8564trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008565 </td>
8566
8567 <td class="entry_units">
8568 </td>
8569
8570 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008571 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008572 </td>
8573
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008574 <td class="entry_tags">
8575 </td>
8576
8577 </tr>
8578 <tr class="entries_header">
8579 <th class="th_details" colspan="5">Details</th>
8580 </tr>
8581 <tr class="entry_cont">
8582 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008583 <p>HAL implementations should implement AF trigger
8584modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8585CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8586not need to be listed in static metadata.<wbr/> Support will be
8587removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008588 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008589 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008590
8591
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008592 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8593 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008594
8595
8596 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008597 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008598 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008599 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008600 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008601 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008602
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008603 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008604
8605
8606 </td> <!-- entry_type -->
8607
8608 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008609 <p>If set to 1,<wbr/> the camera service uses
8610CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8611HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8612shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008613 </td>
8614
8615 <td class="entry_units">
8616 </td>
8617
8618 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008619 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008620 </td>
8621
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008622 <td class="entry_tags">
8623 </td>
8624
8625 </tr>
8626 <tr class="entries_header">
8627 <th class="th_details" colspan="5">Details</th>
8628 </tr>
8629 <tr class="entry_cont">
8630 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008631 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008632to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008633zero-shutter-lag,<wbr/> instead of relying on an explicit
8634format setting.<wbr/> Does not need to be listed in static
8635metadata.<wbr/> Support will be removed in future versions of
8636camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008637 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008638 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008639
8640
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008641 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8642 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008643
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008644
8645 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008646 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008647 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008648 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008649 <td class="entry_type">
8650 <span class="entry_type_name">byte</span>
8651
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008652 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008653
8654
8655 </td> <!-- entry_type -->
8656
8657 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008658 <p>If set to 1,<wbr/> the HAL will always split result
8659metadata for a single capture into multiple buffers,<wbr/>
8660returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008661 </td>
8662
8663 <td class="entry_units">
8664 </td>
8665
8666 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008667 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008668 </td>
8669
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008670 <td class="entry_tags">
8671 </td>
8672
8673 </tr>
8674 <tr class="entries_header">
8675 <th class="th_details" colspan="5">Details</th>
8676 </tr>
8677 <tr class="entry_cont">
8678 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008679 <p>Does not need to be listed in static
8680metadata.<wbr/> Support for partial results will be reworked in
8681future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008682working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008683consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008684 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008685 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008686
Igor Murashkin7761a222014-01-27 16:06:38 -08008687 <tr class="entries_header">
8688 <th class="th_details" colspan="5">HAL Implementation Details</th>
8689 </tr>
8690 <tr class="entry_cont">
8691 <td class="entry_details" colspan="5">
8692 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8693for information on how to implement partial results.<wbr/></p>
8694 </td>
8695 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008696
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008697 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8698 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008699
8700
8701
8702 <!-- end of kind -->
8703 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008704 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008705
8706 <thead class="entries_header">
8707 <tr>
8708 <th class="th_name">Property Name</th>
8709 <th class="th_type">Type</th>
8710 <th class="th_description">Description</th>
8711 <th class="th_units">Units</th>
8712 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008713 <th class="th_tags">Tags</th>
8714 </tr>
8715 </thead>
8716
8717 <tbody>
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008729 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008730 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008731 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008732 <td class="entry_type">
8733 <span class="entry_type_name entry_type_name_enum">byte</span>
8734
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008735 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008736
8737 <ul class="entry_type_enum">
8738 <li>
8739 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008740 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8741for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008742 </li>
8743 <li>
8744 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008745 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8746capture.<wbr/> More result buffers for this capture will be sent
8747by the HAL,<wbr/> the last of which will be marked
8748FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008749 </li>
8750 </ul>
8751
8752 </td> <!-- entry_type -->
8753
8754 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008755 <p>Whether a result given to the framework is the
8756final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008757subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008758values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008759 </td>
8760
8761 <td class="entry_units">
8762 </td>
8763
8764 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008765 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008766 </td>
8767
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008768 <td class="entry_tags">
8769 </td>
8770
8771 </tr>
8772 <tr class="entries_header">
8773 <th class="th_details" colspan="5">Details</th>
8774 </tr>
8775 <tr class="entry_cont">
8776 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008777 <p>The entries in the result metadata buffers for a
8778single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008779FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008780requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8781always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8782before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8783in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8784capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8785only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008786 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008787 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008788
Igor Murashkin7761a222014-01-27 16:06:38 -08008789 <tr class="entries_header">
8790 <th class="th_details" colspan="5">HAL Implementation Details</th>
8791 </tr>
8792 <tr class="entry_cont">
8793 <td class="entry_details" colspan="5">
8794 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8795for information on how to implement partial results.<wbr/></p>
8796 </td>
8797 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008798
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008799 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8800 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008801
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008802
8803
8804 <!-- end of kind -->
8805 </tbody>
8806
8807 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008808 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008809
8810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008811 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008812
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008813 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008814 <tr>
8815 <th class="th_name">Property Name</th>
8816 <th class="th_type">Type</th>
8817 <th class="th_description">Description</th>
8818 <th class="th_units">Units</th>
8819 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008820 <th class="th_tags">Tags</th>
8821 </tr>
8822 </thead>
8823
8824 <tbody>
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008836 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008837 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008838 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008839 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008840 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008841
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008842 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008843
8844
8845 </td> <!-- entry_type -->
8846
8847 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008848 <p>A frame counter set by the framework.<wbr/> Must
8849be maintained unchanged in output frame.<wbr/> This value monotonically
8850increases with every new result (that is,<wbr/> each new result has a unique
8851frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008852 </td>
8853
8854 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008855 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008856 </td>
8857
8858 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008859 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Any int.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008860 </td>
8861
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008862 <td class="entry_tags">
8863 </td>
8864
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008865 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008866
8867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008868 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8869 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008870
8871
8872 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008873 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008874 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008875 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008877 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008878
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008879 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008880
8881
8882 </td> <!-- entry_type -->
8883
8884 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008885 <p>An application-specified ID for the current
8886request.<wbr/> Must be maintained unchanged in output
8887frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008888 </td>
8889
8890 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008891 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008892 </td>
8893
8894 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008895 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008896 </td>
8897
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008898 <td class="entry_tags">
8899 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008900 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008901 </ul>
8902 </td>
8903
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008904 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008905
8906
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008907 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8908 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008909
8910
8911 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008912 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008913 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008914 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008915 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008916 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008917 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008918
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008919 <span class="entry_type_array">
8920 n
8921 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008922 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008923
8924
8925 </td> <!-- entry_type -->
8926
8927 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008928 <p>List which camera reprocess stream is used
8929for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008930 </td>
8931
8932 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008933 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008934 </td>
8935
8936 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008937 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8938<p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008939<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8940reprocess streams may be included in a single request; they
8941must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008942 </td>
8943
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008944 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008945 <ul class="entry_tags">
8946 <li><a href="#tag_HAL2">HAL2</a></li>
8947 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008948 </td>
8949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008950 </tr>
8951 <tr class="entries_header">
8952 <th class="th_details" colspan="5">Details</th>
8953 </tr>
8954 <tr class="entry_cont">
8955 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008956 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008957REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008958 </td>
8959 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008960
8961
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008962 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8963 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008964
8965
8966 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008967 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008968 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008969 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008970 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008971 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008972
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008973 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008974
8975 <ul class="entry_type_enum">
8976 <li>
8977 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008978 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8979for application-bound buffer data.<wbr/> If no
8980application-bound streams exist,<wbr/> no frame should be
8981placed in the output frame queue.<wbr/> If such streams
8982exist,<wbr/> a frame should be placed on the output queue
8983with null metadata but with the necessary output buffer
8984information.<wbr/> Timestamp information should still be
8985included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008986 </li>
8987 <li>
8988 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008989 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8990only be produced if they are separately
8991enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008992 </li>
8993 </ul>
8994
8995 </td> <!-- entry_type -->
8996
8997 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008998 <p>How much metadata to produce on
8999output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009000 </td>
9001
9002 <td class="entry_units">
9003 </td>
9004
9005 <td class="entry_range">
9006 </td>
9007
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009008 <td class="entry_tags">
9009 </td>
9010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009011 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009012
9013
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009014 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9015 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009016
9017
9018 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009019 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009020 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009021 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009022 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009023 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009024 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009025
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009026 <span class="entry_type_array">
9027 n
9028 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009029 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009030
9031
9032 </td> <!-- entry_type -->
9033
9034 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009035 <p>Lists which camera output streams image data
9036from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009037 </td>
9038
9039 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009040 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009041 </td>
9042
9043 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009044 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009045created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009046 </td>
9047
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009048 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009049 <ul class="entry_tags">
9050 <li><a href="#tag_HAL2">HAL2</a></li>
9051 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009052 </td>
9053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009054 </tr>
9055 <tr class="entries_header">
9056 <th class="th_details" colspan="5">Details</th>
9057 </tr>
9058 <tr class="entry_cont">
9059 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009060 <p>If no output streams are listed,<wbr/> then the image
9061data should simply be discarded.<wbr/> The image data must
9062still be captured for metadata and statistics production,<wbr/>
9063and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009064 </td>
9065 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009066
9067
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009068 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9069 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009070
9071
9072 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009073 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009074 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009075 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009076 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009077 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009078
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009079 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009080
9081 <ul class="entry_type_enum">
9082 <li>
9083 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009084 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9085and process it according to the
9086settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009087 </li>
9088 <li>
9089 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009090 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9091android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9092source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9093needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009094 </li>
9095 </ul>
9096
9097 </td> <!-- entry_type -->
9098
9099 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009100 <p>The type of the request; either CAPTURE or
9101REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009102 </td>
9103
9104 <td class="entry_units">
9105 </td>
9106
9107 <td class="entry_range">
9108 </td>
9109
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009110 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009111 <ul class="entry_tags">
9112 <li><a href="#tag_HAL2">HAL2</a></li>
9113 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009114 </td>
9115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009116 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009117
9118
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009119 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9120 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009121
9122
9123
9124 <!-- end of kind -->
9125 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009126 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009127
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009128 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009129 <tr>
9130 <th class="th_name">Property Name</th>
9131 <th class="th_type">Type</th>
9132 <th class="th_description">Description</th>
9133 <th class="th_units">Units</th>
9134 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009135 <th class="th_tags">Tags</th>
9136 </tr>
9137 </thead>
9138
9139 <tbody>
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009151 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009152 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009153 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009154 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009155 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009156 <span class="entry_type_container">x</span>
9157
9158 <span class="entry_type_array">
9159 3
9160 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009161 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009162
9163
9164 </td> <!-- entry_type -->
9165
9166 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009167 <p>How many output streams can be allocated at
9168the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009169 </td>
9170
9171 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009172 The number of raw sensor streams; the number of
9173 processed,<wbr/> uncompressed streams; and the number of
9174 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009175 </td>
9176
9177 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009178 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009179for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009180 </td>
9181
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009182 <td class="entry_tags">
9183 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009184 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009185 </ul>
9186 </td>
9187
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009188 </tr>
9189 <tr class="entries_header">
9190 <th class="th_details" colspan="5">Details</th>
9191 </tr>
9192 <tr class="entry_cont">
9193 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009194 <p>Video snapshot with preview callbacks requires 3
9195processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9196one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009197 </td>
9198 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009199
9200
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009201 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9202 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009203
9204
9205 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009206 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009207 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009208 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009209 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009210 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009211 <span class="entry_type_container">x</span>
9212
9213 <span class="entry_type_array">
9214 1
9215 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009216 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009217
9218
9219 </td> <!-- entry_type -->
9220
9221 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009222 <p>How many reprocessing streams of any type
9223can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009224 </td>
9225
9226 <td class="entry_units">
9227 </td>
9228
9229 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009230 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009231 </td>
9232
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009233 <td class="entry_tags">
9234 </td>
9235
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009236 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009237
9238
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009239 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9240 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009241
Igor Murashkina46e02f2014-01-09 17:43:38 -08009242
9243 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9244 <td class="entry_name" rowspan="5">
9245 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9246 </td>
9247 <td class="entry_type">
9248 <span class="entry_type_name">byte</span>
9249
9250 <span class="entry_type_visibility"> [public]</span>
9251
9252
9253 </td> <!-- entry_type -->
9254
9255 <td class="entry_description">
9256 <p>Specifies the number of maximum pipeline stages a frame
9257has to go through from when it's exposed to when it's available
9258to the framework.<wbr/></p>
9259 </td>
9260
9261 <td class="entry_units">
9262 </td>
9263
9264 <td class="entry_range">
9265 </td>
9266
9267 <td class="entry_tags">
9268 </td>
9269
9270 </tr>
9271 <tr class="entries_header">
9272 <th class="th_details" colspan="5">Details</th>
9273 </tr>
9274 <tr class="entry_cont">
9275 <td class="entry_details" colspan="5">
9276 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9277one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9278its own stages to do custom HW processing.<wbr/> Further stages may be
9279added by SW processing.<wbr/></p>
9280<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9281processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9282depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9283the max pipeline depth.<wbr/></p>
9284<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9285X frame intervals.<wbr/></p>
9286<p>This value will be 8 or less.<wbr/></p>
9287 </td>
9288 </tr>
9289
9290 <tr class="entries_header">
9291 <th class="th_details" colspan="5">HAL Implementation Details</th>
9292 </tr>
9293 <tr class="entry_cont">
9294 <td class="entry_details" colspan="5">
9295 <p>This value should be 4 or less.<wbr/></p>
9296 </td>
9297 </tr>
9298
9299 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9300 <!-- end of entry -->
9301
Igor Murashkin2e291102014-01-10 14:18:30 -08009302
9303 <tr class="entry" id="static_android.request.partialResultCount">
9304 <td class="entry_name" rowspan="3">
9305 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9306 </td>
9307 <td class="entry_type">
9308 <span class="entry_type_name">int32</span>
9309
9310 <span class="entry_type_visibility"> [public]</span>
9311
9312
9313 </td> <!-- entry_type -->
9314
9315 <td class="entry_description">
9316 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9317a result will be composed of.<wbr/></p>
9318 </td>
9319
9320 <td class="entry_units">
9321 </td>
9322
9323 <td class="entry_range">
9324 <p>&gt;= 1</p>
9325 </td>
9326
9327 <td class="entry_tags">
9328 </td>
9329
9330 </tr>
9331 <tr class="entries_header">
9332 <th class="th_details" colspan="5">Details</th>
9333 </tr>
9334 <tr class="entry_cont">
9335 <td class="entry_details" colspan="5">
9336 <p>In order to combat the pipeline latency,<wbr/> partial results
9337may be delivered to the application layer from the camera device as
9338soon as they are available.<wbr/></p>
9339<p>A value of 1 means that partial results are not supported.<wbr/></p>
9340<p>A typical use case for this might be: after requesting an AF lock the
9341new AF state might be available 50% of the way through the pipeline.<wbr/>
9342The camera device could then immediately dispatch this state via a
9343partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9344the metadata via later partial results.<wbr/></p>
9345 </td>
9346 </tr>
9347
9348
9349 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9350 <!-- end of entry -->
9351
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009352
9353
9354 <!-- end of kind -->
9355 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009356 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009357
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009358 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009359 <tr>
9360 <th class="th_name">Property Name</th>
9361 <th class="th_type">Type</th>
9362 <th class="th_description">Description</th>
9363 <th class="th_units">Units</th>
9364 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009365 <th class="th_tags">Tags</th>
9366 </tr>
9367 </thead>
9368
9369 <tbody>
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009381 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009382 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009383 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009384 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009385 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009386
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009387 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009388
9389
9390 </td> <!-- entry_type -->
9391
9392 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009393 <p>A frame counter set by the framework.<wbr/> This value monotonically
9394increases with every new result (that is,<wbr/> each new result has a unique
9395frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009396 </td>
9397
9398 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009399 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009400 </td>
9401
9402 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009403 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009404 </td>
9405
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009406 <td class="entry_tags">
9407 </td>
9408
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009409 </tr>
9410 <tr class="entries_header">
9411 <th class="th_details" colspan="5">Details</th>
9412 </tr>
9413 <tr class="entry_cont">
9414 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009415 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009416 </td>
9417 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009418
9419
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009420 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9421 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009422
9423
9424 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009425 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009426 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009427 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009428 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009429 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009430
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009431 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009432
9433
9434 </td> <!-- entry_type -->
9435
9436 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009437 <p>An application-specified ID for the current
9438request.<wbr/> Must be maintained unchanged in output
9439frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009440 </td>
9441
9442 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009443 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009444 </td>
9445
9446 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009447 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009448 </td>
9449
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009450 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009451 <ul class="entry_tags">
9452 <li><a href="#tag_V1">V1</a></li>
9453 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009454 </td>
9455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009456 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009457
9458
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009459 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9460 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009461
9462
9463 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009464 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009465 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009466 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009467 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009468 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009469
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009470 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009471
9472 <ul class="entry_type_enum">
9473 <li>
9474 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009475 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9476for application-bound buffer data.<wbr/> If no
9477application-bound streams exist,<wbr/> no frame should be
9478placed in the output frame queue.<wbr/> If such streams
9479exist,<wbr/> a frame should be placed on the output queue
9480with null metadata but with the necessary output buffer
9481information.<wbr/> Timestamp information should still be
9482included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009483 </li>
9484 <li>
9485 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009486 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9487only be produced if they are separately
9488enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009489 </li>
9490 </ul>
9491
9492 </td> <!-- entry_type -->
9493
9494 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009495 <p>How much metadata to produce on
9496output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009497 </td>
9498
9499 <td class="entry_units">
9500 </td>
9501
9502 <td class="entry_range">
9503 </td>
9504
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009505 <td class="entry_tags">
9506 </td>
9507
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009508 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009509
9510
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009511 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9512 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009513
9514
9515 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009516 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009517 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009518 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009519 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009520 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009521 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009522
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009523 <span class="entry_type_array">
9524 n
9525 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009526 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009527
9528
9529 </td> <!-- entry_type -->
9530
9531 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009532 <p>Lists which camera output streams image data
9533from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009534 </td>
9535
9536 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009537 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009538 </td>
9539
9540 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009541 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009542created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009543 </td>
9544
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009545 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009546 <ul class="entry_tags">
9547 <li><a href="#tag_HAL2">HAL2</a></li>
9548 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009549 </td>
9550
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009551 </tr>
9552 <tr class="entries_header">
9553 <th class="th_details" colspan="5">Details</th>
9554 </tr>
9555 <tr class="entry_cont">
9556 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009557 <p>If no output streams are listed,<wbr/> then the image
9558data should simply be discarded.<wbr/> The image data must
9559still be captured for metadata and statistics production,<wbr/>
9560and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009561 </td>
9562 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009563
9564
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009565 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9566 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009567
Igor Murashkina46e02f2014-01-09 17:43:38 -08009568
9569 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9570 <td class="entry_name" rowspan="5">
9571 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9572 </td>
9573 <td class="entry_type">
9574 <span class="entry_type_name">byte</span>
9575
9576 <span class="entry_type_visibility"> [public]</span>
9577
9578
9579 </td> <!-- entry_type -->
9580
9581 <td class="entry_description">
9582 <p>Specifies the number of pipeline stages the frame went
9583through from when it was exposed to when the final completed result
9584was available to the framework.<wbr/></p>
9585 </td>
9586
9587 <td class="entry_units">
9588 </td>
9589
9590 <td class="entry_range">
9591 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9592 </td>
9593
9594 <td class="entry_tags">
9595 </td>
9596
9597 </tr>
9598 <tr class="entries_header">
9599 <th class="th_details" colspan="5">Details</th>
9600 </tr>
9601 <tr class="entry_cont">
9602 <td class="entry_details" colspan="5">
9603 <p>Depending on what settings are used in the request,<wbr/> and
9604what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9605and some pipeline stages skipped.<wbr/></p>
9606<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9607 </td>
9608 </tr>
9609
9610 <tr class="entries_header">
9611 <th class="th_details" colspan="5">HAL Implementation Details</th>
9612 </tr>
9613 <tr class="entry_cont">
9614 <td class="entry_details" colspan="5">
9615 <p>This value must always represent the accurate count of how many
9616pipeline stages were actually used.<wbr/></p>
9617 </td>
9618 </tr>
9619
9620 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9621 <!-- end of entry -->
9622
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009623
9624
9625 <!-- end of kind -->
9626 </tbody>
9627
9628 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009629 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009630
9631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009632 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009633
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009634 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009635 <tr>
9636 <th class="th_name">Property Name</th>
9637 <th class="th_type">Type</th>
9638 <th class="th_description">Description</th>
9639 <th class="th_units">Units</th>
9640 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009641 <th class="th_tags">Tags</th>
9642 </tr>
9643 </thead>
9644
9645 <tbody>
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009657 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009658 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009659 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009660 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009661 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009662 <span class="entry_type_container">x</span>
9663
9664 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009665 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009666 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009667 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009668
9669
9670 </td> <!-- entry_type -->
9671
9672 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009673 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9674<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9675(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9676output.<wbr/> Each stream must use this rectangle to produce its
9677output,<wbr/> cropping to a smaller region if necessary to
9678maintain the stream's aspect ratio.<wbr/></p>
9679<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009680 </td>
9681
9682 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009683 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9684 in pixels; (0,<wbr/>0) is top-left corner of
9685 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009686 </td>
9687
9688 <td class="entry_range">
9689 </td>
9690
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009691 <td class="entry_tags">
9692 <ul class="entry_tags">
9693 <li><a href="#tag_BC">BC</a></li>
9694 </ul>
9695 </td>
9696
9697 </tr>
9698 <tr class="entries_header">
9699 <th class="th_details" colspan="5">Details</th>
9700 </tr>
9701 <tr class="entry_cont">
9702 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009703 <p>Any additional per-stream cropping must be done to
9704maximize the final pixel area of the stream.<wbr/></p>
9705<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9706ratio,<wbr/> then 4:3 streams should use the exact crop
9707region.<wbr/> 16:9 streams should further crop vertically
9708(letterbox).<wbr/></p>
9709<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9710outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9711streams should match exactly.<wbr/> These additional crops must
9712be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009713<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009714times,<wbr/> no matter what the relative aspect ratios of the
9715crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009716corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009717larger than active pixel array.<wbr/> Width and height may be
9718rounded to nearest larger supportable width,<wbr/> especially
9719for raw output,<wbr/> where only a few fixed scales may be
9720possible.<wbr/> The width and height of the crop region cannot
9721be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9722android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9723activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9724respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009725 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009726 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009727
9728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009729 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9730 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009731
9732
9733
9734 <!-- end of kind -->
9735 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009736 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009737
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009738 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009739 <tr>
9740 <th class="th_name">Property Name</th>
9741 <th class="th_type">Type</th>
9742 <th class="th_description">Description</th>
9743 <th class="th_units">Units</th>
9744 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009745 <th class="th_tags">Tags</th>
9746 </tr>
9747 </thead>
9748
9749 <tbody>
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009761 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009762 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009763 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009764 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009765 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009766 <span class="entry_type_container">x</span>
9767
9768 <span class="entry_type_array">
9769 n
9770 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009771 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009772
9773 <ul class="entry_type_enum">
9774 <li>
9775 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009776 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009777 <span class="entry_type_enum_value">0x20</span>
9778 </li>
9779 <li>
9780 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009781 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009782 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009783 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009784 </li>
9785 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009786 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009787 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009788 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009789 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009790 </li>
9791 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009792 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9793 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009794 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009795 </li>
9796 <li>
9797 <span class="entry_type_enum_name">YCbCr_420_888</span>
9798 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009799 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009800 </li>
9801 <li>
9802 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009803 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009804 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009805 </li>
9806 </ul>
9807
9808 </td> <!-- entry_type -->
9809
9810 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009811 <p>The list of image formats that are supported by this
9812camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009813 </td>
9814
9815 <td class="entry_units">
9816 </td>
9817
9818 <td class="entry_range">
9819 </td>
9820
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009821 <td class="entry_tags">
9822 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009823 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009824 </ul>
9825 </td>
9826
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009827 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009828 <tr class="entries_header">
9829 <th class="th_details" colspan="5">Details</th>
9830 </tr>
9831 <tr class="entry_cont">
9832 <td class="entry_details" colspan="5">
9833 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9834<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9835 </td>
9836 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009837
Zhijun Heb8317e22014-01-16 09:47:07 -08009838 <tr class="entries_header">
9839 <th class="th_details" colspan="5">HAL Implementation Details</th>
9840 </tr>
9841 <tr class="entry_cont">
9842 <td class="entry_details" colspan="5">
9843 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9844system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9845<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9846gralloc module will select a format based on the usage flags provided
9847by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9848usually used by preview and recording streams,<wbr/> where the application doesn't
9849need access the image data.<wbr/></p>
9850<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9851needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9852<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9853 </td>
9854 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009856 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9857 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009858
9859
9860 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009861 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009862 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009863 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009864 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009865 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009866 <span class="entry_type_container">x</span>
9867
9868 <span class="entry_type_array">
9869 n
9870 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009871 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009872
9873
9874 </td> <!-- entry_type -->
9875
9876 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009877 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009878for each resolution in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009879 </td>
9880
9881 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009882 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009883 </td>
9884
9885 <td class="entry_range">
9886 </td>
9887
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009888 <td class="entry_tags">
9889 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009890 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009891 </ul>
9892 </td>
9893
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009894 </tr>
9895 <tr class="entries_header">
9896 <th class="th_details" colspan="5">Details</th>
9897 </tr>
9898 <tr class="entry_cont">
9899 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009900 <p>This corresponds to the minimum steady-state frame duration when only
9901that JPEG stream is active and captured in a burst,<wbr/> with all
9902processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9903<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009904frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009905durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009906 </td>
9907 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009908
9909
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009910 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9911 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009912
9913
9914 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009915 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009916 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009917 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009918 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009919 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009920 <span class="entry_type_container">x</span>
9921
9922 <span class="entry_type_array">
9923 n x 2
9924 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009925 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009926
9927
9928 </td> <!-- entry_type -->
9929
9930 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009931 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009932 </td>
9933
9934 <td class="entry_units">
9935 </td>
9936
9937 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009938 </td>
9939
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009940 <td class="entry_tags">
9941 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009942 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009943 </ul>
9944 </td>
9945
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009946 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009947 <tr class="entries_header">
9948 <th class="th_details" colspan="5">Details</th>
9949 </tr>
9950 <tr class="entry_cont">
9951 <td class="entry_details" colspan="5">
9952 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9953sensor maximum resolution (defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
9954 </td>
9955 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009956
Zhijun Heb8317e22014-01-16 09:47:07 -08009957 <tr class="entries_header">
9958 <th class="th_details" colspan="5">HAL Implementation Details</th>
9959 </tr>
9960 <tr class="entry_cont">
9961 <td class="entry_details" colspan="5">
9962 <p>The HAL must include sensor maximum resolution
9963(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9964and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9965 </td>
9966 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9969 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009970
9971
9972 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009973 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009974 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009975 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009976 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009977 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009978
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009979 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009980
9981
9982 </td> <!-- entry_type -->
9983
9984 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009985 <p>The maximum ratio between active area width
9986and crop region width,<wbr/> or between active area height and
9987crop region height,<wbr/> if the crop region height is larger
9988than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009989 </td>
9990
9991 <td class="entry_units">
9992 </td>
9993
9994 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009995 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009996 </td>
9997
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009998 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009999 <ul class="entry_tags">
10000 <li><a href="#tag_BC">BC</a></li>
10001 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010002 </td>
10003
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010004 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010005
10006
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010007 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10008 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010009
10010
10011 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010012 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010013 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010014 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010015 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010016 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010017 <span class="entry_type_container">x</span>
10018
10019 <span class="entry_type_array">
10020 n
10021 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010022 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010023
10024
10025 </td> <!-- entry_type -->
10026
10027 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010028 <p>For each available processed output size (defined in
10029<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10030minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010031 </td>
10032
10033 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010034 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010035 </td>
10036
10037 <td class="entry_range">
10038 </td>
10039
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010040 <td class="entry_tags">
10041 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010042 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010043 </ul>
10044 </td>
10045
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010046 </tr>
10047 <tr class="entries_header">
10048 <th class="th_details" colspan="5">Details</th>
10049 </tr>
10050 <tr class="entry_cont">
10051 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010052 <p>This should correspond to the frame duration when only that processed
10053stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10054set to FAST.<wbr/></p>
10055<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10056be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010057 </td>
10058 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010059
10060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010061 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10062 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010063
10064
10065 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010066 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010067 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010068 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010069 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010070 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010071 <span class="entry_type_container">x</span>
10072
10073 <span class="entry_type_array">
10074 n x 2
10075 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010076 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010077
10078
10079 </td> <!-- entry_type -->
10080
10081 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010082 <p>The resolutions available for use with
10083processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10084platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010085encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010086 </td>
10087
10088 <td class="entry_units">
10089 </td>
10090
10091 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010092 </td>
10093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010094 <td class="entry_tags">
10095 <ul class="entry_tags">
10096 <li><a href="#tag_BC">BC</a></li>
10097 </ul>
10098 </td>
10099
10100 </tr>
10101 <tr class="entries_header">
10102 <th class="th_details" colspan="5">Details</th>
10103 </tr>
10104 <tr class="entry_cont">
10105 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010106 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10107<p>For a given use case,<wbr/> the actual maximum supported resolution
10108may be lower than what is listed here,<wbr/> depending on the destination
10109Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10110the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10111smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10112can provide.<wbr/></p>
10113<p>Please reference the documentation for the image data destination to
10114check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010115 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010116 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010117
Zhijun Heb8317e22014-01-16 09:47:07 -080010118 <tr class="entries_header">
10119 <th class="th_details" colspan="5">HAL Implementation Details</th>
10120 </tr>
10121 <tr class="entry_cont">
10122 <td class="entry_details" colspan="5">
10123 <p>For FULL capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>),<wbr/>
10124the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10125and each below resolution if it is smaller than or equal to the sensor
10126maximum resolution (if they are not listed in JPEG sizes already):</p>
10127<ul>
10128<li>240p (320 x 240)</li>
10129<li>480p (640 x 480)</li>
10130<li>720p (1280 x 720)</li>
10131<li>1080p (1920 x 1080)</li>
10132</ul>
10133<p>For LIMITED capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
10134the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10135 </td>
10136 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010137
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010138 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10139 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010140
10141
10142 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010143 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010144 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010145 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010146 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010147 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010148 <span class="entry_type_container">x</span>
10149
10150 <span class="entry_type_array">
10151 n
10152 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010153 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010154
10155
10156 </td> <!-- entry_type -->
10157
10158 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010159 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010160<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10161supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010162 </td>
10163
10164 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010165 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010166 </td>
10167
10168 <td class="entry_range">
10169 </td>
10170
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010171 <td class="entry_tags">
10172 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010173 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010174 </ul>
10175 </td>
10176
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010177 </tr>
10178 <tr class="entries_header">
10179 <th class="th_details" colspan="5">Details</th>
10180 </tr>
10181 <tr class="entry_cont">
10182 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010183 <p>Should correspond to the frame duration when only the raw stream is
10184active.<wbr/></p>
10185<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010186frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010187durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010188 </td>
10189 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010190
10191
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010192 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10193 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010194
10195
10196 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010197 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010198 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010199 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010200 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010201 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010202 <span class="entry_type_container">x</span>
10203
10204 <span class="entry_type_array">
10205 n x 2
10206 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010207 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010208
10209
10210 </td> <!-- entry_type -->
10211
10212 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010213 <p>The resolutions available for use with raw
10214sensor output streams,<wbr/> listed as width,<wbr/>
10215height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010216 </td>
10217
10218 <td class="entry_units">
10219 </td>
10220
10221 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010222 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010223 </td>
10224
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010225 <td class="entry_tags">
10226 </td>
10227
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010229
10230
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010231 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10232 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010233
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010234
10235
10236 <!-- end of kind -->
10237 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010238 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010239
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010240 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010241 <tr>
10242 <th class="th_name">Property Name</th>
10243 <th class="th_type">Type</th>
10244 <th class="th_description">Description</th>
10245 <th class="th_units">Units</th>
10246 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010247 <th class="th_tags">Tags</th>
10248 </tr>
10249 </thead>
10250
10251 <tbody>
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010263 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010264 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010265 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010266 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010267 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010268 <span class="entry_type_container">x</span>
10269
10270 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010271 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010272 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010273 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010274
10275
10276 </td> <!-- entry_type -->
10277
10278 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010279 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10280<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10281(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10282output.<wbr/> Each stream must use this rectangle to produce its
10283output,<wbr/> cropping to a smaller region if necessary to
10284maintain the stream's aspect ratio.<wbr/></p>
10285<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010286 </td>
10287
10288 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010289 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10290 in pixels; (0,<wbr/>0) is top-left corner of
10291 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010292 </td>
10293
10294 <td class="entry_range">
10295 </td>
10296
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010297 <td class="entry_tags">
10298 <ul class="entry_tags">
10299 <li><a href="#tag_BC">BC</a></li>
10300 </ul>
10301 </td>
10302
10303 </tr>
10304 <tr class="entries_header">
10305 <th class="th_details" colspan="5">Details</th>
10306 </tr>
10307 <tr class="entry_cont">
10308 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010309 <p>Any additional per-stream cropping must be done to
10310maximize the final pixel area of the stream.<wbr/></p>
10311<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10312ratio,<wbr/> then 4:3 streams should use the exact crop
10313region.<wbr/> 16:9 streams should further crop vertically
10314(letterbox).<wbr/></p>
10315<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10316outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10317streams should match exactly.<wbr/> These additional crops must
10318be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010319<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010320times,<wbr/> no matter what the relative aspect ratios of the
10321crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010322corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010323larger than active pixel array.<wbr/> Width and height may be
10324rounded to nearest larger supportable width,<wbr/> especially
10325for raw output,<wbr/> where only a few fixed scales may be
10326possible.<wbr/> The width and height of the crop region cannot
10327be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10328android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10329activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10330respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010331 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010332 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010333
10334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010335 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10336 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010337
10338
10339
10340 <!-- end of kind -->
10341 </tbody>
10342
10343 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010344 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010345
10346
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010347 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010348
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010349 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010350 <tr>
10351 <th class="th_name">Property Name</th>
10352 <th class="th_type">Type</th>
10353 <th class="th_description">Description</th>
10354 <th class="th_units">Units</th>
10355 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010356 <th class="th_tags">Tags</th>
10357 </tr>
10358 </thead>
10359
10360 <tbody>
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010372 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010373 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010374 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010375 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010376 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010377
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010378 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010379
10380
10381 </td> <!-- entry_type -->
10382
10383 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010384 <p>Duration each pixel is exposed to
10385light.<wbr/></p>
10386<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10387duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010388 </td>
10389
10390 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010391 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010392 </td>
10393
10394 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010395 <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010396 </td>
10397
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010398 <td class="entry_tags">
10399 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010400 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010401 </ul>
10402 </td>
10403
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010404 </tr>
10405 <tr class="entries_header">
10406 <th class="th_details" colspan="5">Details</th>
10407 </tr>
10408 <tr class="entry_cont">
10409 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010410 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010411 </td>
10412 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010413
10414
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010415 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10416 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010417
10418
10419 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010420 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010421 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010422 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010423 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010424 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010425
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010426 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010427
10428
10429 </td> <!-- entry_type -->
10430
10431 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010432 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010433start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010434 </td>
10435
10436 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010437 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010438 </td>
10439
10440 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010441 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10442android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10443is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010444 </td>
10445
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010446 <td class="entry_tags">
10447 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010448 <li><a href="#tag_V1">V1</a></li>
10449 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010450 </ul>
10451 </td>
10452
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010453 </tr>
10454 <tr class="entries_header">
10455 <th class="th_details" colspan="5">Details</th>
10456 </tr>
10457 <tr class="entry_cont">
10458 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010459 <p>The maximum frame rate that can be supported by a camera subsystem is
10460a function of many factors:</p>
10461<ul>
10462<li>Requested resolutions of output image streams</li>
10463<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10464<li>The bandwidth of the imager interface</li>
10465<li>The bandwidth of the various ISP processing blocks</li>
10466</ul>
10467<p>Since these factors can vary greatly between different ISPs and
10468sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10469restrictions with as simple a model as possible.<wbr/></p>
10470<p>The model presented has the following characteristics:</p>
10471<ul>
10472<li>The image sensor is always configured to output the smallest
10473resolution possible given the application's requested output stream
10474sizes.<wbr/> The smallest resolution is defined as being at least as large
10475as the largest requested output stream size; the camera pipeline must
10476never digitally upsample sensor data when the crop region covers the
10477whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10478resolutions are configured,<wbr/> the sensor can provide a higher frame
10479rate.<wbr/></li>
10480<li>Since any request may use any or all the currently configured
10481output streams,<wbr/> the sensor and ISP must be configured to support
10482scaling a single capture to all the streams at the same time.<wbr/> This
10483means the camera pipeline must be ready to produce the largest
10484requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10485frame rate of a given configured stream set is governed only by the
10486largest requested stream resolution.<wbr/></li>
10487<li>Using more than one output stream in a request does not affect the
10488frame duration.<wbr/></li>
10489<li>JPEG streams act like processed YUV streams in requests for which
10490they are not included; in requests in which they are directly
10491referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10492JPEG stream requires the underlying YUV data to always be ready for
10493use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10494frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10495<li>The JPEG processor can run concurrently to the rest of the camera
10496pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10497</ul>
10498<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10499is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10500These are used to determine the maximum frame rate /<wbr/> minimum frame
10501duration that is possible for a given stream configuration.<wbr/></p>
10502<p>Specifically,<wbr/> the application can use the following rules to
10503determine the minimum frame duration it can request from the HAL
10504device:</p>
10505<ol>
10506<li>Given the application's currently configured set of output
10507streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10508<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10509<code>SP</code>.<wbr/></li>
10510<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10511count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10512<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10513<li>If <code>RJ</code> is greater than <code>RP</code>,<wbr/> set <code>RP</code> equal to <code>RJ</code>.<wbr/> If there is
10514no exact match for <code>RP == RJ</code> (in particular there isn't an available
10515processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10516to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10517there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10518the processed resolution closest to <code>RJ</code>.<wbr/></li>
10519<li>If <code>RP</code> is greater than <code>RR</code>,<wbr/> set <code>RR</code> equal to <code>RP</code>.<wbr/> If there is
10520no exact match for <code>RR == RP</code> (in particular there isn't an available
10521raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10522or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10523there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10524the raw resolution closest to <code>RP</code>.<wbr/></li>
10525<li>Look up the matching minimum frame durations in the property lists
10526<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10527<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10528<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10529minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10530<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10531supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10532<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10533supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10534<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10535the application,<wbr/> then the HAL will have to delay JPEG-using requests
10536whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10537This will happen whenever a JPEG-using request starts capture less
10538than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10539supported frame duration will vary between the values calculated in
10540#6 and #7.<wbr/></li>
10541</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010542 </td>
10543 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010544
10545
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010546 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10547 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010548
10549
10550 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010551 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010552 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010553 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010554 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010555 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010556
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010557 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010558
10559
10560 </td> <!-- entry_type -->
10561
10562 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010563 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010564implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010565below 'maximum analog sensitivity'.<wbr/></p>
10566<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10567gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010568 </td>
10569
10570 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010571 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010572 </td>
10573
10574 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010575 <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010576 </td>
10577
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010578 <td class="entry_tags">
10579 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010580 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010581 </ul>
10582 </td>
10583
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010584 </tr>
10585 <tr class="entries_header">
10586 <th class="th_details" colspan="5">Details</th>
10587 </tr>
10588 <tr class="entry_cont">
10589 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010590 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010591 </td>
10592 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010593
10594
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010595 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10596 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010597
Igor Murashkina46e02f2014-01-09 17:43:38 -080010598
10599 <tr class="entry" id="controls_android.sensor.testPatternData">
10600 <td class="entry_name" rowspan="5">
10601 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10602 </td>
10603 <td class="entry_type">
10604 <span class="entry_type_name">int32</span>
10605 <span class="entry_type_container">x</span>
10606
10607 <span class="entry_type_array">
10608 4
10609 </span>
10610 <span class="entry_type_visibility"> [public]</span>
10611
10612
10613 </td> <!-- entry_type -->
10614
10615 <td class="entry_description">
10616 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10617when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10618 </td>
10619
10620 <td class="entry_units">
10621 </td>
10622
10623 <td class="entry_range">
10624 <p>Optional.<wbr/>
10625Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10626SOLID_<wbr/>COLOR.<wbr/></p>
10627 </td>
10628
10629 <td class="entry_tags">
10630 </td>
10631
10632 </tr>
10633 <tr class="entries_header">
10634 <th class="th_details" colspan="5">Details</th>
10635 </tr>
10636 <tr class="entry_cont">
10637 <td class="entry_details" colspan="5">
10638 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10639The camera device then uses the most significant X bits
10640that correspond to how many bits are in its Bayer raw sensor
10641output.<wbr/></p>
10642<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1064310 most significant bits from each color channel.<wbr/></p>
10644 </td>
10645 </tr>
10646
10647 <tr class="entries_header">
10648 <th class="th_details" colspan="5">HAL Implementation Details</th>
10649 </tr>
10650 <tr class="entry_cont">
10651 <td class="entry_details" colspan="5">
10652
10653 </td>
10654 </tr>
10655
10656 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10657 <!-- end of entry -->
10658
10659
10660 <tr class="entry" id="controls_android.sensor.testPatternMode">
10661 <td class="entry_name" rowspan="5">
10662 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10663 </td>
10664 <td class="entry_type">
10665 <span class="entry_type_name entry_type_name_enum">int32</span>
10666
10667 <span class="entry_type_visibility"> [public]</span>
10668
10669 <ul class="entry_type_enum">
10670 <li>
10671 <span class="entry_type_enum_name">OFF</span>
10672 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10673device returns captures from the image sensor.<wbr/></p></span>
10674 </li>
10675 <li>
10676 <span class="entry_type_enum_name">SOLID_COLOR</span>
10677 <span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
10678respective color channel provided in
10679<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10680<p>For example:</p>
10681<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10682</code></pre>
10683<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10684<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10685</code></pre>
10686<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10687are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10688 </li>
10689 <li>
10690 <span class="entry_type_enum_name">COLOR_BARS</span>
10691 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10692<p>The vertical bars (left-to-right) are as follows:</p>
10693<ul>
10694<li>100% white</li>
10695<li>yellow</li>
10696<li>cyan</li>
10697<li>green</li>
10698<li>magenta</li>
10699<li>red</li>
10700<li>blue</li>
10701<li>black</li>
10702</ul>
10703<p>In general the image would look like the following:</p>
10704<pre><code>W Y C G M R B K
10705W Y C G M R B K
10706W Y C G M R B K
10707W Y C G M R B K
10708W Y C G M R B K
10709.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10710.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10711.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10712
10713(B = Blue,<wbr/> K = Black)
10714</code></pre>
10715<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10716When this is not possible,<wbr/> the bar size should be rounded
10717down to the nearest integer and the pattern can repeat
10718on the right side.<wbr/></p>
10719<p>Each bar's height must always take up the full sensor
10720pixel array height.<wbr/></p>
10721<p>Each pixel in this test pattern must be set to either
107220% intensity or 100% intensity.<wbr/></p></span>
10723 </li>
10724 <li>
10725 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10726 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10727each bar should start at its specified color at the top,<wbr/>
10728and fade to gray at the bottom.<wbr/></p>
10729<p>Furthermore each bar is further subdivided into a left and
10730right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10731and the right half should have a quantized gradient.<wbr/></p>
10732<p>In particular,<wbr/> the right half's should consist of blocks of the
10733same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10734<p>The least significant bits in the quantized gradient should
10735be copied from the most significant bits of the smooth gradient.<wbr/></p>
10736<p>The height of each bar should always be a multiple of 128.<wbr/>
10737When this is not the case,<wbr/> the pattern should repeat at the bottom
10738of the image.<wbr/></p></span>
10739 </li>
10740 <li>
10741 <span class="entry_type_enum_name">PN9</span>
10742 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10743generated from a PN9 512-bit sequence (typically implemented
10744in hardware with a linear feedback shift register).<wbr/></p>
10745<p>The generator should be reset at the beginning of each frame,<wbr/>
10746and thus each subsequent raw frame with this test pattern should
10747be exactly the same as the last.<wbr/></p></span>
10748 </li>
10749 <li>
10750 <span class="entry_type_enum_name">CUSTOM1</span>
10751 <span class="entry_type_enum_value">256</span>
10752 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10753available only on this camera device are at least this numeric
10754value.<wbr/></p>
10755<p>All of the custom test patterns will be static
10756(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10757 </li>
10758 </ul>
10759
10760 </td> <!-- entry_type -->
10761
10762 <td class="entry_description">
10763 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10764doing a real exposure from the camera.<wbr/></p>
10765 </td>
10766
10767 <td class="entry_units">
10768 </td>
10769
10770 <td class="entry_range">
10771 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10772<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10773 </td>
10774
10775 <td class="entry_tags">
10776 </td>
10777
10778 </tr>
10779 <tr class="entries_header">
10780 <th class="th_details" colspan="5">Details</th>
10781 </tr>
10782 <tr class="entry_cont">
10783 <td class="entry_details" colspan="5">
10784 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10785by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10786work as normal.<wbr/></p>
10787<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10788occur (and that the test pattern remain unmodified,<wbr/> since the flash
10789would not actually affect it).<wbr/></p>
10790 </td>
10791 </tr>
10792
10793 <tr class="entries_header">
10794 <th class="th_details" colspan="5">HAL Implementation Details</th>
10795 </tr>
10796 <tr class="entry_cont">
10797 <td class="entry_details" colspan="5">
10798 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10799<p>The HAL may choose to substitute test patterns from the sensor
10800with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10801indistinguishable to the ISP whether the data came from the
10802sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10803 </td>
10804 </tr>
10805
10806 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10807 <!-- end of entry -->
10808
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010809
10810
10811 <!-- end of kind -->
10812 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010813 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010814
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010815 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010816 <tr>
10817 <th class="th_name">Property Name</th>
10818 <th class="th_type">Type</th>
10819 <th class="th_description">Description</th>
10820 <th class="th_units">Units</th>
10821 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010822 <th class="th_tags">Tags</th>
10823 </tr>
10824 </thead>
10825
10826 <tbody>
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010840 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010841 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010842 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010843 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010844 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010845 <span class="entry_type_container">x</span>
10846
10847 <span class="entry_type_array">
10848 4
10849 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010850 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010851 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010852
10853
10854 </td> <!-- entry_type -->
10855
10856 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010857 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080010858active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010859 </td>
10860
10861 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010862 </td>
10863
10864 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010865 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
10866&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
10867<code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010868 </td>
10869
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010870 <td class="entry_tags">
10871 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010872 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010873 </ul>
10874 </td>
10875
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010876 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080010877 <tr class="entries_header">
10878 <th class="th_details" colspan="5">Details</th>
10879 </tr>
10880 <tr class="entry_cont">
10881 <td class="entry_details" colspan="5">
10882 <p>It is smaller or equal to
10883sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
10884 </td>
10885 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010886
10887
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010888 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10889 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010890
10891
Zhijun He69fc0ea2013-07-17 09:42:58 -070010892 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010893 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010894 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010895 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010896 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010897 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010898 <span class="entry_type_container">x</span>
10899
10900 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010901 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010902 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010903 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010904 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010905
10906
10907 </td> <!-- entry_type -->
10908
10909 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010910 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010911 </td>
10912
10913 <td class="entry_units">
10914 </td>
10915
10916 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010917 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010918 </td>
10919
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010920 <td class="entry_tags">
10921 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010922 <li><a href="#tag_BC">BC</a></li>
10923 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010924 </ul>
10925 </td>
10926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010927 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010928
10929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010930 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10931 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010932
10933
10934 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010935 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010936 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010937 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010938 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010939 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010940
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010941 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010942
10943 <ul class="entry_type_enum">
10944 <li>
10945 <span class="entry_type_enum_name">RGGB</span>
10946 </li>
10947 <li>
10948 <span class="entry_type_enum_name">GRBG</span>
10949 </li>
10950 <li>
10951 <span class="entry_type_enum_name">GBRG</span>
10952 </li>
10953 <li>
10954 <span class="entry_type_enum_name">BGGR</span>
10955 </li>
10956 <li>
10957 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010958 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10959values for each pixel,<wbr/> instead of just 1 16-bit value
10960per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010961 </li>
10962 </ul>
10963
10964 </td> <!-- entry_type -->
10965
10966 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010967 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010968represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010969the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010970 </td>
10971
10972 <td class="entry_units">
10973 </td>
10974
10975 <td class="entry_range">
10976 </td>
10977
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010978 <td class="entry_tags">
10979 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010980 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010981 </ul>
10982 </td>
10983
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010984 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010985
10986
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010987 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10988 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010989
10990
10991 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin061c6002014-01-27 16:00:26 -080010992 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010993 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010994 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010995 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010996 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010997 <span class="entry_type_container">x</span>
10998
10999 <span class="entry_type_array">
11000 2
11001 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011002 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011003 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011004
11005
11006 </td> <!-- entry_type -->
11007
11008 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011009 <p>Range of valid exposure
Igor Murashkin061c6002014-01-27 16:00:26 -080011010times used by <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011011 </td>
11012
11013 <td class="entry_units">
11014 </td>
11015
11016 <td class="entry_range">
Igor Murashkin061c6002014-01-27 16:00:26 -080011017 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011018sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011019 </td>
11020
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011021 <td class="entry_tags">
11022 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011023 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011024 </ul>
11025 </td>
11026
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011027 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011028
Igor Murashkin061c6002014-01-27 16:00:26 -080011029 <tr class="entries_header">
11030 <th class="th_details" colspan="5">HAL Implementation Details</th>
11031 </tr>
11032 <tr class="entry_cont">
11033 <td class="entry_details" colspan="5">
11034 <p>The maximum of the range must be at least
110351 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11036 </td>
11037 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011038
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011039 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11040 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011041
11042
11043 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin061c6002014-01-27 16:00:26 -080011044 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011045 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011046 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011047 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011048 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011049
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011050 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011051
11052
11053 </td> <!-- entry_type -->
11054
11055 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011056 <p>Maximum possible frame duration (minimum frame
Igor Murashkin061c6002014-01-27 16:00:26 -080011057rate).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011058 </td>
11059
11060 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011061 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011062 </td>
11063
11064 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011065 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011066 </td>
11067
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011068 <td class="entry_tags">
11069 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011070 <li><a href="#tag_BC">BC</a></li>
11071 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011072 </ul>
11073 </td>
11074
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011075 </tr>
11076 <tr class="entries_header">
11077 <th class="th_details" colspan="5">Details</th>
11078 </tr>
11079 <tr class="entry_cont">
11080 <td class="entry_details" colspan="5">
Igor Murashkin061c6002014-01-27 16:00:26 -080011081 <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11082that will be accepted by the camera device.<wbr/> Attempting to use
11083frame durations beyond the maximum will result in the frame duration
11084being clipped to the maximum.<wbr/> See that control
11085for a full definition of frame durations.<wbr/></p>
11086<p>Refer to
11087<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11088<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11089<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11090frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011091 </td>
11092 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011093
Igor Murashkin061c6002014-01-27 16:00:26 -080011094 <tr class="entries_header">
11095 <th class="th_details" colspan="5">HAL Implementation Details</th>
11096 </tr>
11097 <tr class="entry_cont">
11098 <td class="entry_details" colspan="5">
11099 <p>This value must be at least 1 second.<wbr/> It should be at least 30
11100seconds (30e9 ns).<wbr/></p>
11101<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11102android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11103overrides frame duration).<wbr/></p>
11104 </td>
11105 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011106
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011107 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11108 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011109
11110
11111 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011112 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011113 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011114 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011115 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011116 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011117 <span class="entry_type_container">x</span>
11118
11119 <span class="entry_type_array">
11120 2
11121 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011122 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011123 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011124
11125
11126 </td> <!-- entry_type -->
11127
11128 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011129 <p>The physical dimensions of the full pixel
11130array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011131 </td>
11132
11133 <td class="entry_units">
11134 </td>
11135
11136 <td class="entry_range">
11137 </td>
11138
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011139 <td class="entry_tags">
11140 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011141 <li><a href="#tag_V1">V1</a></li>
11142 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011143 </ul>
11144 </td>
11145
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011146 </tr>
11147 <tr class="entries_header">
11148 <th class="th_details" colspan="5">Details</th>
11149 </tr>
11150 <tr class="entry_cont">
11151 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011152 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011153 </td>
11154 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011155
11156
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011157 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11158 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011159
11160
11161 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011162 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011163 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011164 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011165 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011166 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011167 <span class="entry_type_container">x</span>
11168
11169 <span class="entry_type_array">
11170 2
11171 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011172 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011173
11174
11175 </td> <!-- entry_type -->
11176
11177 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011178 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011179including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011180 </td>
11181
11182 <td class="entry_units">
11183 </td>
11184
11185 <td class="entry_range">
11186 </td>
11187
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011188 <td class="entry_tags">
11189 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011190 <li><a href="#tag_DNG">DNG</a></li>
11191 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011192 </ul>
11193 </td>
11194
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011195 </tr>
11196 <tr class="entries_header">
11197 <th class="th_details" colspan="5">Details</th>
11198 </tr>
11199 <tr class="entry_cont">
11200 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011201 <p>The maximum output resolution for raw format in
11202<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a> will be equal to this size.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011203 </td>
11204 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011205
11206
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011207 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11208 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011209
11210
11211 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011212 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011213 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011214 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011215 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011216 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011217
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011218 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011219
11220
11221 </td> <!-- entry_type -->
11222
11223 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011224 <p>Maximum raw value output by
11225sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011226 </td>
11227
11228 <td class="entry_units">
11229 </td>
11230
11231 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011232 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011233 </td>
11234
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011235 <td class="entry_tags">
11236 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011237 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011238 </ul>
11239 </td>
11240
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011241 </tr>
11242 <tr class="entries_header">
11243 <th class="th_details" colspan="5">Details</th>
11244 </tr>
11245 <tr class="entry_cont">
11246 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011247 <p>Defines sensor bit depth (10-14 bits is
11248expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011249 </td>
11250 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011251
11252
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011253 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11254 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011255
11256
11257
11258
11259
11260 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011261 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011262 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011263 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011264 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011265 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011266
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011267 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011268
11269
11270 </td> <!-- entry_type -->
11271
11272 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011273 <p>Gain factor from electrons to raw units when
11274ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011275 </td>
11276
11277 <td class="entry_units">
11278 </td>
11279
11280 <td class="entry_range">
11281 </td>
11282
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011283 <td class="entry_tags">
11284 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011285 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011286 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011287 </ul>
11288 </td>
11289
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011290 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011291
11292
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011293 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11294 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011295
11296
11297 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011298 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011299 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011300 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011301 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011302 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011303 <span class="entry_type_container">x</span>
11304
11305 <span class="entry_type_array">
11306 4
11307 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011308 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011309 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011310
11311
11312 </td> <!-- entry_type -->
11313
11314 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011315 <p>A fixed black level offset for each of the
11316Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011317 </td>
11318
11319 <td class="entry_units">
11320 </td>
11321
11322 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011323 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011324 </td>
11325
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011326 <td class="entry_tags">
11327 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011328 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011329 </ul>
11330 </td>
11331
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011332 </tr>
11333 <tr class="entries_header">
11334 <th class="th_details" colspan="5">Details</th>
11335 </tr>
11336 <tr class="entry_cont">
11337 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011338 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11339tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011340 </td>
11341 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011342
11343
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011344 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11345 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011346
11347
11348 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011349 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011350 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011351 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011352 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011353 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011354 <span class="entry_type_container">x</span>
11355
11356 <span class="entry_type_array">
11357 9
11358 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011359 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011360 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011361
11362
11363 </td> <!-- entry_type -->
11364
11365 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011366 <p>Per-device calibration on top of color space
11367transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011368 </td>
11369
11370 <td class="entry_units">
11371 </td>
11372
11373 <td class="entry_range">
11374 </td>
11375
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011376 <td class="entry_tags">
11377 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011378 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011379 </ul>
11380 </td>
11381
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011382 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011383
11384
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011385 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11386 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011387
11388
11389 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011390 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011391 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011392 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011393 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011394 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011395 <span class="entry_type_container">x</span>
11396
11397 <span class="entry_type_array">
11398 9
11399 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011400 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011401 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011402
11403
11404 </td> <!-- entry_type -->
11405
11406 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011407 <p>Per-device calibration on top of color space
11408transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011409 </td>
11410
11411 <td class="entry_units">
11412 </td>
11413
11414 <td class="entry_range">
11415 </td>
11416
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011417 <td class="entry_tags">
11418 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011419 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011420 </ul>
11421 </td>
11422
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011423 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011424
11425
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011426 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11427 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011428
11429
11430 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011431 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011432 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011433 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011434 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011435 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011436 <span class="entry_type_container">x</span>
11437
11438 <span class="entry_type_array">
11439 9
11440 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011441 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011442 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011443
11444
11445 </td> <!-- entry_type -->
11446
11447 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011448 <p>Linear mapping from XYZ (D50) color space to
11449reference linear sensor color,<wbr/> for first reference
11450illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011451 </td>
11452
11453 <td class="entry_units">
11454 </td>
11455
11456 <td class="entry_range">
11457 </td>
11458
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011459 <td class="entry_tags">
11460 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011461 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011462 </ul>
11463 </td>
11464
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011465 </tr>
11466 <tr class="entries_header">
11467 <th class="th_details" colspan="5">Details</th>
11468 </tr>
11469 <tr class="entry_cont">
11470 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011471 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11472black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11473At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011474 </td>
11475 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011476
11477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011478 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11479 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011480
11481
11482 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011483 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011484 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011485 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011486 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011487 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011488 <span class="entry_type_container">x</span>
11489
11490 <span class="entry_type_array">
11491 9
11492 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011493 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011494 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011495
11496
11497 </td> <!-- entry_type -->
11498
11499 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011500 <p>Linear mapping from XYZ (D50) color space to
11501reference linear sensor color,<wbr/> for second reference
11502illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011503 </td>
11504
11505 <td class="entry_units">
11506 </td>
11507
11508 <td class="entry_range">
11509 </td>
11510
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011511 <td class="entry_tags">
11512 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011513 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011514 </ul>
11515 </td>
11516
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011517 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011518
11519
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011520 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11521 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011522
11523
11524 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011525 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011526 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011527 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011528 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011529 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011530 <span class="entry_type_container">x</span>
11531
11532 <span class="entry_type_array">
11533 9
11534 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011535 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011536 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011537
11538
11539 </td> <!-- entry_type -->
11540
11541 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011542 <p>Used by DNG for better WB
11543adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011544 </td>
11545
11546 <td class="entry_units">
11547 </td>
11548
11549 <td class="entry_range">
11550 </td>
11551
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011552 <td class="entry_tags">
11553 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011554 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011555 </ul>
11556 </td>
11557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011558 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011559
11560
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011561 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11562 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011563
11564
11565 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011566 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011567 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011568 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011569 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011570 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011571 <span class="entry_type_container">x</span>
11572
11573 <span class="entry_type_array">
11574 9
11575 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011576 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011577 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011578
11579
11580 </td> <!-- entry_type -->
11581
11582 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011583 <p>Used by DNG for better WB
11584adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011585 </td>
11586
11587 <td class="entry_units">
11588 </td>
11589
11590 <td class="entry_range">
11591 </td>
11592
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011593 <td class="entry_tags">
11594 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011595 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011596 </ul>
11597 </td>
11598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011599 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011600
11601
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011602 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11603 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011604
11605
11606 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011607 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011608 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011609 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011610 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011611 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011612
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011613 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011614
11615
11616 </td> <!-- entry_type -->
11617
11618 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011619 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011620purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011621 </td>
11622
11623 <td class="entry_units">
11624 </td>
11625
11626 <td class="entry_range">
11627 </td>
11628
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011629 <td class="entry_tags">
11630 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011631 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011632 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011633 </ul>
11634 </td>
11635
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011636 </tr>
11637 <tr class="entries_header">
11638 <th class="th_details" colspan="5">Details</th>
11639 </tr>
11640 <tr class="entry_cont">
11641 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011642 <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or
Igor Murashkin0b080452013-12-27 15:30:25 -080011643equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011644values above this,<wbr/> the gain applied can be a mix of analog and
11645digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011646 </td>
11647 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011648
11649
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011650 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11651 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011652
11653
11654 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011655 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011656 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011657 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011658 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011659 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011660 <span class="entry_type_container">x</span>
11661
11662 <span class="entry_type_array">
11663 2
11664 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011665 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011666 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011667
11668
11669 </td> <!-- entry_type -->
11670
11671 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011672 <p>Estimation of sensor noise
11673characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011674 </td>
11675
11676 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011677 var(raw pixel value) = electrons * (baseGainFactor
11678 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11679 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011680 </td>
11681
11682 <td class="entry_range">
11683 </td>
11684
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011685 <td class="entry_tags">
11686 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011687 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011688 </ul>
11689 </td>
11690
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011691 </tr>
11692 <tr class="entries_header">
11693 <th class="th_details" colspan="5">Details</th>
11694 </tr>
11695 <tr class="entry_cont">
11696 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011697 <p>A represents sensor read noise before analog
11698amplification; B represents noise from A/<wbr/>D conversion and
11699other circuits after amplification.<wbr/> Both noise sources
11700are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11701across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011702 </td>
11703 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011704
11705
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011706 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11707 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011708
11709
11710 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011711 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011712 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011713 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011714 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011715 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011716
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011717 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011718
11719
11720 </td> <!-- entry_type -->
11721
11722 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011723 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011724image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011725screen in its native orientation.<wbr/> Also defines the
11726direction of rolling shutter readout,<wbr/> which is from top
11727to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011728 </td>
11729
11730 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011731 degrees clockwise rotation,<wbr/> only multiples of
11732 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011733 </td>
11734
11735 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011736 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011737 </td>
11738
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011739 <td class="entry_tags">
11740 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011741 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011742 </ul>
11743 </td>
11744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011745 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011746
11747
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011748 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11749 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011750
11751
11752 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011753 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011754 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011755 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011756 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011757 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011758
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011759 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011760
11761 <ul class="entry_type_enum">
11762 <li>
11763 <span class="entry_type_enum_name">DAYLIGHT</span>
11764 <span class="entry_type_enum_value">1</span>
11765 </li>
11766 <li>
11767 <span class="entry_type_enum_name">FLUORESCENT</span>
11768 <span class="entry_type_enum_value">2</span>
11769 </li>
11770 <li>
11771 <span class="entry_type_enum_name">TUNGSTEN</span>
11772 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011773 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011774 </li>
11775 <li>
11776 <span class="entry_type_enum_name">FLASH</span>
11777 <span class="entry_type_enum_value">4</span>
11778 </li>
11779 <li>
11780 <span class="entry_type_enum_name">FINE_WEATHER</span>
11781 <span class="entry_type_enum_value">9</span>
11782 </li>
11783 <li>
11784 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11785 <span class="entry_type_enum_value">10</span>
11786 </li>
11787 <li>
11788 <span class="entry_type_enum_name">SHADE</span>
11789 <span class="entry_type_enum_value">11</span>
11790 </li>
11791 <li>
11792 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11793 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011794 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011795 </li>
11796 <li>
11797 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11798 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011799 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011800 </li>
11801 <li>
11802 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11803 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011804 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011805 </li>
11806 <li>
11807 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11808 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011809 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011810 </li>
11811 <li>
11812 <span class="entry_type_enum_name">STANDARD_A</span>
11813 <span class="entry_type_enum_value">17</span>
11814 </li>
11815 <li>
11816 <span class="entry_type_enum_name">STANDARD_B</span>
11817 <span class="entry_type_enum_value">18</span>
11818 </li>
11819 <li>
11820 <span class="entry_type_enum_name">STANDARD_C</span>
11821 <span class="entry_type_enum_value">19</span>
11822 </li>
11823 <li>
11824 <span class="entry_type_enum_name">D55</span>
11825 <span class="entry_type_enum_value">20</span>
11826 </li>
11827 <li>
11828 <span class="entry_type_enum_name">D65</span>
11829 <span class="entry_type_enum_value">21</span>
11830 </li>
11831 <li>
11832 <span class="entry_type_enum_name">D75</span>
11833 <span class="entry_type_enum_value">22</span>
11834 </li>
11835 <li>
11836 <span class="entry_type_enum_name">D50</span>
11837 <span class="entry_type_enum_value">23</span>
11838 </li>
11839 <li>
11840 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11841 <span class="entry_type_enum_value">24</span>
11842 </li>
11843 </ul>
11844
11845 </td> <!-- entry_type -->
11846
11847 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011848 <p>Light source used to define transform
118491</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011850 </td>
11851
11852 <td class="entry_units">
11853 </td>
11854
11855 <td class="entry_range">
11856 </td>
11857
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011858 <td class="entry_tags">
11859 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011860 <li><a href="#tag_DNG">DNG</a></li>
11861 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011862 </ul>
11863 </td>
11864
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011865 </tr>
11866 <tr class="entries_header">
11867 <th class="th_details" colspan="5">Details</th>
11868 </tr>
11869 <tr class="entry_cont">
11870 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011871 <p>[EXIF LightSource tag] Must all these be
11872supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011873 </td>
11874 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011875
11876
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011877 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11878 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011879
11880
11881 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011882 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011883 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011884 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011885 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011886 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011887
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011888 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011889
11890
11891 </td> <!-- entry_type -->
11892
11893 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011894 <p>Light source used to define transform
118952</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011896 </td>
11897
11898 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011899 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011900 </td>
11901
11902 <td class="entry_range">
11903 </td>
11904
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011905 <td class="entry_tags">
11906 </td>
11907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011908 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011909
11910
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011911 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11912 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011913
Igor Murashkina46e02f2014-01-09 17:43:38 -080011914
11915 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11916 <td class="entry_name" rowspan="1">
11917 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11918 </td>
11919 <td class="entry_type">
11920 <span class="entry_type_name">byte</span>
11921
11922 <span class="entry_type_visibility"> [public]</span>
11923
11924
11925 </td> <!-- entry_type -->
11926
11927 <td class="entry_description">
11928 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11929pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11930 </td>
11931
11932 <td class="entry_units">
11933 </td>
11934
11935 <td class="entry_range">
11936 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11937 </td>
11938
11939 <td class="entry_tags">
11940 </td>
11941
11942 </tr>
11943
11944
11945 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11946 <!-- end of entry -->
11947
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011948
11949
11950 <!-- end of kind -->
11951 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011952 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011953
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011954 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011955 <tr>
11956 <th class="th_name">Property Name</th>
11957 <th class="th_type">Type</th>
11958 <th class="th_description">Description</th>
11959 <th class="th_units">Units</th>
11960 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011961 <th class="th_tags">Tags</th>
11962 </tr>
11963 </thead>
11964
11965 <tbody>
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
11976 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011977 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011978 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011979 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011980 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011981 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011982
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011983 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011984
11985
11986 </td> <!-- entry_type -->
11987
11988 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011989 <p>Duration each pixel is exposed to
11990light.<wbr/></p>
11991<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11992duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011993 </td>
11994
11995 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011996 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011997 </td>
11998
11999 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012000 <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012001 </td>
12002
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012003 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012004 <ul class="entry_tags">
12005 <li><a href="#tag_V1">V1</a></li>
12006 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012007 </td>
12008
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012009 </tr>
12010 <tr class="entries_header">
12011 <th class="th_details" colspan="5">Details</th>
12012 </tr>
12013 <tr class="entry_cont">
12014 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012015 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012016 </td>
12017 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012018
12019
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012020 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12021 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012022
12023
12024 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012025 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012026 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012027 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012028 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012029 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012030
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012031 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012032
12033
12034 </td> <!-- entry_type -->
12035
12036 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012037 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012038start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012039 </td>
12040
12041 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012042 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012043 </td>
12044
12045 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012046 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12047android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12048is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012049 </td>
12050
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012051 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012052 <ul class="entry_tags">
12053 <li><a href="#tag_V1">V1</a></li>
12054 <li><a href="#tag_BC">BC</a></li>
12055 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012056 </td>
12057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012058 </tr>
12059 <tr class="entries_header">
12060 <th class="th_details" colspan="5">Details</th>
12061 </tr>
12062 <tr class="entry_cont">
12063 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012064 <p>The maximum frame rate that can be supported by a camera subsystem is
12065a function of many factors:</p>
12066<ul>
12067<li>Requested resolutions of output image streams</li>
12068<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12069<li>The bandwidth of the imager interface</li>
12070<li>The bandwidth of the various ISP processing blocks</li>
12071</ul>
12072<p>Since these factors can vary greatly between different ISPs and
12073sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12074restrictions with as simple a model as possible.<wbr/></p>
12075<p>The model presented has the following characteristics:</p>
12076<ul>
12077<li>The image sensor is always configured to output the smallest
12078resolution possible given the application's requested output stream
12079sizes.<wbr/> The smallest resolution is defined as being at least as large
12080as the largest requested output stream size; the camera pipeline must
12081never digitally upsample sensor data when the crop region covers the
12082whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12083resolutions are configured,<wbr/> the sensor can provide a higher frame
12084rate.<wbr/></li>
12085<li>Since any request may use any or all the currently configured
12086output streams,<wbr/> the sensor and ISP must be configured to support
12087scaling a single capture to all the streams at the same time.<wbr/> This
12088means the camera pipeline must be ready to produce the largest
12089requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12090frame rate of a given configured stream set is governed only by the
12091largest requested stream resolution.<wbr/></li>
12092<li>Using more than one output stream in a request does not affect the
12093frame duration.<wbr/></li>
12094<li>JPEG streams act like processed YUV streams in requests for which
12095they are not included; in requests in which they are directly
12096referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12097JPEG stream requires the underlying YUV data to always be ready for
12098use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12099frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12100<li>The JPEG processor can run concurrently to the rest of the camera
12101pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12102</ul>
12103<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12104is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12105These are used to determine the maximum frame rate /<wbr/> minimum frame
12106duration that is possible for a given stream configuration.<wbr/></p>
12107<p>Specifically,<wbr/> the application can use the following rules to
12108determine the minimum frame duration it can request from the HAL
12109device:</p>
12110<ol>
12111<li>Given the application's currently configured set of output
12112streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12113<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12114<code>SP</code>.<wbr/></li>
12115<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12116count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12117<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12118<li>If <code>RJ</code> is greater than <code>RP</code>,<wbr/> set <code>RP</code> equal to <code>RJ</code>.<wbr/> If there is
12119no exact match for <code>RP == RJ</code> (in particular there isn't an available
12120processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12121to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12122there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12123the processed resolution closest to <code>RJ</code>.<wbr/></li>
12124<li>If <code>RP</code> is greater than <code>RR</code>,<wbr/> set <code>RR</code> equal to <code>RP</code>.<wbr/> If there is
12125no exact match for <code>RR == RP</code> (in particular there isn't an available
12126raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12127or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12128there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12129the raw resolution closest to <code>RP</code>.<wbr/></li>
12130<li>Look up the matching minimum frame durations in the property lists
12131<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12132<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12133<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12134minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12135<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12136supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12137<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12138supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12139<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12140the application,<wbr/> then the HAL will have to delay JPEG-using requests
12141whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12142This will happen whenever a JPEG-using request starts capture less
12143than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12144supported frame duration will vary between the values calculated in
12145#6 and #7.<wbr/></li>
12146</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012147 </td>
12148 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012149
12150
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012151 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12152 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012153
12154
12155 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012156 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012157 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012158 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012159 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012160 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012161
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012162 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012163
12164
12165 </td> <!-- entry_type -->
12166
12167 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012168 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012169implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012170below 'maximum analog sensitivity'.<wbr/></p>
12171<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12172gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012173 </td>
12174
12175 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012176 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012177 </td>
12178
12179 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012180 <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012181 </td>
12182
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012183 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012184 <ul class="entry_tags">
12185 <li><a href="#tag_V1">V1</a></li>
12186 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012187 </td>
12188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012189 </tr>
12190 <tr class="entries_header">
12191 <th class="th_details" colspan="5">Details</th>
12192 </tr>
12193 <tr class="entry_cont">
12194 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012195 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012196 </td>
12197 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012198
12199
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012200 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12201 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012202
12203
12204 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012205 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012206 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012207 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012208 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012209 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012210
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012211 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012212
12213
12214 </td> <!-- entry_type -->
12215
12216 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012217 <p>Time at start of exposure of first
12218row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012219 </td>
12220
12221 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012222 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012223 </td>
12224
12225 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012226 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012227 </td>
12228
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012229 <td class="entry_tags">
12230 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012231 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012232 </ul>
12233 </td>
12234
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012235 </tr>
12236 <tr class="entries_header">
12237 <th class="th_details" colspan="5">Details</th>
12238 </tr>
12239 <tr class="entry_cont">
12240 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012241 <p>Monotonic,<wbr/> should be synced to other timestamps in
12242system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012243 </td>
12244 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012245
12246
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012247 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12248 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012249
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012250
12251 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012252 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012253 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012254 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012255 <td class="entry_type">
12256 <span class="entry_type_name">float</span>
12257
12258 <span class="entry_type_visibility"> [public]</span>
12259
12260
12261 </td> <!-- entry_type -->
12262
12263 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012264 <p>The temperature of the sensor,<wbr/> sampled at the time
12265exposure began for this frame.<wbr/></p>
12266<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12267somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012268 </td>
12269
12270 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012271 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012272 </td>
12273
12274 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012275 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012276 </td>
12277
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012278 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012279 <ul class="entry_tags">
12280 <li><a href="#tag_FULL">FULL</a></li>
12281 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012282 </td>
12283
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012284 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012285
12286
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012287 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12288 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012289
Igor Murashkina46e02f2014-01-09 17:43:38 -080012290
12291 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12292 <td class="entry_name" rowspan="5">
12293 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12294 </td>
12295 <td class="entry_type">
12296 <span class="entry_type_name entry_type_name_enum">int32</span>
12297
12298 <span class="entry_type_visibility"> [public]</span>
12299
12300 <ul class="entry_type_enum">
12301 <li>
12302 <span class="entry_type_enum_name">OFF</span>
12303 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12304device returns captures from the image sensor.<wbr/></p></span>
12305 </li>
12306 <li>
12307 <span class="entry_type_enum_name">SOLID_COLOR</span>
12308 <span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
12309respective color channel provided in
12310<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12311<p>For example:</p>
12312<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12313</code></pre>
12314<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12315<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12316</code></pre>
12317<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12318are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12319 </li>
12320 <li>
12321 <span class="entry_type_enum_name">COLOR_BARS</span>
12322 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12323<p>The vertical bars (left-to-right) are as follows:</p>
12324<ul>
12325<li>100% white</li>
12326<li>yellow</li>
12327<li>cyan</li>
12328<li>green</li>
12329<li>magenta</li>
12330<li>red</li>
12331<li>blue</li>
12332<li>black</li>
12333</ul>
12334<p>In general the image would look like the following:</p>
12335<pre><code>W Y C G M R B K
12336W Y C G M R B K
12337W Y C G M R B K
12338W Y C G M R B K
12339W Y C G M R B K
12340.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12341.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12342.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12343
12344(B = Blue,<wbr/> K = Black)
12345</code></pre>
12346<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12347When this is not possible,<wbr/> the bar size should be rounded
12348down to the nearest integer and the pattern can repeat
12349on the right side.<wbr/></p>
12350<p>Each bar's height must always take up the full sensor
12351pixel array height.<wbr/></p>
12352<p>Each pixel in this test pattern must be set to either
123530% intensity or 100% intensity.<wbr/></p></span>
12354 </li>
12355 <li>
12356 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12357 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12358each bar should start at its specified color at the top,<wbr/>
12359and fade to gray at the bottom.<wbr/></p>
12360<p>Furthermore each bar is further subdivided into a left and
12361right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12362and the right half should have a quantized gradient.<wbr/></p>
12363<p>In particular,<wbr/> the right half's should consist of blocks of the
12364same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12365<p>The least significant bits in the quantized gradient should
12366be copied from the most significant bits of the smooth gradient.<wbr/></p>
12367<p>The height of each bar should always be a multiple of 128.<wbr/>
12368When this is not the case,<wbr/> the pattern should repeat at the bottom
12369of the image.<wbr/></p></span>
12370 </li>
12371 <li>
12372 <span class="entry_type_enum_name">PN9</span>
12373 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12374generated from a PN9 512-bit sequence (typically implemented
12375in hardware with a linear feedback shift register).<wbr/></p>
12376<p>The generator should be reset at the beginning of each frame,<wbr/>
12377and thus each subsequent raw frame with this test pattern should
12378be exactly the same as the last.<wbr/></p></span>
12379 </li>
12380 <li>
12381 <span class="entry_type_enum_name">CUSTOM1</span>
12382 <span class="entry_type_enum_value">256</span>
12383 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12384available only on this camera device are at least this numeric
12385value.<wbr/></p>
12386<p>All of the custom test patterns will be static
12387(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12388 </li>
12389 </ul>
12390
12391 </td> <!-- entry_type -->
12392
12393 <td class="entry_description">
12394 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12395doing a real exposure from the camera.<wbr/></p>
12396 </td>
12397
12398 <td class="entry_units">
12399 </td>
12400
12401 <td class="entry_range">
12402 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12403<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12404 </td>
12405
12406 <td class="entry_tags">
12407 </td>
12408
12409 </tr>
12410 <tr class="entries_header">
12411 <th class="th_details" colspan="5">Details</th>
12412 </tr>
12413 <tr class="entry_cont">
12414 <td class="entry_details" colspan="5">
12415 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12416by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12417work as normal.<wbr/></p>
12418<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12419occur (and that the test pattern remain unmodified,<wbr/> since the flash
12420would not actually affect it).<wbr/></p>
12421 </td>
12422 </tr>
12423
12424 <tr class="entries_header">
12425 <th class="th_details" colspan="5">HAL Implementation Details</th>
12426 </tr>
12427 <tr class="entry_cont">
12428 <td class="entry_details" colspan="5">
12429 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12430<p>The HAL may choose to substitute test patterns from the sensor
12431with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12432indistinguishable to the ISP whether the data came from the
12433sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12434 </td>
12435 </tr>
12436
12437 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12438 <!-- end of entry -->
12439
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012440
12441
12442 <!-- end of kind -->
12443 </tbody>
12444
12445 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012446 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012447
12448
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012449 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012450
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012451 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012452 <tr>
12453 <th class="th_name">Property Name</th>
12454 <th class="th_type">Type</th>
12455 <th class="th_description">Description</th>
12456 <th class="th_units">Units</th>
12457 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012458 <th class="th_tags">Tags</th>
12459 </tr>
12460 </thead>
12461
12462 <tbody>
12463
12464
12465
12466
12467
12468
12469
12470
12471
12472
12473 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012474 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012475 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012476 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012477 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012478 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012479
Zhijun He2f86a212014-01-15 10:34:02 -080012480 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012481
12482 <ul class="entry_type_enum">
12483 <li>
12484 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012485 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012486 </li>
12487 <li>
12488 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012489 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor raw output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012490 </li>
12491 <li>
12492 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012493 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012494 </li>
12495 </ul>
12496
12497 </td> <!-- entry_type -->
12498
12499 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012500 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012501to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012502 </td>
12503
12504 <td class="entry_units">
12505 </td>
12506
12507 <td class="entry_range">
12508 </td>
12509
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012510 <td class="entry_tags">
12511 </td>
12512
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012513 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012514 <tr class="entries_header">
12515 <th class="th_details" colspan="5">Details</th>
12516 </tr>
12517 <tr class="entry_cont">
12518 <td class="entry_details" colspan="5">
12519 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12520camera device,<wbr/> and an identity lens shading map data will be provided
12521if <code><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON</code>.<wbr/> For example,<wbr/> for lens
12522shading map with size specified as <code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]</code>,<wbr/>
12523the output <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> for this case will be an identity map
12524shown below:</p>
12525<pre><code>[ 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12526 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12527 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12528 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12529 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12530 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
12531</code></pre>
12532<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12533camera device.<wbr/> Applications can request lens shading map data by setting
12534<a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> to ON,<wbr/> and then the camera device will provide
12535lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12536by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12537 </td>
12538 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012539
12540
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012541 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12542 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012543
12544
12545 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012546 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012547 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012548 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012549 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012550 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012551
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012552 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012553
12554
12555 </td> <!-- entry_type -->
12556
12557 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012558 <p>Control the amount of shading correction
12559applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012560 </td>
12561
12562 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012563 unitless: 1-10; 10 is full shading
12564 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012565 </td>
12566
12567 <td class="entry_range">
12568 </td>
12569
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012570 <td class="entry_tags">
12571 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012572 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012573 </ul>
12574 </td>
12575
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012576 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012577
12578
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012579 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12580 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012581
12582
12583
12584 <!-- end of kind -->
12585 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012586 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012587
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012588 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012589 <tr>
12590 <th class="th_name">Property Name</th>
12591 <th class="th_type">Type</th>
12592 <th class="th_description">Description</th>
12593 <th class="th_units">Units</th>
12594 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012595 <th class="th_tags">Tags</th>
12596 </tr>
12597 </thead>
12598
12599 <tbody>
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012611 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012612 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012613 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012614 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012615 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012616
Zhijun He2f86a212014-01-15 10:34:02 -080012617 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012618
12619 <ul class="entry_type_enum">
12620 <li>
12621 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012622 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012623 </li>
12624 <li>
12625 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012626 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor raw output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012627 </li>
12628 <li>
12629 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012630 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012631 </li>
12632 </ul>
12633
12634 </td> <!-- entry_type -->
12635
12636 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012637 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012638to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012639 </td>
12640
12641 <td class="entry_units">
12642 </td>
12643
12644 <td class="entry_range">
12645 </td>
12646
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012647 <td class="entry_tags">
12648 </td>
12649
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012650 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012651 <tr class="entries_header">
12652 <th class="th_details" colspan="5">Details</th>
12653 </tr>
12654 <tr class="entry_cont">
12655 <td class="entry_details" colspan="5">
12656 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12657camera device,<wbr/> and an identity lens shading map data will be provided
12658if <code><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON</code>.<wbr/> For example,<wbr/> for lens
12659shading map with size specified as <code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]</code>,<wbr/>
12660the output <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> for this case will be an identity map
12661shown below:</p>
12662<pre><code>[ 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12663 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12664 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12665 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12666 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12667 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
12668</code></pre>
12669<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12670camera device.<wbr/> Applications can request lens shading map data by setting
12671<a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> to ON,<wbr/> and then the camera device will provide
12672lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12673by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12674 </td>
12675 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012676
12677
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012678 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12679 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012680
12681
12682
12683 <!-- end of kind -->
12684 </tbody>
12685
12686 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012687 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012688
12689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012690 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012691
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012692 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012693 <tr>
12694 <th class="th_name">Property Name</th>
12695 <th class="th_type">Type</th>
12696 <th class="th_description">Description</th>
12697 <th class="th_units">Units</th>
12698 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012699 <th class="th_tags">Tags</th>
12700 </tr>
12701 </thead>
12702
12703 <tbody>
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012715 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012716 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012717 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012718 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012719 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012720
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012721 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012722
12723 <ul class="entry_type_enum">
12724 <li>
12725 <span class="entry_type_enum_name">OFF</span>
12726 </li>
12727 <li>
12728 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012729 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12730only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012731 </li>
12732 <li>
12733 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012734 <span class="entry_type_enum_notes"><p>Optional Return all face
12735metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012736 </li>
12737 </ul>
12738
12739 </td> <!-- entry_type -->
12740
12741 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012742 <p>State of the face detector
12743unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012744 </td>
12745
12746 <td class="entry_units">
12747 </td>
12748
12749 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012750 <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012751 </td>
12752
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012753 <td class="entry_tags">
12754 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012755 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012756 </ul>
12757 </td>
12758
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012759 </tr>
12760 <tr class="entries_header">
12761 <th class="th_details" colspan="5">Details</th>
12762 </tr>
12763 <tr class="entry_cont">
12764 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012765 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012766should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012767fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012768<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012769 </td>
12770 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012771
12772
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012773 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12774 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012775
12776
12777 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012778 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012779 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012780 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012781 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012782 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012783
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012784 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012785
12786 <ul class="entry_type_enum">
12787 <li>
12788 <span class="entry_type_enum_name">OFF</span>
12789 </li>
12790 <li>
12791 <span class="entry_type_enum_name">ON</span>
12792 </li>
12793 </ul>
12794
12795 </td> <!-- entry_type -->
12796
12797 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012798 <p>Operating mode for histogram
12799generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012800 </td>
12801
12802 <td class="entry_units">
12803 </td>
12804
12805 <td class="entry_range">
12806 </td>
12807
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012808 <td class="entry_tags">
12809 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012810 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012811 </ul>
12812 </td>
12813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012814 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012815
12816
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012817 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12818 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012819
12820
12821 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012822 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012823 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012824 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012825 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012826 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012827
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012828 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012829
12830 <ul class="entry_type_enum">
12831 <li>
12832 <span class="entry_type_enum_name">OFF</span>
12833 </li>
12834 <li>
12835 <span class="entry_type_enum_name">ON</span>
12836 </li>
12837 </ul>
12838
12839 </td> <!-- entry_type -->
12840
12841 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012842 <p>Operating mode for sharpness map
12843generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012844 </td>
12845
12846 <td class="entry_units">
12847 </td>
12848
12849 <td class="entry_range">
12850 </td>
12851
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012852 <td class="entry_tags">
12853 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012854 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012855 </ul>
12856 </td>
12857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012858 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012859
12860
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012861 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12862 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012863
Zhijun He69fc0ea2013-07-17 09:42:58 -070012864
12865 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012866 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012867 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012868 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012869 <td class="entry_type">
12870 <span class="entry_type_name entry_type_name_enum">byte</span>
12871
12872 <span class="entry_type_visibility"> [public]</span>
12873
12874 <ul class="entry_type_enum">
12875 <li>
12876 <span class="entry_type_enum_name">OFF</span>
12877 </li>
12878 <li>
12879 <span class="entry_type_enum_name">ON</span>
12880 </li>
12881 </ul>
12882
12883 </td> <!-- entry_type -->
12884
12885 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012886 <p>Whether the HAL needs to output the lens
12887shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012888 </td>
12889
12890 <td class="entry_units">
12891 </td>
12892
12893 <td class="entry_range">
12894 </td>
12895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012896 <td class="entry_tags">
12897 </td>
12898
12899 </tr>
12900 <tr class="entries_header">
12901 <th class="th_details" colspan="5">Details</th>
12902 </tr>
12903 <tr class="entry_cont">
12904 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012905 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012906<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> must be provided in
Igor Murashkin0b080452013-12-27 15:30:25 -080012907the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012908 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012909 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012910
12911
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012912 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12913 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012914
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012915
12916
12917 <!-- end of kind -->
12918 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012919 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012920
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012921 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012922 <tr>
12923 <th class="th_name">Property Name</th>
12924 <th class="th_type">Type</th>
12925 <th class="th_description">Description</th>
12926 <th class="th_units">Units</th>
12927 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012928 <th class="th_tags">Tags</th>
12929 </tr>
12930 </thead>
12931
12932 <tbody>
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942
12943
12944
12945 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012946 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012947 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012948 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012949 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012950 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012951 <span class="entry_type_container">x</span>
12952
12953 <span class="entry_type_array">
12954 n
12955 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012956 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012957 <div class="entry_type_notes">List of enums from android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012958
12959
12960 </td> <!-- entry_type -->
12961
12962 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012963 <p>Which face detection modes are available,<wbr/>
12964if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012965 </td>
12966
12967 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012968 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012969 OFF
12970 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012971 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012972 </td>
12973
12974 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012975 </td>
12976
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012977 <td class="entry_tags">
12978 </td>
12979
12980 </tr>
12981 <tr class="entries_header">
12982 <th class="th_details" colspan="5">Details</th>
12983 </tr>
12984 <tr class="entry_cont">
12985 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012986 <p>OFF means face detection is disabled,<wbr/> it must
12987be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012988<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012989<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12990<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012991<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012992<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12993<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012994 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012995 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012996
12997
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012998 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12999 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013000
13001
13002 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013003 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013004 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013005 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013006 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013007 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013008
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013009 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013010
13011
13012 </td> <!-- entry_type -->
13013
13014 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013015 <p>Number of histogram buckets
13016supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013017 </td>
13018
13019 <td class="entry_units">
13020 </td>
13021
13022 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013023 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013024 </td>
13025
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013026 <td class="entry_tags">
13027 </td>
13028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013029 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013030
13031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013032 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13033 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013034
13035
13036 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013037 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013038 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013039 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013040 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013041 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013042
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013043 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013044
13045
13046 </td> <!-- entry_type -->
13047
13048 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013049 <p>Maximum number of simultaneously detectable
13050faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013051 </td>
13052
13053 <td class="entry_units">
13054 </td>
13055
13056 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013057 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013058modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013059 </td>
13060
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013061 <td class="entry_tags">
13062 </td>
13063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013064 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013065
13066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013067 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13068 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013069
13070
13071 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013072 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013073 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013074 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013075 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013076 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013077
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013078 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013079
13080
13081 </td> <!-- entry_type -->
13082
13083 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013084 <p>Maximum value possible for a histogram
13085bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013086 </td>
13087
13088 <td class="entry_units">
13089 </td>
13090
13091 <td class="entry_range">
13092 </td>
13093
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013094 <td class="entry_tags">
13095 </td>
13096
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013097 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013098
13099
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013100 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13101 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013102
13103
13104 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013105 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013106 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013107 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013108 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013109 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013110
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013111 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013112
13113
13114 </td> <!-- entry_type -->
13115
13116 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013117 <p>Maximum value possible for a sharpness map
13118region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013119 </td>
13120
13121 <td class="entry_units">
13122 </td>
13123
13124 <td class="entry_range">
13125 </td>
13126
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013127 <td class="entry_tags">
13128 </td>
13129
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013130 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013131
13132
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013133 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13134 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013135
13136
13137 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013138 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013139 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013140 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013141 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013142 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013143 <span class="entry_type_container">x</span>
13144
13145 <span class="entry_type_array">
13146 2
13147 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013148 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013149 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013150
13151
13152 </td> <!-- entry_type -->
13153
13154 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013155 <p>Dimensions of the sharpness
13156map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013157 </td>
13158
13159 <td class="entry_units">
13160 </td>
13161
13162 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013163 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013164 </td>
13165
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013166 <td class="entry_tags">
13167 </td>
13168
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013169 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013170
13171
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013172 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13173 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013174
13175
13176
13177
13178
13179
13180 <!-- end of kind -->
13181 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013182 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013183
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013184 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013185 <tr>
13186 <th class="th_name">Property Name</th>
13187 <th class="th_type">Type</th>
13188 <th class="th_description">Description</th>
13189 <th class="th_units">Units</th>
13190 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013191 <th class="th_tags">Tags</th>
13192 </tr>
13193 </thead>
13194
13195 <tbody>
13196
13197
13198
13199
13200
13201
13202
13203
13204
13205
13206 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013207 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013208 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013209 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013210 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013211 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013212
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013213 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013214
13215 <ul class="entry_type_enum">
13216 <li>
13217 <span class="entry_type_enum_name">OFF</span>
13218 </li>
13219 <li>
13220 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013221 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13222only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013223 </li>
13224 <li>
13225 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013226 <span class="entry_type_enum_notes"><p>Optional Return all face
13227metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013228 </li>
13229 </ul>
13230
13231 </td> <!-- entry_type -->
13232
13233 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013234 <p>State of the face detector
13235unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013236 </td>
13237
13238 <td class="entry_units">
13239 </td>
13240
13241 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013242 <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013243 </td>
13244
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013245 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013246 <ul class="entry_tags">
13247 <li><a href="#tag_BC">BC</a></li>
13248 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013249 </td>
13250
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013251 </tr>
13252 <tr class="entries_header">
13253 <th class="th_details" colspan="5">Details</th>
13254 </tr>
13255 <tr class="entry_cont">
13256 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013257 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013258should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013259fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013260<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013261 </td>
13262 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013263
13264
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013265 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13266 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013267
13268
13269 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013270 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013271 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013272 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013273 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013274 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013275 <span class="entry_type_container">x</span>
13276
13277 <span class="entry_type_array">
13278 n
13279 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013280 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013281
13282
13283 </td> <!-- entry_type -->
13284
13285 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013286 <p>List of unique IDs for detected
13287faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013288 </td>
13289
13290 <td class="entry_units">
13291 </td>
13292
13293 <td class="entry_range">
13294 </td>
13295
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013296 <td class="entry_tags">
13297 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013298 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013299 </ul>
13300 </td>
13301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013302 </tr>
13303 <tr class="entries_header">
13304 <th class="th_details" colspan="5">Details</th>
13305 </tr>
13306 <tr class="entry_cont">
13307 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013308 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013309 </td>
13310 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013311
13312
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013313 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13314 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013315
13316
13317 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013318 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013319 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013320 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013321 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013322 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013323 <span class="entry_type_container">x</span>
13324
13325 <span class="entry_type_array">
13326 n x 6
13327 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013328 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013329 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013330
13331
13332 </td> <!-- entry_type -->
13333
13334 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013335 <p>List of landmarks for detected
13336faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013337 </td>
13338
13339 <td class="entry_units">
13340 </td>
13341
13342 <td class="entry_range">
13343 </td>
13344
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013345 <td class="entry_tags">
13346 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013347 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013348 </ul>
13349 </td>
13350
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013351 </tr>
13352 <tr class="entries_header">
13353 <th class="th_details" colspan="5">Details</th>
13354 </tr>
13355 <tr class="entry_cont">
13356 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013357 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013358 </td>
13359 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013360
13361
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013362 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13363 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013364
13365
13366 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013367 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013368 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013369 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013370 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013371 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013372 <span class="entry_type_container">x</span>
13373
13374 <span class="entry_type_array">
13375 n x 4
13376 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013377 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013378 <div class="entry_type_notes">(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax).<wbr/> (0,<wbr/>0) is top-left of active pixel area</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013379
13380
13381 </td> <!-- entry_type -->
13382
13383 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013384 <p>List of the bounding rectangles for detected
13385faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013386 </td>
13387
13388 <td class="entry_units">
13389 </td>
13390
13391 <td class="entry_range">
13392 </td>
13393
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013394 <td class="entry_tags">
13395 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013396 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013397 </ul>
13398 </td>
13399
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013400 </tr>
13401 <tr class="entries_header">
13402 <th class="th_details" colspan="5">Details</th>
13403 </tr>
13404 <tr class="entry_cont">
13405 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013406 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013407 </td>
13408 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013409
13410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013411 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13412 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013413
13414
13415 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013416 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013417 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013418 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013419 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013420 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013421 <span class="entry_type_container">x</span>
13422
13423 <span class="entry_type_array">
13424 n
13425 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013426 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013427
13428
13429 </td> <!-- entry_type -->
13430
13431 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013432 <p>List of the face confidence scores for
13433detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013434 </td>
13435
13436 <td class="entry_units">
13437 </td>
13438
13439 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013440 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013441 </td>
13442
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013443 <td class="entry_tags">
13444 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013445 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013446 </ul>
13447 </td>
13448
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013449 </tr>
13450 <tr class="entries_header">
13451 <th class="th_details" colspan="5">Details</th>
13452 </tr>
13453 <tr class="entry_cont">
13454 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013455 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13456meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013457 </td>
13458 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013459
13460
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013461 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13462 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013463
13464
13465 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013466 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013467 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013468 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013469 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013470 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013471 <span class="entry_type_container">x</span>
13472
13473 <span class="entry_type_array">
13474 n x 3
13475 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013476 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013477 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013478
13479
13480 </td> <!-- entry_type -->
13481
13482 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013483 <p>A 3-channel histogram based on the raw
13484sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013485 </td>
13486
13487 <td class="entry_units">
13488 </td>
13489
13490 <td class="entry_range">
13491 </td>
13492
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013493 <td class="entry_tags">
13494 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013495 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013496 </ul>
13497 </td>
13498
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013499 </tr>
13500 <tr class="entries_header">
13501 <th class="th_details" colspan="5">Details</th>
13502 </tr>
13503 <tr class="entry_cont">
13504 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013505 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013506(with w = <a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>) of [ k * w/<wbr/>N,<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -080013507(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13508supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013509 </td>
13510 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013511
13512
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013513 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13514 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013515
13516
13517 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013518 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013519 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013520 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013521 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013522 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013523
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013524 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013525
13526 <ul class="entry_type_enum">
13527 <li>
13528 <span class="entry_type_enum_name">OFF</span>
13529 </li>
13530 <li>
13531 <span class="entry_type_enum_name">ON</span>
13532 </li>
13533 </ul>
13534
13535 </td> <!-- entry_type -->
13536
13537 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013538 <p>Operating mode for histogram
13539generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013540 </td>
13541
13542 <td class="entry_units">
13543 </td>
13544
13545 <td class="entry_range">
13546 </td>
13547
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013548 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013549 <ul class="entry_tags">
13550 <li><a href="#tag_V1">V1</a></li>
13551 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013552 </td>
13553
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013554 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013555
13556
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013557 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13558 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013559
13560
13561 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013562 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013563 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013564 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013565 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013566 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013567 <span class="entry_type_container">x</span>
13568
13569 <span class="entry_type_array">
13570 n x m x 3
13571 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013572 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013573 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013574
13575
13576 </td> <!-- entry_type -->
13577
13578 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013579 <p>A 3-channel sharpness map,<wbr/> based on the raw
13580sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013581 </td>
13582
13583 <td class="entry_units">
13584 </td>
13585
13586 <td class="entry_range">
13587 </td>
13588
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013589 <td class="entry_tags">
13590 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013591 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013592 </ul>
13593 </td>
13594
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013595 </tr>
13596 <tr class="entries_header">
13597 <th class="th_details" colspan="5">Details</th>
13598 </tr>
13599 <tr class="entry_cont">
13600 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013601 <p>If only a monochrome sharpness map is supported,<wbr/>
13602all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013603 </td>
13604 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013605
13606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013607 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13608 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013609
13610
13611 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013612 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013613 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013614 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013615 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013616 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013617
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013618 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013619
13620 <ul class="entry_type_enum">
13621 <li>
13622 <span class="entry_type_enum_name">OFF</span>
13623 </li>
13624 <li>
13625 <span class="entry_type_enum_name">ON</span>
13626 </li>
13627 </ul>
13628
13629 </td> <!-- entry_type -->
13630
13631 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013632 <p>Operating mode for sharpness map
13633generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013634 </td>
13635
13636 <td class="entry_units">
13637 </td>
13638
13639 <td class="entry_range">
13640 </td>
13641
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013642 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013643 <ul class="entry_tags">
13644 <li><a href="#tag_V1">V1</a></li>
13645 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013646 </td>
13647
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013648 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013649
13650
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013651 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13652 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013653
Zhijun He69fc0ea2013-07-17 09:42:58 -070013654
13655 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013656 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013657 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013658 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013659 <td class="entry_type">
13660 <span class="entry_type_name">float</span>
13661 <span class="entry_type_container">x</span>
13662
13663 <span class="entry_type_array">
13664 4 x n x m
13665 </span>
13666 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013667 <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013668
13669
13670 </td> <!-- entry_type -->
13671
13672 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013673 <p>The shading map is a low-resolution floating-point map
13674that lists the coefficients used to correct for vignetting,<wbr/> for each
13675Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013676 </td>
13677
13678 <td class="entry_units">
13679 </td>
13680
13681 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013682 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013683 </td>
13684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013685 <td class="entry_tags">
13686 </td>
13687
13688 </tr>
13689 <tr class="entries_header">
13690 <th class="th_details" colspan="5">Details</th>
13691 </tr>
13692 <tr class="entry_cont">
13693 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013694 <p>The least shaded section of the image should have a gain factor
13695of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013696<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
Igor Murashkin0b080452013-12-27 15:30:25 -080013697must take into account the colorCorrection settings.<wbr/></p>
13698<p>The shading map is for the entire active pixel array,<wbr/> and is not
13699affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013700entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013701pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13702map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13703(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13704pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13705The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13706<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13707channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13708The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013709is provided in the camera static metadata by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013710<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13711and must be smaller than 64x64.<wbr/></p>
13712<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013713<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13714<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013715[ 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/>
13716 1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>3,<wbr/>
13717 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/>
13718 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>2,<wbr/>
13719 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/>
13720 1.<wbr/>2,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3 ]
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013721</code></pre>
13722<p>The low-resolution scaling map images for each channel are
13723(displayed using nearest-neighbor interpolation):</p>
13724<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13725<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13726<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13727<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013728<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013729image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013730<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013731 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013732 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013733
13734
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013735 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13736 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013737
13738
13739 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013740 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013741 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013742 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013743 <td class="entry_type">
13744 <span class="entry_type_name">float</span>
13745 <span class="entry_type_container">x</span>
13746
13747 <span class="entry_type_array">
13748 4
13749 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013750 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013751 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013752
13753
13754 </td> <!-- entry_type -->
13755
13756 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013757 <p>The best-fit color channel gains calculated
13758by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013759 </td>
13760
13761 <td class="entry_units">
13762 </td>
13763
13764 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013765 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013766 </td>
13767
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013768 <td class="entry_tags">
13769 </td>
13770
13771 </tr>
13772 <tr class="entries_header">
13773 <th class="th_details" colspan="5">Details</th>
13774 </tr>
13775 <tr class="entry_cont">
13776 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013777 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013778since statistics processing on data from a new frame
13779typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013780applied to that frame.<wbr/></p>
13781<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013782see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013783<p>This value should always be calculated by the AWB block,<wbr/>
13784regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013785 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013786 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013787
13788
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013789 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13790 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013791
13792
13793 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013794 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013795 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013796 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013797 <td class="entry_type">
13798 <span class="entry_type_name">rational</span>
13799 <span class="entry_type_container">x</span>
13800
13801 <span class="entry_type_array">
13802 3 x 3
13803 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013804 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013805 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013806
13807
13808 </td> <!-- entry_type -->
13809
13810 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013811 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013812calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013813output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013814 </td>
13815
13816 <td class="entry_units">
13817 </td>
13818
13819 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013820 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013821 </td>
13822
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013823 <td class="entry_tags">
13824 </td>
13825
13826 </tr>
13827 <tr class="entries_header">
13828 <th class="th_details" colspan="5">Details</th>
13829 </tr>
13830 <tr class="entry_cont">
13831 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013832 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013833statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013834for the next frame.<wbr/> These are the values the HAL believes
13835are the best fit for the current output frame.<wbr/> This may
13836be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013837statistics processing on data from a new frame typically
13838completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013839that frame.<wbr/></p>
13840<p>These estimates must be provided for all frames,<wbr/> even if
13841capture settings and color transforms are set by the application.<wbr/></p>
13842<p>This value should always be calculated by the AWB block,<wbr/>
13843regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013844 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013845 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013846
13847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013848 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13849 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013850
13851
13852 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013853 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013854 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013855 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013856 <td class="entry_type">
13857 <span class="entry_type_name entry_type_name_enum">byte</span>
13858
13859 <span class="entry_type_visibility"> [public]</span>
13860
13861 <ul class="entry_type_enum">
13862 <li>
13863 <span class="entry_type_enum_name">NONE</span>
13864 </li>
13865 <li>
13866 <span class="entry_type_enum_name">50HZ</span>
13867 </li>
13868 <li>
13869 <span class="entry_type_enum_name">60HZ</span>
13870 </li>
13871 </ul>
13872
13873 </td> <!-- entry_type -->
13874
13875 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080013876 <p>The camera device estimated scene illumination lighting
13877frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013878 </td>
13879
13880 <td class="entry_units">
13881 </td>
13882
13883 <td class="entry_range">
13884 </td>
13885
Zhijun He69fc0ea2013-07-17 09:42:58 -070013886 <td class="entry_tags">
13887 </td>
13888
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013889 </tr>
13890 <tr class="entries_header">
13891 <th class="th_details" colspan="5">Details</th>
13892 </tr>
13893 <tr class="entry_cont">
13894 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080013895 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
13896that depends on the local utility power standards.<wbr/> This flicker must be
13897accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
13898The camera device uses this entry to tell the application what the scene
13899illuminant frequency is.<wbr/></p>
13900<p>When manual exposure control is enabled
13901(<code><a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> == OFF</code> or <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == OFF</code>),<wbr/>
13902the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
13903application can ensure it selects exposure times that do not cause banding
13904issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
13905for more details.<wbr/></p>
13906<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013907 </td>
13908 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013909
13910
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013911 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13912 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013913
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013914
13915
13916 <!-- end of kind -->
13917 </tbody>
13918
13919 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013920 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013921
13922
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013923 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013924
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013925 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013926 <tr>
13927 <th class="th_name">Property Name</th>
13928 <th class="th_type">Type</th>
13929 <th class="th_description">Description</th>
13930 <th class="th_units">Units</th>
13931 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013932 <th class="th_tags">Tags</th>
13933 </tr>
13934 </thead>
13935
13936 <tbody>
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013948 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013949 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013950 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013951 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013952 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013953 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013954
Zhijun He704d1282013-08-19 15:26:33 -070013955 <span class="entry_type_array">
13956 n x 2
13957 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013958 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013959 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013960
13961
13962 </td> <!-- entry_type -->
13963
13964 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013965 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13966channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13967CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013968 </td>
13969
13970 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013971 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013972 </td>
13973
13974 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013975 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013976 </td>
13977
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013978 <td class="entry_tags">
13979 </td>
13980
13981 </tr>
13982 <tr class="entries_header">
13983 <th class="th_details" colspan="5">Details</th>
13984 </tr>
13985 <tr class="entry_cont">
13986 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013987 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013988 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013989 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013990
13991
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013992 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13993 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013994
13995
13996 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013997 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013998 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013999 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014000 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014001 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014002 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014003
Zhijun He704d1282013-08-19 15:26:33 -070014004 <span class="entry_type_array">
14005 n x 2
14006 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014007 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014008 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014009
14010
14011 </td> <!-- entry_type -->
14012
14013 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014014 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14015channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14016CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014017 </td>
14018
14019 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014020 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014021 </td>
14022
14023 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014024 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014025 </td>
14026
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014027 <td class="entry_tags">
14028 </td>
14029
14030 </tr>
14031 <tr class="entries_header">
14032 <th class="th_details" colspan="5">Details</th>
14033 </tr>
14034 <tr class="entry_cont">
14035 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014036 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014037 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014038 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014039
14040
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014041 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14042 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014043
14044
14045 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014046 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014047 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014048 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014049 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014050 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014051 <span class="entry_type_container">x</span>
14052
14053 <span class="entry_type_array">
14054 n x 2
14055 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014056 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014057 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014058
14059
14060 </td> <!-- entry_type -->
14061
14062 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014063 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14064channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14065CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014066 </td>
14067
14068 <td class="entry_units">
14069 </td>
14070
14071 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014072 <p>0-1 on both input and output coordinates,<wbr/> normalized
14073as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014074 </td>
14075
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014076 <td class="entry_tags">
14077 <ul class="entry_tags">
14078 <li><a href="#tag_DNG">DNG</a></li>
14079 </ul>
14080 </td>
14081
14082 </tr>
14083 <tr class="entries_header">
14084 <th class="th_details" colspan="5">Details</th>
14085 </tr>
14086 <tr class="entry_cont">
14087 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014088 <p>Each channel's curve is defined by an array of control points:</p>
14089<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14090 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
140912 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14092<p>These are sorted in order of increasing <code>Pin</code>; it is always
14093guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14094define a complete mapping.<wbr/> For input values between control points,<wbr/>
14095the camera device must linearly interpolate between the control
14096points.<wbr/></p>
14097<p>Each curve can have an independent number of points,<wbr/> and the number
14098of points can be less than max (that is,<wbr/> the request doesn't have to
14099always provide a curve with number of points equivalent to
14100<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14101<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14102only specify the red channel and the precision is limited to 4
14103digits,<wbr/> for conciseness.<wbr/></p>
14104<p>Linear mapping:</p>
14105<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
14106</code></pre>
14107<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14108<p>Invert mapping:</p>
14109<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 0 ]
14110</code></pre>
14111<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14112<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14113<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14114 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2920,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4002,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4812,<wbr/>
14115 0.<wbr/>2667,<wbr/> 0.<wbr/>5484,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6069,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6594,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7072,<wbr/>
14116 0.<wbr/>5333,<wbr/> 0.<wbr/>7515,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7928,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8317,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8685,<wbr/>
14117 0.<wbr/>8000,<wbr/> 0.<wbr/>9035,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9370,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9691,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
14118</code></pre>
14119<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14120<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14121<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14122 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
14123 0.<wbr/>2667,<wbr/> 0.<wbr/>5532,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6125,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6652,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7130,<wbr/>
14124 0.<wbr/>5333,<wbr/> 0.<wbr/>7569,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7977,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8360,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8721,<wbr/>
14125 0.<wbr/>8000,<wbr/> 0.<wbr/>9063,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9389,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9701,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
14126</code></pre>
14127<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014128 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014129 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014130
Igor Murashkin94e06c42014-01-13 16:51:17 -080014131 <tr class="entries_header">
14132 <th class="th_details" colspan="5">HAL Implementation Details</th>
14133 </tr>
14134 <tr class="entry_cont">
14135 <td class="entry_details" colspan="5">
14136 <p>For good quality of mapping,<wbr/> at least 128 control points are
14137preferred.<wbr/></p>
14138<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14139control points used as are available.<wbr/></p>
14140 </td>
14141 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014142
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014143 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14144 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014145
14146
14147 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014148 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014149 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014150 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014151 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014152 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014153
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014154 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014155
14156 <ul class="entry_type_enum">
14157 <li>
14158 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014159 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014160android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14161<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14162for applying the tonemapping curve specified by
14163<a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>,<wbr/> or
14164<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14165<p>Must not slow down frame rate relative to raw
14166sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014167 </li>
14168 <li>
14169 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014170 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14171<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014172 </li>
14173 <li>
14174 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014175 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14176<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014177 </li>
14178 </ul>
14179
14180 </td> <!-- entry_type -->
14181
14182 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014183 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014184 </td>
14185
14186 <td class="entry_units">
14187 </td>
14188
14189 <td class="entry_range">
14190 </td>
14191
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014192 <td class="entry_tags">
14193 </td>
14194
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014195 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014196 <tr class="entries_header">
14197 <th class="th_details" colspan="5">Details</th>
14198 </tr>
14199 <tr class="entry_cont">
14200 <td class="entry_details" colspan="5">
14201 <p>When switching to an application-defined contrast curve by setting
14202<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14203per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14204mapping from input high-bit-depth pixel value to the output
14205low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14206and output may change depending on the camera pipeline,<wbr/> the values
14207are specified by normalized floating-point numbers.<wbr/></p>
14208<p>More-complex color mapping operations such as 3D color look-up
14209tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14210transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14211CONTRAST_<wbr/>CURVE.<wbr/></p>
14212<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14213emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14214<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>,<wbr/> and <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>.<wbr/>
14215These values are always available,<wbr/> and as close as possible to the
14216actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14217<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14218provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14219roughly the same.<wbr/></p>
14220 </td>
14221 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014222
14223
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014224 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14225 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014226
14227
14228
14229 <!-- end of kind -->
14230 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014231 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014232
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014233 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014234 <tr>
14235 <th class="th_name">Property Name</th>
14236 <th class="th_type">Type</th>
14237 <th class="th_description">Description</th>
14238 <th class="th_units">Units</th>
14239 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014240 <th class="th_tags">Tags</th>
14241 </tr>
14242 </thead>
14243
14244 <tbody>
14245
14246
14247
14248
14249
14250
14251
14252
14253
14254
14255 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014256 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014257 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014258 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014259 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014260 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014261
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014262 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014263
14264
14265 </td> <!-- entry_type -->
14266
14267 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014268 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014269tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14270<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>,<wbr/> or <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014271 </td>
14272
14273 <td class="entry_units">
14274 </td>
14275
14276 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014277 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014278 </td>
14279
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014280 <td class="entry_tags">
14281 </td>
14282
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014283 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014284 <tr class="entries_header">
14285 <th class="th_details" colspan="5">Details</th>
14286 </tr>
14287 <tr class="entry_cont">
14288 <td class="entry_details" colspan="5">
14289 <p>If the actual number of points provided by the application (in
14290android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14291resample the curve to its internal representation,<wbr/> using linear
14292interpolation.<wbr/></p>
14293<p>The output curves in the result metadata may have a different number
14294of points than the input curves,<wbr/> and will represent the actual
14295hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14296 </td>
14297 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014298
Igor Murashkin94e06c42014-01-13 16:51:17 -080014299 <tr class="entries_header">
14300 <th class="th_details" colspan="5">HAL Implementation Details</th>
14301 </tr>
14302 <tr class="entry_cont">
14303 <td class="entry_details" colspan="5">
14304 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14305 </td>
14306 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014307
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014308 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14309 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014310
14311
14312
14313 <!-- end of kind -->
14314 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014315 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014316
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014317 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014318 <tr>
14319 <th class="th_name">Property Name</th>
14320 <th class="th_type">Type</th>
14321 <th class="th_description">Description</th>
14322 <th class="th_units">Units</th>
14323 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014324 <th class="th_tags">Tags</th>
14325 </tr>
14326 </thead>
14327
14328 <tbody>
14329
14330
14331
14332
14333
14334
14335
14336
14337
14338
14339 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014340 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014341 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014342 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014343 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014344 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014345 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014346
Zhijun He704d1282013-08-19 15:26:33 -070014347 <span class="entry_type_array">
14348 n x 2
14349 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014350 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014351 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014352
14353
14354 </td> <!-- entry_type -->
14355
14356 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014357 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14358channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14359CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014360 </td>
14361
14362 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014363 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014364 </td>
14365
14366 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014367 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014368 </td>
14369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014370 <td class="entry_tags">
14371 </td>
14372
14373 </tr>
14374 <tr class="entries_header">
14375 <th class="th_details" colspan="5">Details</th>
14376 </tr>
14377 <tr class="entry_cont">
14378 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014379 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014380 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014381 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014382
14383
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014384 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14385 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014386
14387
14388 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014389 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014390 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014391 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014392 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014393 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014394 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014395
Zhijun He704d1282013-08-19 15:26:33 -070014396 <span class="entry_type_array">
14397 n x 2
14398 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014399 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014400 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014401
14402
14403 </td> <!-- entry_type -->
14404
14405 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014406 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14407channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14408CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014409 </td>
14410
14411 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014412 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014413 </td>
14414
14415 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014416 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014417 </td>
14418
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014419 <td class="entry_tags">
14420 </td>
14421
14422 </tr>
14423 <tr class="entries_header">
14424 <th class="th_details" colspan="5">Details</th>
14425 </tr>
14426 <tr class="entry_cont">
14427 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014428 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014429 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014430 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014431
14432
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014433 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14434 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014435
14436
14437 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014438 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014439 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014440 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014441 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014442 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014443 <span class="entry_type_container">x</span>
14444
14445 <span class="entry_type_array">
14446 n x 2
14447 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014448 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014449 <div class="entry_type_notes">1D array of float pairs (P_<wbr/>IN,<wbr/> P_<wbr/>OUT).<wbr/> The maximum number of pairs is specified by android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014450
14451
14452 </td> <!-- entry_type -->
14453
14454 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014455 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14456channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14457CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014458 </td>
14459
14460 <td class="entry_units">
14461 </td>
14462
14463 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014464 <p>0-1 on both input and output coordinates,<wbr/> normalized
14465as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014466 </td>
14467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014468 <td class="entry_tags">
14469 <ul class="entry_tags">
14470 <li><a href="#tag_DNG">DNG</a></li>
14471 </ul>
14472 </td>
14473
14474 </tr>
14475 <tr class="entries_header">
14476 <th class="th_details" colspan="5">Details</th>
14477 </tr>
14478 <tr class="entry_cont">
14479 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014480 <p>Each channel's curve is defined by an array of control points:</p>
14481<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14482 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
144832 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14484<p>These are sorted in order of increasing <code>Pin</code>; it is always
14485guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14486define a complete mapping.<wbr/> For input values between control points,<wbr/>
14487the camera device must linearly interpolate between the control
14488points.<wbr/></p>
14489<p>Each curve can have an independent number of points,<wbr/> and the number
14490of points can be less than max (that is,<wbr/> the request doesn't have to
14491always provide a curve with number of points equivalent to
14492<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14493<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14494only specify the red channel and the precision is limited to 4
14495digits,<wbr/> for conciseness.<wbr/></p>
14496<p>Linear mapping:</p>
14497<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
14498</code></pre>
14499<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14500<p>Invert mapping:</p>
14501<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 0 ]
14502</code></pre>
14503<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14504<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14505<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14506 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2920,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4002,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4812,<wbr/>
14507 0.<wbr/>2667,<wbr/> 0.<wbr/>5484,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6069,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6594,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7072,<wbr/>
14508 0.<wbr/>5333,<wbr/> 0.<wbr/>7515,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7928,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8317,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8685,<wbr/>
14509 0.<wbr/>8000,<wbr/> 0.<wbr/>9035,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9370,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9691,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
14510</code></pre>
14511<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14512<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14513<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14514 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
14515 0.<wbr/>2667,<wbr/> 0.<wbr/>5532,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6125,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6652,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7130,<wbr/>
14516 0.<wbr/>5333,<wbr/> 0.<wbr/>7569,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7977,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8360,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8721,<wbr/>
14517 0.<wbr/>8000,<wbr/> 0.<wbr/>9063,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9389,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9701,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
14518</code></pre>
14519<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014520 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014521 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014522
Igor Murashkin94e06c42014-01-13 16:51:17 -080014523 <tr class="entries_header">
14524 <th class="th_details" colspan="5">HAL Implementation Details</th>
14525 </tr>
14526 <tr class="entry_cont">
14527 <td class="entry_details" colspan="5">
14528 <p>For good quality of mapping,<wbr/> at least 128 control points are
14529preferred.<wbr/></p>
14530<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14531control points used as are available.<wbr/></p>
14532 </td>
14533 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014535 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14536 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014537
14538
14539 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014540 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014541 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014542 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014543 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014544 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014545
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014546 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014547
14548 <ul class="entry_type_enum">
14549 <li>
14550 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014551 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014552android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14553<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14554for applying the tonemapping curve specified by
14555<a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>,<wbr/> or
14556<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14557<p>Must not slow down frame rate relative to raw
14558sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014559 </li>
14560 <li>
14561 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014562 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14563<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014564 </li>
14565 <li>
14566 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014567 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14568<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014569 </li>
14570 </ul>
14571
14572 </td> <!-- entry_type -->
14573
14574 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014575 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014576 </td>
14577
14578 <td class="entry_units">
14579 </td>
14580
14581 <td class="entry_range">
14582 </td>
14583
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014584 <td class="entry_tags">
14585 </td>
14586
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014587 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014588 <tr class="entries_header">
14589 <th class="th_details" colspan="5">Details</th>
14590 </tr>
14591 <tr class="entry_cont">
14592 <td class="entry_details" colspan="5">
14593 <p>When switching to an application-defined contrast curve by setting
14594<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14595per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14596mapping from input high-bit-depth pixel value to the output
14597low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14598and output may change depending on the camera pipeline,<wbr/> the values
14599are specified by normalized floating-point numbers.<wbr/></p>
14600<p>More-complex color mapping operations such as 3D color look-up
14601tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14602transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14603CONTRAST_<wbr/>CURVE.<wbr/></p>
14604<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14605emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14606<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>,<wbr/> and <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>.<wbr/>
14607These values are always available,<wbr/> and as close as possible to the
14608actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14609<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14610provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14611roughly the same.<wbr/></p>
14612 </td>
14613 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014614
14615
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014616 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14617 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014618
14619
14620
14621 <!-- end of kind -->
14622 </tbody>
14623
14624 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014625 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014626
14627
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014628 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014629
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014630 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014631 <tr>
14632 <th class="th_name">Property Name</th>
14633 <th class="th_type">Type</th>
14634 <th class="th_description">Description</th>
14635 <th class="th_units">Units</th>
14636 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014637 <th class="th_tags">Tags</th>
14638 </tr>
14639 </thead>
14640
14641 <tbody>
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014653 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014654 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014655 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014656 <td class="entry_type">
14657 <span class="entry_type_name entry_type_name_enum">byte</span>
14658
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014659 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014660
14661 <ul class="entry_type_enum">
14662 <li>
14663 <span class="entry_type_enum_name">OFF</span>
14664 </li>
14665 <li>
14666 <span class="entry_type_enum_name">ON</span>
14667 </li>
14668 </ul>
14669
14670 </td> <!-- entry_type -->
14671
14672 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014673 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014674that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014675Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014676disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014677any untrusted applications.<wbr/></p>
14678<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14679transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14680data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014681<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014682doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014683 </td>
14684
14685 <td class="entry_units">
14686 </td>
14687
14688 <td class="entry_range">
14689 </td>
14690
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014691 <td class="entry_tags">
14692 </td>
14693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014694 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014695
14696
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014697 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14698 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014699
14700
14701
14702 <!-- end of kind -->
14703 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014704 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014705
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014706 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014707 <tr>
14708 <th class="th_name">Property Name</th>
14709 <th class="th_type">Type</th>
14710 <th class="th_description">Description</th>
14711 <th class="th_units">Units</th>
14712 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014713 <th class="th_tags">Tags</th>
14714 </tr>
14715 </thead>
14716
14717 <tbody>
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014729 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014730 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014731 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014732 <td class="entry_type">
14733 <span class="entry_type_name entry_type_name_enum">byte</span>
14734
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014735 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014736
14737 <ul class="entry_type_enum">
14738 <li>
14739 <span class="entry_type_enum_name">OFF</span>
14740 </li>
14741 <li>
14742 <span class="entry_type_enum_name">ON</span>
14743 </li>
14744 </ul>
14745
14746 </td> <!-- entry_type -->
14747
14748 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014749 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014750that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014751Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014752disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014753any untrusted applications.<wbr/></p>
14754<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14755transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14756data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014757<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014758doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014759 </td>
14760
14761 <td class="entry_units">
14762 </td>
14763
14764 <td class="entry_range">
14765 </td>
14766
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014767 <td class="entry_tags">
14768 </td>
14769
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014770 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014771
14772
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014773 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14774 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014775
14776
14777
14778 <!-- end of kind -->
14779 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014780 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014781
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014782 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014783 <tr>
14784 <th class="th_name">Property Name</th>
14785 <th class="th_type">Type</th>
14786 <th class="th_description">Description</th>
14787 <th class="th_units">Units</th>
14788 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014789 <th class="th_tags">Tags</th>
14790 </tr>
14791 </thead>
14792
14793 <tbody>
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014805 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014806 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014807 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014808 <td class="entry_type">
14809 <span class="entry_type_name entry_type_name_enum">byte</span>
14810 <span class="entry_type_container">x</span>
14811
14812 <span class="entry_type_array">
14813 n
14814 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014815 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014816
14817 <ul class="entry_type_enum">
14818 <li>
14819 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014820 <span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used</p></span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014821 </li>
14822 </ul>
14823
14824 </td> <!-- entry_type -->
14825
14826 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014827 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014828 </td>
14829
14830 <td class="entry_units">
14831 </td>
14832
14833 <td class="entry_range">
14834 </td>
14835
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014836 <td class="entry_tags">
14837 </td>
14838
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014839 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014840
14841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014842 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14843 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014844
14845
14846
14847 <!-- end of kind -->
14848 </tbody>
14849
14850 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014851 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014852
14853
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014854 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014855
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014856 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014857 <tr>
14858 <th class="th_name">Property Name</th>
14859 <th class="th_type">Type</th>
14860 <th class="th_description">Description</th>
14861 <th class="th_units">Units</th>
14862 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014863 <th class="th_tags">Tags</th>
14864 </tr>
14865 </thead>
14866
14867 <tbody>
14868
14869
14870
14871
14872
14873
14874
14875
14876
14877
14878 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014879 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014880 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014881 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014882 <td class="entry_type">
14883 <span class="entry_type_name entry_type_name_enum">byte</span>
14884
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014885 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014886
14887 <ul class="entry_type_enum">
14888 <li>
14889 <span class="entry_type_enum_name">LIMITED</span>
14890 </li>
14891 <li>
14892 <span class="entry_type_enum_name">FULL</span>
14893 </li>
14894 </ul>
14895
14896 </td> <!-- entry_type -->
14897
14898 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014899 <p>The camera 3 HAL device can implement one of two possible
14900operational modes; limited and full.<wbr/> Full support is
14901expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014902hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014903camera HAL device v1 implementation,<wbr/> and is expected from
14904older or inexpensive devices.<wbr/> Full is a strict superset of
14905limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14906<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014907 </td>
14908
14909 <td class="entry_units">
14910 </td>
14911
14912 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014913 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014914 </td>
14915
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014916 <td class="entry_tags">
14917 </td>
14918
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014919 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014920
14921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014922 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14923 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014924
14925
14926
14927 <!-- end of kind -->
14928 </tbody>
14929
14930 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014931 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014932
14933
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014934 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014935
14936 <thead class="entries_header">
14937 <tr>
14938 <th class="th_name">Property Name</th>
14939 <th class="th_type">Type</th>
14940 <th class="th_description">Description</th>
14941 <th class="th_units">Units</th>
14942 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014943 <th class="th_tags">Tags</th>
14944 </tr>
14945 </thead>
14946
14947 <tbody>
14948
14949
14950
14951
14952
14953
14954
14955
14956
14957
14958 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014959 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014960 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014961 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014962 <td class="entry_type">
14963 <span class="entry_type_name entry_type_name_enum">byte</span>
14964
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014965 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014966
14967 <ul class="entry_type_enum">
14968 <li>
14969 <span class="entry_type_enum_name">OFF</span>
14970 </li>
14971 <li>
14972 <span class="entry_type_enum_name">ON</span>
14973 </li>
14974 </ul>
14975
14976 </td> <!-- entry_type -->
14977
14978 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014979 <p>Whether black-level compensation is locked
14980to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014981 </td>
14982
14983 <td class="entry_units">
14984 </td>
14985
14986 <td class="entry_range">
14987 </td>
14988
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014989 <td class="entry_tags">
14990 <ul class="entry_tags">
14991 <li><a href="#tag_HAL2">HAL2</a></li>
14992 </ul>
14993 </td>
14994
14995 </tr>
14996 <tr class="entries_header">
14997 <th class="th_details" colspan="5">Details</th>
14998 </tr>
14999 <tr class="entry_cont">
15000 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015001 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015002compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080015003OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015004<p>Since changes to certain capture parameters (such as
15005exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080015006compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015007the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080015008metadata.<wbr/></p>
15009<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015010<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015011<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15012<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15013<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15014<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15015<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15016<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015017</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015018<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080015019device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015020result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015021<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015022<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15023<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15024<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15025<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15026<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15027<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015028</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015029<p>This indicates to the application that on frame 4,<wbr/> black
15030levels were reset due to exposure value changes,<wbr/> and pixel
15031values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015032<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080015033possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015034other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080015035or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015036 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015037 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015038
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015039 <tr class="entries_header">
15040 <th class="th_details" colspan="5">HAL Implementation Details</th>
15041 </tr>
15042 <tr class="entry_cont">
15043 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015044 <p>If for some reason black level locking is no longer possible
15045(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15046black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015047override this request (and it must report 'OFF' when this
15048does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015049possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015050 </td>
15051 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015052
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015053 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15054 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015055
15056
15057
15058 <!-- end of kind -->
15059 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015060 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015061
15062 <thead class="entries_header">
15063 <tr>
15064 <th class="th_name">Property Name</th>
15065 <th class="th_type">Type</th>
15066 <th class="th_description">Description</th>
15067 <th class="th_units">Units</th>
15068 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015069 <th class="th_tags">Tags</th>
15070 </tr>
15071 </thead>
15072
15073 <tbody>
15074
15075
15076
15077
15078
15079
15080
15081
15082
15083
15084 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015085 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015086 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015087 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015088 <td class="entry_type">
15089 <span class="entry_type_name entry_type_name_enum">byte</span>
15090
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015091 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015092
15093 <ul class="entry_type_enum">
15094 <li>
15095 <span class="entry_type_enum_name">OFF</span>
15096 </li>
15097 <li>
15098 <span class="entry_type_enum_name">ON</span>
15099 </li>
15100 </ul>
15101
15102 </td> <!-- entry_type -->
15103
15104 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015105 <p>Whether black-level compensation is locked
15106to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015107 </td>
15108
15109 <td class="entry_units">
15110 </td>
15111
15112 <td class="entry_range">
15113 </td>
15114
Zhijun He69fc0ea2013-07-17 09:42:58 -070015115 <td class="entry_tags">
15116 <ul class="entry_tags">
15117 <li><a href="#tag_HAL2">HAL2</a></li>
15118 </ul>
15119 </td>
15120
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015121 </tr>
15122 <tr class="entries_header">
15123 <th class="th_details" colspan="5">Details</th>
15124 </tr>
15125 <tr class="entry_cont">
15126 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015127 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015128ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015129a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015130perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015131 </td>
15132 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015133
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015134 <tr class="entries_header">
15135 <th class="th_details" colspan="5">HAL Implementation Details</th>
15136 </tr>
15137 <tr class="entry_cont">
15138 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015139 <p>If for some reason black level locking is no longer possible
15140(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15141black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015142override this request (and it must report 'OFF' when this
15143does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015144possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015145 </td>
15146 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015147
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015148 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15149 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015150
15151
15152
15153 <!-- end of kind -->
15154 </tbody>
15155
15156 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015157 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15158
15159
15160 <tr><td colspan="6" class="kind">dynamic</td></tr>
15161
15162 <thead class="entries_header">
15163 <tr>
15164 <th class="th_name">Property Name</th>
15165 <th class="th_type">Type</th>
15166 <th class="th_description">Description</th>
15167 <th class="th_units">Units</th>
15168 <th class="th_range">Range</th>
15169 <th class="th_tags">Tags</th>
15170 </tr>
15171 </thead>
15172
15173 <tbody>
15174
15175
15176
15177
15178
15179
15180
15181
15182
15183
15184 <tr class="entry" id="dynamic_android.sync.frameNumber">
15185 <td class="entry_name" rowspan="5">
15186 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15187 </td>
15188 <td class="entry_type">
15189 <span class="entry_type_name entry_type_name_enum">int64</span>
15190
15191 <span class="entry_type_visibility"> [hidden]</span>
15192
15193 <ul class="entry_type_enum">
15194 <li>
15195 <span class="entry_type_enum_name">CONVERGING</span>
15196 <span class="entry_type_enum_value">-1</span>
15197 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15198Synchronization is in progress,<wbr/> and reading metadata from this
15199result may include a mix of data that have taken effect since the
15200last synchronization time.<wbr/></p>
15201<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15202this value will update to the actual frame number frame number
15203the result is guaranteed to be synchronized to (as long as the
15204request settings remain constant).<wbr/></p></span>
15205 </li>
15206 <li>
15207 <span class="entry_type_enum_name">UNKNOWN</span>
15208 <span class="entry_type_enum_value">-2</span>
15209 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15210result may have already converged,<wbr/> or it may be in progress.<wbr/>
15211Reading from this result may include some mix of settings from
15212past requests.<wbr/></p>
15213<p>After a settings change,<wbr/> the new settings will eventually all
15214take effect for the output buffers and results.<wbr/> However,<wbr/> this
15215value will not change when that happens.<wbr/> Altering settings
15216rapidly may provide outcomes using mixes of settings from recent
15217requests.<wbr/></p>
15218<p>This value is intended primarily for backwards compatibility with
15219the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15220 </li>
15221 </ul>
15222
15223 </td> <!-- entry_type -->
15224
15225 <td class="entry_description">
15226 <p>The frame number corresponding to the last request
15227with which the output result (metadata + buffers) has been fully
15228synchronized.<wbr/></p>
15229 </td>
15230
15231 <td class="entry_units">
15232 </td>
15233
15234 <td class="entry_range">
15235 <p>Either a non-negative value corresponding to a
15236<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15237 </td>
15238
15239 <td class="entry_tags">
15240 <ul class="entry_tags">
15241 <li><a href="#tag_LIMITED">LIMITED</a></li>
15242 </ul>
15243 </td>
15244
15245 </tr>
15246 <tr class="entries_header">
15247 <th class="th_details" colspan="5">Details</th>
15248 </tr>
15249 <tr class="entry_cont">
15250 <td class="entry_details" colspan="5">
15251 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15252delay of several frames before the controls get applied.<wbr/> A camera
15253device may either choose to account for this delay by implementing a
15254pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15255it may start streaming control changes that span over several frame
15256boundaries.<wbr/></p>
15257<p>In the latter case,<wbr/> whenever a request's settings change relative to
15258the previous submitted request,<wbr/> the full set of changes may take
15259multiple frame durations to fully take effect.<wbr/> Some settings may
15260take effect sooner (in less frame durations) than others.<wbr/></p>
15261<p>While a set of control changes are being propagated,<wbr/> this value
15262will be CONVERGING.<wbr/></p>
15263<p>Once it is fully known that a set of control changes have been
15264finished propagating,<wbr/> and the resulting updated control settings
15265have been read back by the camera device,<wbr/> this value will be set
15266to a non-negative frame number (corresponding to the request to
15267which the results have synchronized to).<wbr/></p>
15268<p>Older camera device implementations may not have a way to detect
15269when all camera controls have been applied,<wbr/> and will always set this
15270value to UNKNOWN.<wbr/></p>
15271<p>FULL capability devices will always have this value set to the
15272frame number of the request corresponding to this result.<wbr/></p>
15273<p><em>Further details</em>:</p>
15274<ul>
15275<li>Whenever a request differs from the last request,<wbr/> any future
15276results not yet returned may have this value set to CONVERGING (this
15277could include any in-progress captures not yet returned by the camera
15278device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15279<li>Submitting a series of multiple requests that differ from the
15280previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15281moves the new synchronization frame to the last non-repeating
15282request (using the smallest frame number from the contiguous list of
15283repeating requests).<wbr/></li>
15284<li>Submitting the same request repeatedly will not change this value
15285to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15286<li>When this value changes to non-negative,<wbr/> that means that all of the
15287metadata controls from the request have been applied,<wbr/> all of the
15288metadata controls from the camera device have been read to the
15289updated values (into the result),<wbr/> and all of the graphics buffers
15290corresponding to this result are also synchronized to the request.<wbr/></li>
15291</ul>
15292<p><em>Pipeline considerations</em>:</p>
15293<p>Submitting a request with updated controls relative to the previously
15294submitted requests may also invalidate the synchronization state
15295of all the results corresponding to currently in-flight requests.<wbr/></p>
15296<p>In other words,<wbr/> results for this current request and up to
15297<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15298<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15299 </td>
15300 </tr>
15301
15302 <tr class="entries_header">
15303 <th class="th_details" colspan="5">HAL Implementation Details</th>
15304 </tr>
15305 <tr class="entry_cont">
15306 <td class="entry_details" colspan="5">
15307 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15308is also UNKNOWN.<wbr/></p>
15309<p>FULL capability devices should simply set this value to the
15310<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15311 </td>
15312 </tr>
15313
15314 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15315 <!-- end of entry -->
15316
15317
15318
15319 <!-- end of kind -->
15320 </tbody>
15321 <tr><td colspan="6" class="kind">static</td></tr>
15322
15323 <thead class="entries_header">
15324 <tr>
15325 <th class="th_name">Property Name</th>
15326 <th class="th_type">Type</th>
15327 <th class="th_description">Description</th>
15328 <th class="th_units">Units</th>
15329 <th class="th_range">Range</th>
15330 <th class="th_tags">Tags</th>
15331 </tr>
15332 </thead>
15333
15334 <tbody>
15335
15336
15337
15338
15339
15340
15341
15342
15343
15344
15345 <tr class="entry" id="static_android.sync.maxLatency">
15346 <td class="entry_name" rowspan="5">
15347 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15348 </td>
15349 <td class="entry_type">
15350 <span class="entry_type_name entry_type_name_enum">int32</span>
15351
15352 <span class="entry_type_visibility"> [public]</span>
15353
15354 <ul class="entry_type_enum">
15355 <li>
15356 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15357 <span class="entry_type_enum_value">0</span>
15358 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15359(and furthermore for all results,<wbr/>
15360<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == <a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a></code>)</p>
15361<p>Changing controls over multiple requests one after another will
15362produce results that have those controls applied atomically
15363each frame.<wbr/></p>
15364<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15365 </li>
15366 <li>
15367 <span class="entry_type_enum_name">UNKNOWN</span>
15368 <span class="entry_type_enum_value">-1</span>
15369 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15370of the past requests applied to the camera settings.<wbr/></p>
15371<p>By submitting a series of identical requests,<wbr/> the camera device
15372will eventually have the camera settings applied,<wbr/> but it is
15373unknown when that exact point will be.<wbr/></p></span>
15374 </li>
15375 </ul>
15376
15377 </td> <!-- entry_type -->
15378
15379 <td class="entry_description">
15380 <p>The maximum number of frames that can occur after a request
15381(different than the previous) has been submitted,<wbr/> and before the
15382result's state becomes synchronized (by setting
15383<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15384 </td>
15385
15386 <td class="entry_units">
15387 number of processed requests
15388 </td>
15389
15390 <td class="entry_range">
15391 <p>&gt;= -1</p>
15392 </td>
15393
15394 <td class="entry_tags">
15395 <ul class="entry_tags">
15396 <li><a href="#tag_LIMITED">LIMITED</a></li>
15397 </ul>
15398 </td>
15399
15400 </tr>
15401 <tr class="entries_header">
15402 <th class="th_details" colspan="5">Details</th>
15403 </tr>
15404 <tr class="entry_cont">
15405 <td class="entry_details" colspan="5">
15406 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15407between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15408<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15409<p>In other words this acts as an upper boundary for how many frames
15410must occur before the camera device knows for a fact that the new
15411submitted camera settings have been applied in outgoing frames.<wbr/></p>
15412<p>For example if the distance was 2,<wbr/></p>
15413<pre><code>initial request = X (repeating)
15414request1 = X
15415request2 = Y
15416request3 = Y
15417request4 = Y
15418
15419where requestN has frameNumber N,<wbr/> and the first of the repeating
15420initial request's has frameNumber F (and F &lt; 1).<wbr/>
15421
15422initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15423result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15424result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15425result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15426result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15427
15428where resultN has frameNumber N.<wbr/>
15429</code></pre>
15430<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15431<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15432<code>4 - 2 = 2</code>.<wbr/></p>
15433 </td>
15434 </tr>
15435
15436 <tr class="entries_header">
15437 <th class="th_details" colspan="5">HAL Implementation Details</th>
15438 </tr>
15439 <tr class="entry_cont">
15440 <td class="entry_details" colspan="5">
15441 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15442<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15443<p>LIMITED devices are strongly encouraged to use a non-negative
15444value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15445to know when sensor settings have been applied.<wbr/></p>
15446 </td>
15447 </tr>
15448
15449 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15450 <!-- end of entry -->
15451
15452
15453
15454 <!-- end of kind -->
15455 </tbody>
15456
15457 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015458<!-- </namespace> -->
15459 </table>
15460
15461 <div class="tags" id="tag_index">
15462 <h2>Tags</h2>
15463 <ul>
15464 <li id="tag_AWB">AWB -
15465 Needed for auto white balance
15466
15467 <ul class="tags_entries">
15468 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15469 </ul>
15470 </li> <!-- tag_AWB -->
15471 <li id="tag_BC">BC -
15472 Needed for backwards compatibility with old Java API
15473
15474 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015475 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015476 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15477 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15478 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15479 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15480 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015481 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015482 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15483 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015484 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015485 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15486 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15487 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15488 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15489 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15490 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15491 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15492 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015493 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015494 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15495 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15496 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15497 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15498 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15499 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15500 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15501 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15502 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15503 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15504 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15505 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15506 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15507 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15508 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15509 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15510 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15511 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15512 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15513 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15514 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15515 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15516 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15517 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15518 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15519 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15520 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15521 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015522 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015523 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15524 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15525 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015526 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015527 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015528 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15529 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15530 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15531 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15532 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15533 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15534 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15535 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15536 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15537 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15538 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15539 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15540 </ul>
15541 </li> <!-- tag_BC -->
15542 <li id="tag_V1">V1 -
15543 New features for first camera 2 release (API1)
15544
15545 <ul class="tags_entries">
15546 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15547 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15548 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15549 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15550 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15551 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15552 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15553 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15554 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15555 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15556 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15557 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15558 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15559 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15560 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15561 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15562 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15563 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15564 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15565 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15566 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15567 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15568 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15569 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015570 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015571 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15572 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15573 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15574 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15575 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15576 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15577 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15578 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15579 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15580 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15581 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15582 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15583 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15584 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15585 </ul>
15586 </li> <!-- tag_V1 -->
15587 <li id="tag_ADV">ADV - None
15588 <ul class="tags_entries">
15589 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15590 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15591 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15592 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15593 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15594 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15595 </ul>
15596 </li> <!-- tag_ADV -->
15597 <li id="tag_DNG">DNG -
15598 Needed for DNG file support
15599
15600 <ul class="tags_entries">
15601 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015602 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15603 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15604 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15605 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15606 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15607 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15608 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15609 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15610 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15611 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15612 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15613 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15614 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15615 </ul>
15616 </li> <!-- tag_DNG -->
15617 <li id="tag_EXIF">EXIF - None
15618 <ul class="tags_entries">
15619 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15620 </ul>
15621 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015622 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015623 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015624
15625 <ul class="tags_entries">
15626 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15627 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15628 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015629 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015630 </ul>
15631 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015632 <li id="tag_FULL">FULL -
15633 Entry is required for full hardware level devices, and optional for other hardware levels
15634
15635 <ul class="tags_entries">
15636 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15637 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15638 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15639 </ul>
15640 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015641 <li id="tag_LIMITED">LIMITED -
15642 Entry assists with LIMITED device implementation. LIMITED devices
15643 must implement all entries with this tag. Optional for FULL devices.
15644
15645 <ul class="tags_entries">
15646 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15647 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15648 </ul>
15649 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015650 </ul>
15651 </div>
15652
15653 [ <a href="#">top</a> ]
15654
15655</body>
15656</html>