blob: e78b7e0d15f5af0ac1c6638a6cb2e2b955d68fe4 [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>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700427 </ul>
428 </li>
429 <li>
430 <span class="toc_kind_header">dynamic</span>
431 <ul class="toc_section">
432 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
433 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
434 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
435 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800436 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700437 </ul>
438 </li>
439 </ul> <!-- toc_section -->
440 </li>
441 <li>
442 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
443 <ul class="toc_section">
444 <li>
445 <span class="toc_kind_header">controls</span>
446 <ul class="toc_section">
447 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
448 </ul>
449 </li>
450 <li>
451 <span class="toc_kind_header">static</span>
452 <ul class="toc_section">
453 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
454 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
455 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
456 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
457 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
458 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
459 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
460 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
461 </ul>
462 </li>
463 <li>
464 <span class="toc_kind_header">dynamic</span>
465 <ul class="toc_section">
466 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
467 </ul>
468 </li>
469 </ul> <!-- toc_section -->
470 </li>
471 <li>
472 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
473 <ul class="toc_section">
474 <li>
475 <span class="toc_kind_header">controls</span>
476 <ul class="toc_section">
477 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
478 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
479 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800480 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
481 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700482 </ul>
483 </li>
484 <li>
485 <span class="toc_kind_header">static</span>
486 <ul class="toc_section">
487
488 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700489 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700490 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
491 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
492 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
493 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
494 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
495 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
496
497 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
498 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
499 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
500 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
501 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
502 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
503 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
504 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
505 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
506 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
507 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
508 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
509 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800510 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700511 </ul>
512 </li>
513 <li>
514 <span class="toc_kind_header">dynamic</span>
515 <ul class="toc_section">
516 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
517 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
518 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
519 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700520 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800521 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700522 </ul>
523 </li>
524 </ul> <!-- toc_section -->
525 </li>
526 <li>
527 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
528 <ul class="toc_section">
529 <li>
530 <span class="toc_kind_header">controls</span>
531 <ul class="toc_section">
532 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
533 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
534 </ul>
535 </li>
536 <li>
537 <span class="toc_kind_header">dynamic</span>
538 <ul class="toc_section">
539 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
540 </ul>
541 </li>
542 </ul> <!-- toc_section -->
543 </li>
544 <li>
545 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
546 <ul class="toc_section">
547 <li>
548 <span class="toc_kind_header">controls</span>
549 <ul class="toc_section">
550 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
551 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
552 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700553 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700554 </ul>
555 </li>
556 <li>
557 <span class="toc_kind_header">static</span>
558 <ul class="toc_section">
559
560 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
561 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
562 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
563 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
564 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
565 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
566
567 </ul>
568 </li>
569 <li>
570 <span class="toc_kind_header">dynamic</span>
571 <ul class="toc_section">
572 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
573 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
574 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
575 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
576 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
577 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
578 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
579 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
580 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700581 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
582 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
583 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
584 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700585 </ul>
586 </li>
587 </ul> <!-- toc_section -->
588 </li>
589 <li>
590 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
591 <ul class="toc_section">
592 <li>
593 <span class="toc_kind_header">controls</span>
594 <ul class="toc_section">
595 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
596 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
597 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
598 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
599 </ul>
600 </li>
601 <li>
602 <span class="toc_kind_header">static</span>
603 <ul class="toc_section">
604 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
605 </ul>
606 </li>
607 <li>
608 <span class="toc_kind_header">dynamic</span>
609 <ul class="toc_section">
610 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
611 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
612 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
613 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
614 </ul>
615 </li>
616 </ul> <!-- toc_section -->
617 </li>
618 <li>
619 <span class="toc_section_header"><a href="#section_led">led</a></span>
620 <ul class="toc_section">
621 <li>
622 <span class="toc_kind_header">controls</span>
623 <ul class="toc_section">
624 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
625 </ul>
626 </li>
627 <li>
628 <span class="toc_kind_header">dynamic</span>
629 <ul class="toc_section">
630 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
631 </ul>
632 </li>
633 <li>
634 <span class="toc_kind_header">static</span>
635 <ul class="toc_section">
636 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
637 </ul>
638 </li>
639 </ul> <!-- toc_section -->
640 </li>
641 <li>
642 <span class="toc_section_header"><a href="#section_info">info</a></span>
643 <ul class="toc_section">
644 <li>
645 <span class="toc_kind_header">static</span>
646 <ul class="toc_section">
647 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
648 </ul>
649 </li>
650 </ul> <!-- toc_section -->
651 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700652 <li>
653 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
654 <ul class="toc_section">
655 <li>
656 <span class="toc_kind_header">controls</span>
657 <ul class="toc_section">
658 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
659 </ul>
660 </li>
661 <li>
662 <span class="toc_kind_header">dynamic</span>
663 <ul class="toc_section">
664 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
665 </ul>
666 </li>
667 </ul> <!-- toc_section -->
668 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800669 <li>
670 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
671 <ul class="toc_section">
672 <li>
673 <span class="toc_kind_header">dynamic</span>
674 <ul class="toc_section">
675 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
676 </ul>
677 </li>
678 <li>
679 <span class="toc_kind_header">static</span>
680 <ul class="toc_section">
681 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
682 </ul>
683 </li>
684 </ul> <!-- toc_section -->
685 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800686 </ul>
687
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700688
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800689 <h1>Properties</h1>
690 <table class="properties">
691
692 <thead class="thead_dummy">
693 <tr>
694 <th class="th_name">Property Name</th>
695 <th class="th_type">Type</th>
696 <th class="th_description">Description</th>
697 <th class="th_units">Units</th>
698 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800699 <th class="th_tags">Tags</th>
700 </tr>
701 </thead> <!-- so that the first occurrence of thead is not
702 above the first occurrence of tr -->
703<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800704 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800705
706
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800707 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800708
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700709 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800710 <tr>
711 <th class="th_name">Property Name</th>
712 <th class="th_type">Type</th>
713 <th class="th_description">Description</th>
714 <th class="th_units">Units</th>
715 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800716 <th class="th_tags">Tags</th>
717 </tr>
718 </thead>
719
720 <tbody>
721
722
723
724
725
726
727
728
729
730
731 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800732 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800733 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800734 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800735 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800736 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800737
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700738 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800739
740 <ul class="entry_type_enum">
741 <li>
742 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800743 <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 -0800744and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
745<p>All advanced white balance adjustments (not specified
746by our white balance pipeline) must be disabled.<wbr/></p>
747<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
748TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
749this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800750 </li>
751 <li>
752 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800753 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
754output.<wbr/></p>
755<p>Advanced white balance adjustments above and beyond
756the specified white balance pipeline may be applied.<wbr/></p>
757<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
758the camera device uses the last frame's AWB values
759(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800760 </li>
761 <li>
762 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800763 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
764may be reduced by high quality.<wbr/></p>
765<p>Advanced white balance adjustments above and beyond
766the specified white balance pipeline may be applied.<wbr/></p>
767<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
768the camera device uses the last frame's AWB values
769(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800770 </li>
771 </ul>
772
773 </td> <!-- entry_type -->
774
775 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800776 <p>The mode control selects how the image data is converted from the
777sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800778 </td>
779
780 <td class="entry_units">
781 </td>
782
783 <td class="entry_range">
784 </td>
785
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800786 <td class="entry_tags">
787 </td>
788
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800789 </tr>
790 <tr class="entries_header">
791 <th class="th_details" colspan="5">Details</th>
792 </tr>
793 <tr class="entry_cont">
794 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800795 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
796control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
797application controls how the color mapping is performed.<wbr/></p>
798<p>We define the expected processing pipeline below.<wbr/> For consistency
799across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
800<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
801do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
802<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
803camera device (in the results) and be roughly correct.<wbr/></p>
804<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
805FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
806as what was produced by the camera device in the earlier frame.<wbr/></p>
807<p>The expected processing pipeline is as follows:</p>
808<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
809<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
810gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
811matrix (applied after demosaic).<wbr/></p>
812<p>The 4-channel white-balance gains are defined as:</p>
813<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
814</code></pre>
815<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
816output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
817These may be identical for a given camera device implementation; if
818the camera device does not support a separate gain for even/<wbr/>odd green
819channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
820<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
821<p>The matrices for color transforms are defined as a 9-entry vector:</p>
822<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 ]
823</code></pre>
824<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
825to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
826<p>with colors as follows:</p>
827<pre><code>r' = I0r + I1g + I2b
828g' = I3r + I4g + I5b
829b' = I6r + I7g + I8b
830</code></pre>
831<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
832values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800833 </td>
834 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800835
836
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800837 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
838 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800839
840
841 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800842 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800843 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800844 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800845 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700846 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800847 <span class="entry_type_container">x</span>
848
849 <span class="entry_type_array">
850 3 x 3
851 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700852 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800853 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800854
855
856 </td> <!-- entry_type -->
857
858 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800859 <p>A color transform matrix to use to transform
860from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800861 </td>
862
863 <td class="entry_units">
864 </td>
865
866 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800867 <p>Output values are expected to be in the range
868(0,<wbr/>1)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800869 </td>
870
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800871 <td class="entry_tags">
872 </td>
873
874 </tr>
875 <tr class="entries_header">
876 <th class="th_details" colspan="5">Details</th>
877 </tr>
878 <tr class="entry_cont">
879 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800880 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800881<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 -0800882directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800883<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 -0800884<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800885for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -0800886reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700887 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800888 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800889
890
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800891 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
892 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700893
894
895 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800896 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800897 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800898 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700899 <td class="entry_type">
900 <span class="entry_type_name">float</span>
901 <span class="entry_type_container">x</span>
902
903 <span class="entry_type_array">
904 4
905 </span>
906 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800907 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700908
909
910 </td> <!-- entry_type -->
911
912 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800913 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800914white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700915 </td>
916
917 <td class="entry_units">
918 </td>
919
920 <td class="entry_range">
921 </td>
922
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800923 <td class="entry_tags">
924 </td>
925
926 </tr>
927 <tr class="entries_header">
928 <th class="th_details" colspan="5">Details</th>
929 </tr>
930 <tr class="entry_cont">
931 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800932 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800933the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
934for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
935is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800936does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800937it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
938<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800939<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800940<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 -0800941directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800942<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 -0800943<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800944the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800945 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800946 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800947
948
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800949 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
950 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800951
952
953
954 <!-- end of kind -->
955 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800956 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800957
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700958 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800959 <tr>
960 <th class="th_name">Property Name</th>
961 <th class="th_type">Type</th>
962 <th class="th_description">Description</th>
963 <th class="th_units">Units</th>
964 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800965 <th class="th_tags">Tags</th>
966 </tr>
967 </thead>
968
969 <tbody>
970
971
972
973
974
975
976
977
978
979
Zhijun He69fc0ea2013-07-17 09:42:58 -0700980 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800981 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800982 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800983 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800984 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700985 <span class="entry_type_name">rational</span>
986 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800987
Zhijun He69fc0ea2013-07-17 09:42:58 -0700988 <span class="entry_type_array">
989 3 x 3
990 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700991 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800992 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800993
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800994
995 </td> <!-- entry_type -->
996
997 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800998 <p>A color transform matrix to use to transform
999from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001000 </td>
1001
1002 <td class="entry_units">
1003 </td>
1004
1005 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001006 <p>Output values are expected to be in the range
1007(0,<wbr/>1)</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001008 </td>
1009
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001010 <td class="entry_tags">
1011 </td>
1012
1013 </tr>
1014 <tr class="entries_header">
1015 <th class="th_details" colspan="5">Details</th>
1016 </tr>
1017 <tr class="entry_cont">
1018 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001019 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001020<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 -08001021directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001022<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 -08001023<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001024for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -08001025reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001026 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001027 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001028
1029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001030 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1031 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001032
1033
1034 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001035 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001036 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001037 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001038 <td class="entry_type">
1039 <span class="entry_type_name">float</span>
1040 <span class="entry_type_container">x</span>
1041
1042 <span class="entry_type_array">
1043 4
1044 </span>
1045 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001046 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001047
1048
1049 </td> <!-- entry_type -->
1050
1051 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001052 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001053white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001054 </td>
1055
1056 <td class="entry_units">
1057 </td>
1058
1059 <td class="entry_range">
1060 </td>
1061
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001062 <td class="entry_tags">
1063 </td>
1064
1065 </tr>
1066 <tr class="entries_header">
1067 <th class="th_details" colspan="5">Details</th>
1068 </tr>
1069 <tr class="entry_cont">
1070 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001071 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001072the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1073for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1074is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001075does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001076it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1077<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001078<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001079<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 -08001080directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001081<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 -08001082<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001083the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001084 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001085 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001086
1087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001088 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1089 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001090
1091
1092
1093 <!-- end of kind -->
1094 </tbody>
1095
1096 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001097 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001098
1099
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001100 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001101
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001102 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001103 <tr>
1104 <th class="th_name">Property Name</th>
1105 <th class="th_type">Type</th>
1106 <th class="th_description">Description</th>
1107 <th class="th_units">Units</th>
1108 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001109 <th class="th_tags">Tags</th>
1110 </tr>
1111 </thead>
1112
1113 <tbody>
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001125 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001126 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001127 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001128 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001129 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001130
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001131 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001132
1133 <ul class="entry_type_enum">
1134 <li>
1135 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001136 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1137avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001138 </li>
1139 <li>
1140 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001141 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1142avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001143 </li>
1144 <li>
1145 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001146 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1147avoid banding problems with 60Hz illumination
1148sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001149 </li>
1150 <li>
1151 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001152 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1153antibanding routine to the current illumination
1154conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001155 </li>
1156 </ul>
1157
1158 </td> <!-- entry_type -->
1159
1160 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001161 <p>The desired setting for the camera device's auto-exposure
1162algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001163 </td>
1164
1165 <td class="entry_units">
1166 </td>
1167
1168 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001169 <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 -08001170 </td>
1171
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001172 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001173 <ul class="entry_tags">
1174 <li><a href="#tag_BC">BC</a></li>
1175 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001176 </td>
1177
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001178 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001179 <tr class="entries_header">
1180 <th class="th_details" colspan="5">Details</th>
1181 </tr>
1182 <tr class="entry_cont">
1183 <td class="entry_details" colspan="5">
1184 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1185lights,<wbr/> flicker at the rate of the power supply frequency
1186(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1187typically not noticeable to a person,<wbr/> it can be visible to
1188a camera device.<wbr/> If a camera sets its exposure time to the
1189wrong value,<wbr/> the flicker may become visible in the
1190viewfinder as flicker or in a final captured image,<wbr/> as a
1191set of variable-brightness bands across the image.<wbr/></p>
1192<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1193include antibanding routines that ensure that the chosen
1194exposure value will not cause such banding.<wbr/> The choice of
1195exposure time depends on the rate of flicker,<wbr/> which the
1196camera device can detect automatically,<wbr/> or the expected
1197rate can be selected by the application using this
1198control.<wbr/></p>
1199<p>A given camera device may not support all of the possible
1200options for the antibanding mode.<wbr/> The
1201<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1202the available modes for a given camera device.<wbr/></p>
1203<p>The default mode is AUTO,<wbr/> which must be supported by all
1204camera devices.<wbr/></p>
1205<p>If manual exposure control is enabled (by setting
1206<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/>
1207then this setting has no effect,<wbr/> and the application must
1208ensure it selects exposure times that do not cause banding
1209issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1210the application in this.<wbr/></p>
1211 </td>
1212 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001213
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001214 <tr class="entries_header">
1215 <th class="th_details" colspan="5">HAL Implementation Details</th>
1216 </tr>
1217 <tr class="entry_cont">
1218 <td class="entry_details" colspan="5">
1219 <p>For all capture request templates,<wbr/> this field must be set
1220to AUTO.<wbr/> AUTO is the only mode that must supported;
1221OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1222<p>If manual exposure control is enabled (by setting
1223<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/>
1224then the exposure values provided by the application must not be
1225adjusted for antibanding.<wbr/></p>
1226 </td>
1227 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001228
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001229 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1230 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001231
1232
1233 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001234 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001235 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001236 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001237 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001238 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001239
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001240 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001241
1242
1243 </td> <!-- entry_type -->
1244
1245 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001246 <p>Adjustment to AE target image
1247brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001248 </td>
1249
1250 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001251 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001252 </td>
1253
1254 <td class="entry_range">
1255 </td>
1256
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001257 <td class="entry_tags">
1258 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001259 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001260 </ul>
1261 </td>
1262
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001263 </tr>
1264 <tr class="entries_header">
1265 <th class="th_details" colspan="5">Details</th>
1266 </tr>
1267 <tr class="entry_cont">
1268 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001269 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001270exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001271compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001272 </td>
1273 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001274
1275
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001276 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1277 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001278
1279
1280 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001281 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001282 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001283 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001284 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001285 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001286
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001287 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001288
1289 <ul class="entry_type_enum">
1290 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001291 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001292 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1293is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001294 </li>
1295 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001296 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001297 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1298must not update the exposure and sensitivity parameters
1299while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001300 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001301 </ul>
1302
1303 </td> <!-- entry_type -->
1304
1305 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001306 <p>Whether AE is currently locked to its latest
1307calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001308 </td>
1309
1310 <td class="entry_units">
1311 </td>
1312
1313 <td class="entry_range">
1314 </td>
1315
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001316 <td class="entry_tags">
1317 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001318 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001319 </ul>
1320 </td>
1321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001322 </tr>
1323 <tr class="entries_header">
1324 <th class="th_details" colspan="5">Details</th>
1325 </tr>
1326 <tr class="entry_cont">
1327 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001328 <p>Note that even when AE is locked,<wbr/> the flash may be
1329fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1330ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001331 </td>
1332 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001333
1334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001335 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1336 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001337
1338
1339 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001340 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001341 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001342 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001343 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001344 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001345
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001346 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001347
1348 <ul class="entry_type_enum">
1349 <li>
1350 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001351 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1352the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1353<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1354<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1355device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1356a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001357 </li>
1358 <li>
1359 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001360 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1361with no flash control.<wbr/> The application's values for
1362<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1363<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1364<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1365application has control over the various
1366android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001367 </li>
1368 <li>
1369 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001370 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1371the camera's flash unit,<wbr/> firing it in low-light
1372conditions.<wbr/> The flash may be fired during a
1373precapture sequence (triggered by
1374<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1375for captures for which the
1376<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1377STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001378 </li>
1379 <li>
1380 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001381 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1382the camera's flash unit,<wbr/> always firing it for still
1383captures.<wbr/> The flash may be fired during a precapture
1384sequence (triggered by
1385<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1386be fired for captures for which the
1387<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1388STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001389 </li>
1390 <li>
1391 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001392 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1393reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1394a red eye reduction flash will fire during the
1395precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001396 </li>
1397 </ul>
1398
1399 </td> <!-- entry_type -->
1400
1401 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001402 <p>The desired mode for the camera device's
1403auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001404 </td>
1405
1406 <td class="entry_units">
1407 </td>
1408
1409 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001410 <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 -08001411 </td>
1412
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001413 <td class="entry_tags">
1414 <ul class="entry_tags">
1415 <li><a href="#tag_BC">BC</a></li>
1416 </ul>
1417 </td>
1418
1419 </tr>
1420 <tr class="entries_header">
1421 <th class="th_details" colspan="5">Details</th>
1422 </tr>
1423 <tr class="entry_cont">
1424 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001425 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1426AUTO.<wbr/></p>
1427<p>When set to any of the ON modes,<wbr/> the camera device's
1428auto-exposure routine is enabled,<wbr/> overriding the
1429application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1430and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1431<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1432<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1433is selected,<wbr/> the camera device's flash unit controls are
1434also overridden.<wbr/></p>
1435<p>The FLASH modes are only available if the camera device
1436has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1437<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1438ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1439<p>When set to any of the ON modes,<wbr/> the values chosen by the
1440camera device auto-exposure routine for the overridden
1441fields for a given capture will be available in its
1442CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001443 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001444 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001445
1446
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001447 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1448 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001449
1450
1451 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001452 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001453 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001454 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001455 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001456 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001457 <span class="entry_type_container">x</span>
1458
1459 <span class="entry_type_array">
1460 5 x area_count
1461 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001462 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001463
1464
1465 </td> <!-- entry_type -->
1466
1467 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001468 <p>List of areas to use for
1469metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001470 </td>
1471
1472 <td class="entry_units">
1473 </td>
1474
1475 <td class="entry_range">
1476 </td>
1477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001478 <td class="entry_tags">
1479 <ul class="entry_tags">
1480 <li><a href="#tag_BC">BC</a></li>
1481 </ul>
1482 </td>
1483
1484 </tr>
1485 <tr class="entries_header">
1486 <th class="th_details" colspan="5">Details</th>
1487 </tr>
1488 <tr class="entry_cont">
1489 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001490 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1491xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1492specified coordinates.<wbr/></p>
1493<p>The coordinate system is based on the active pixel array,<wbr/>
1494with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001495(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1496<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 -08001497bottom-right pixel in the active pixel array.<wbr/> The weight
1498should be nonnegative.<wbr/></p>
1499<p>If all regions have 0 weight,<wbr/> then no specific metering area
1500needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001501outside 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 -08001502should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001503used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001504 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001505 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001506
1507
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001508 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1509 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001510
1511
1512 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001513 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001514 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001515 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001516 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001517 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001518 <span class="entry_type_container">x</span>
1519
1520 <span class="entry_type_array">
1521 2
1522 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001523 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001524
1525
1526 </td> <!-- entry_type -->
1527
1528 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001529 <p>Range over which fps can be adjusted to
1530maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001531 </td>
1532
1533 <td class="entry_units">
1534 </td>
1535
1536 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001537 <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 -08001538 </td>
1539
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001540 <td class="entry_tags">
1541 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001542 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001543 </ul>
1544 </td>
1545
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001546 </tr>
1547 <tr class="entries_header">
1548 <th class="th_details" colspan="5">Details</th>
1549 </tr>
1550 <tr class="entry_cont">
1551 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001552 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001553of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001554 </td>
1555 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001556
1557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001558 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1559 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001560
1561
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001562 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001563 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001564 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001565 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001566 <td class="entry_type">
1567 <span class="entry_type_name entry_type_name_enum">byte</span>
1568
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001569 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001570
1571 <ul class="entry_type_enum">
1572 <li>
1573 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001574 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001575 </li>
1576 <li>
1577 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001578 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1579by the camera device.<wbr/> The exact effect of the precapture
1580trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001581 </li>
1582 </ul>
1583
1584 </td> <!-- entry_type -->
1585
1586 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001587 <p>Whether the camera device will trigger a precapture
1588metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001589 </td>
1590
1591 <td class="entry_units">
1592 </td>
1593
1594 <td class="entry_range">
1595 </td>
1596
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001597 <td class="entry_tags">
1598 <ul class="entry_tags">
1599 <li><a href="#tag_BC">BC</a></li>
1600 </ul>
1601 </td>
1602
1603 </tr>
1604 <tr class="entries_header">
1605 <th class="th_details" colspan="5">Details</th>
1606 </tr>
1607 <tr class="entry_cont">
1608 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001609 <p>This entry is normally set to IDLE,<wbr/> or is not
1610included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001611set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001612precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001613<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001614AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1615state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001616 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001617 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001618
1619
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001620 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1621 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001622
1623
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001624 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001625 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001626 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001627 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001628 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001629 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001630
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001631 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001632
1633 <ul class="entry_type_enum">
1634 <li>
1635 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001636 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1637<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1638application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001639 </li>
1640 <li>
1641 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001642 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1643<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
1644is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1645the autofocus trigger action is called.<wbr/> When that trigger
1646is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1647the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1648<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1649and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001650 </li>
1651 <li>
1652 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001653 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1654autofocus trigger action is called.<wbr/></p>
1655<p>When that trigger is activated,<wbr/> AF must transition to
1656ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1657NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1658position to default,<wbr/> and sets the AF state to
1659INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001660 </li>
1661 <li>
1662 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001663 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1664position continually to attempt to provide a
1665constantly-in-focus image stream.<wbr/></p>
1666<p>The focusing behavior should be suitable for good quality
1667video recording; typically this means slower focus
1668movement and no overshoots.<wbr/> When the AF trigger is not
1669involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1670and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1671states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1672the algorithm should immediately transition into
1673AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1674lens position until a cancel AF trigger is received.<wbr/></p>
1675<p>Once cancel is received,<wbr/> the algorithm should transition
1676back to INACTIVE and resume passive scan.<wbr/> Note that this
1677behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1678ongoing PASSIVE_<wbr/>SCAN must immediately be
1679canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001680 </li>
1681 <li>
1682 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001683 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1684position continually to attempt to provide a
1685constantly-in-focus image stream.<wbr/></p>
1686<p>The focusing behavior should be suitable for still image
1687capture; typically this means focusing as fast as
1688possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1689algorithm should start in INACTIVE state,<wbr/> and then
1690transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1691appropriate as it attempts to maintain focus.<wbr/> When the AF
1692trigger is activated,<wbr/> the algorithm should finish its
1693PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1694AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1695lens position until a cancel AF trigger is received.<wbr/></p>
1696<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1697should transition back to INACTIVE and then act as if it
1698has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001699 </li>
1700 <li>
1701 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001702 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1703trigger is ignored,<wbr/> AF state should always be
1704INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001705 </li>
1706 </ul>
1707
1708 </td> <!-- entry_type -->
1709
1710 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001711 <p>Whether AF is currently enabled,<wbr/> and what
1712mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001713 </td>
1714
1715 <td class="entry_units">
1716 </td>
1717
1718 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001719 <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 -08001720 </td>
1721
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001722 <td class="entry_tags">
1723 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001724 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001725 </ul>
1726 </td>
1727
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001728 </tr>
1729 <tr class="entries_header">
1730 <th class="th_details" colspan="5">Details</th>
1731 </tr>
1732 <tr class="entry_cont">
1733 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001734 <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 -08001735<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1736the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1737in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001738 </td>
1739 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001740
1741
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001742 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1743 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001744
1745
1746 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001747 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001748 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001749 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001750 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001751 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001752 <span class="entry_type_container">x</span>
1753
1754 <span class="entry_type_array">
1755 5 x area_count
1756 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001757 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001758
1759
1760 </td> <!-- entry_type -->
1761
1762 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001763 <p>List of areas to use for focus
1764estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001765 </td>
1766
1767 <td class="entry_units">
1768 </td>
1769
1770 <td class="entry_range">
1771 </td>
1772
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001773 <td class="entry_tags">
1774 <ul class="entry_tags">
1775 <li><a href="#tag_BC">BC</a></li>
1776 </ul>
1777 </td>
1778
1779 </tr>
1780 <tr class="entries_header">
1781 <th class="th_details" colspan="5">Details</th>
1782 </tr>
1783 <tr class="entry_cont">
1784 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001785 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1786xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1787specified coordinates.<wbr/></p>
1788<p>The coordinate system is based on the active pixel array,<wbr/>
1789with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001790(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1791<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 -08001792bottom-right pixel in the active pixel array.<wbr/> The weight
1793should be nonnegative.<wbr/></p>
1794<p>If all regions have 0 weight,<wbr/> then no specific focus area
1795needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001796outside 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 -08001797should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001798used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001799 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001800 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001801
1802
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001803 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1804 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001805
1806
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001807 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001808 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001809 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001810 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001811 <td class="entry_type">
1812 <span class="entry_type_name entry_type_name_enum">byte</span>
1813
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001814 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001815
1816 <ul class="entry_type_enum">
1817 <li>
1818 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001819 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001820 </li>
1821 <li>
1822 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001823 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001824 </li>
1825 <li>
1826 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001827 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1828state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001829 </li>
1830 </ul>
1831
1832 </td> <!-- entry_type -->
1833
1834 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001835 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001836 </td>
1837
1838 <td class="entry_units">
1839 </td>
1840
1841 <td class="entry_range">
1842 </td>
1843
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001844 <td class="entry_tags">
1845 <ul class="entry_tags">
1846 <li><a href="#tag_BC">BC</a></li>
1847 </ul>
1848 </td>
1849
1850 </tr>
1851 <tr class="entries_header">
1852 <th class="th_details" colspan="5">Details</th>
1853 </tr>
1854 <tr class="entry_cont">
1855 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001856 <p>This entry is normally set to IDLE,<wbr/> or is not
1857included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001858<p>When included and set to START,<wbr/> the camera device will trigger the
1859autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1860<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1861and return to its initial AF state.<wbr/></p>
1862<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 -07001863 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001864 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001865
1866
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001867 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1868 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001869
1870
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001871 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001872 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001873 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001874 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001875 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001876 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001877
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001878 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001879
1880 <ul class="entry_type_enum">
1881 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001882 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001883 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1884algorithm is free to update its parameters if in AUTO
1885mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001886 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001887 <li>
1888 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001889 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1890algorithm must not update the exposure and sensitivity
1891parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001892 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001893 </ul>
1894
1895 </td> <!-- entry_type -->
1896
1897 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001898 <p>Whether AWB is currently locked to its
1899latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001900 </td>
1901
1902 <td class="entry_units">
1903 </td>
1904
1905 <td class="entry_range">
1906 </td>
1907
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001908 <td class="entry_tags">
1909 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001910 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001911 </ul>
1912 </td>
1913
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001914 </tr>
1915 <tr class="entries_header">
1916 <th class="th_details" colspan="5">Details</th>
1917 </tr>
1918 <tr class="entry_cont">
1919 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001920 <p>Note that AWB lock is only meaningful for AUTO
1921mode; in other modes,<wbr/> AWB is already fixed to a specific
1922setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001923 </td>
1924 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001925
1926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001927 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1928 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001929
1930
1931 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001932 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001933 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001934 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001935 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001936 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001937
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001938 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001939
1940 <ul class="entry_type_enum">
1941 <li>
1942 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001943 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1944the application-selected color transform matrix
1945(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1946(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1947device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001948 </li>
1949 <li>
1950 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001951 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1952the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1953and <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 -08001954 </li>
1955 <li>
1956 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001957 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1958the camera device uses incandescent light as the assumed scene
1959illumination for white balance.<wbr/> While the exact white balance
1960transforms are up to the camera device,<wbr/> they will approximately
1961match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001962 </li>
1963 <li>
1964 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001965 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1966the camera device uses fluorescent light as the assumed scene
1967illumination for white balance.<wbr/> While the exact white balance
1968transforms are up to the camera device,<wbr/> they will approximately
1969match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001970 </li>
1971 <li>
1972 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001973 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1974the camera device uses warm fluorescent light as the assumed scene
1975illumination for white balance.<wbr/> While the exact white balance
1976transforms are up to the camera device,<wbr/> they will approximately
1977match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001978 </li>
1979 <li>
1980 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001981 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1982the camera device uses daylight light as the assumed scene
1983illumination for white balance.<wbr/> While the exact white balance
1984transforms are up to the camera device,<wbr/> they will approximately
1985match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001986 </li>
1987 <li>
1988 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001989 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1990the camera device uses cloudy daylight light as the assumed scene
1991illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001992 </li>
1993 <li>
1994 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001995 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1996the camera device uses twilight light as the assumed scene
1997illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001998 </li>
1999 <li>
2000 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002001 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2002the camera device uses shade light as the assumed scene
2003illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002004 </li>
2005 </ul>
2006
2007 </td> <!-- entry_type -->
2008
2009 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002010 <p>Whether AWB is currently setting the color
2011transform fields,<wbr/> and what its illumination target
2012is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002013 </td>
2014
2015 <td class="entry_units">
2016 </td>
2017
2018 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002019 <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 -08002020 </td>
2021
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002022 <td class="entry_tags">
2023 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002024 <li><a href="#tag_BC">BC</a></li>
2025 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002026 </ul>
2027 </td>
2028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002029 </tr>
2030 <tr class="entries_header">
2031 <th class="th_details" colspan="5">Details</th>
2032 </tr>
2033 <tr class="entry_cont">
2034 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002035 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2036<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2037routine is enabled,<wbr/> overriding the application's selected
2038<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
2039<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2040<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2041routine is disabled.<wbr/> The applicantion manually controls the white
2042balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2043and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2044<p>When set to any other modes,<wbr/> the camera device's auto white balance
2045routine is disabled.<wbr/> The camera device uses each particular illumination
2046target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002047 </td>
2048 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002049
2050
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002051 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2052 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002053
2054
2055 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002056 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002057 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002058 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002059 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002060 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002061 <span class="entry_type_container">x</span>
2062
2063 <span class="entry_type_array">
2064 5 x area_count
2065 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002066 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002067
2068
2069 </td> <!-- entry_type -->
2070
2071 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002072 <p>List of areas to use for illuminant
2073estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002074 </td>
2075
2076 <td class="entry_units">
2077 </td>
2078
2079 <td class="entry_range">
2080 </td>
2081
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002082 <td class="entry_tags">
2083 <ul class="entry_tags">
2084 <li><a href="#tag_BC">BC</a></li>
2085 </ul>
2086 </td>
2087
2088 </tr>
2089 <tr class="entries_header">
2090 <th class="th_details" colspan="5">Details</th>
2091 </tr>
2092 <tr class="entry_cont">
2093 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002094 <p>Only used in AUTO mode.<wbr/></p>
2095<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
2096xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
2097specified coordinates.<wbr/></p>
2098<p>The coordinate system is based on the active pixel array,<wbr/>
2099with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002100(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2101<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 -08002102bottom-right pixel in the active pixel array.<wbr/> The weight
2103should be nonnegative.<wbr/></p>
2104<p>If all regions have 0 weight,<wbr/> then no specific metering area
2105needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002106outside 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 -08002107should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08002108used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002109 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002110 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002111
2112
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002113 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2114 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002115
2116
2117 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002118 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002119 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002120 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002121 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002122 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002123
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002124 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002125
2126 <ul class="entry_type_enum">
2127 <li>
2128 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002129 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2130categories.<wbr/> Default to preview-like
2131behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002132 </li>
2133 <li>
2134 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002135 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2136precapture trigger may be used to start off a metering
2137w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002138 </li>
2139 <li>
2140 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002141 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2142usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002143 </li>
2144 <li>
2145 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002146 <span class="entry_type_enum_notes"><p>This request is for a video recording
2147usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002148 </li>
2149 <li>
2150 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002151 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2152image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002153 </li>
2154 <li>
2155 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002156 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2157application will stream full-resolution images and
2158reprocess one or several later for a final
2159capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002160 </li>
2161 </ul>
2162
2163 </td> <!-- entry_type -->
2164
2165 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002166 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2167auto-focus,<wbr/> auto-white balance) routines about the purpose
2168of this capture,<wbr/> to help the camera device to decide optimal 3A
2169strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002170 </td>
2171
2172 <td class="entry_units">
2173 </td>
2174
2175 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002176 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002177 </td>
2178
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002179 <td class="entry_tags">
2180 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002181 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002182 </ul>
2183 </td>
2184
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002185 </tr>
2186 <tr class="entries_header">
2187 <th class="th_details" colspan="5">Details</th>
2188 </tr>
2189 <tr class="entry_cont">
2190 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002191 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2192and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002193 </td>
2194 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002195
2196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002197 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2198 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002199
2200
2201 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002202 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002203 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002204 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002205 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002206 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002207
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002208 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002209
2210 <ul class="entry_type_enum">
2211 <li>
2212 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002213 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002214 </li>
2215 <li>
2216 <span class="entry_type_enum_name">MONO</span>
2217 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002218 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2219a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002220 </li>
2221 <li>
2222 <span class="entry_type_enum_name">NEGATIVE</span>
2223 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002224 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2225are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002226 </li>
2227 <li>
2228 <span class="entry_type_enum_name">SOLARIZE</span>
2229 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002230 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2231image is wholly or partially reversed in
2232tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002233 </li>
2234 <li>
2235 <span class="entry_type_enum_name">SEPIA</span>
2236 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002237 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2238gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002239 </li>
2240 <li>
2241 <span class="entry_type_enum_name">POSTERIZE</span>
2242 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002243 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2244discrete regions of tone rather than a continuous
2245gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002246 </li>
2247 <li>
2248 <span class="entry_type_enum_name">WHITEBOARD</span>
2249 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002250 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2251as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002252 </li>
2253 <li>
2254 <span class="entry_type_enum_name">BLACKBOARD</span>
2255 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002256 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2257as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002258 </li>
2259 <li>
2260 <span class="entry_type_enum_name">AQUA</span>
2261 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002262 <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 -08002263 </li>
2264 </ul>
2265
2266 </td> <!-- entry_type -->
2267
2268 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002269 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002270 </td>
2271
2272 <td class="entry_units">
2273 </td>
2274
2275 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002276 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002277 </td>
2278
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002279 <td class="entry_tags">
2280 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002281 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002282 </ul>
2283 </td>
2284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002285 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002286 <tr class="entries_header">
2287 <th class="th_details" colspan="5">Details</th>
2288 </tr>
2289 <tr class="entry_cont">
2290 <td class="entry_details" colspan="5">
2291 <p>When this mode is set,<wbr/> a color effect will be applied
2292to images produced by the camera device.<wbr/> The interpretation
2293and implementation of these color effects is left to the
2294implementor of the camera device,<wbr/> and should not be
2295depended on to be consistent (or present) across all
2296devices.<wbr/></p>
2297<p>A color effect will only be applied if
2298<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2299 </td>
2300 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002301
2302
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002303 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2304 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002305
2306
2307 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002308 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002309 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002310 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002311 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002312 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002313
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002314 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002315
2316 <ul class="entry_type_enum">
2317 <li>
2318 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002319 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2320routines are disabled,<wbr/> no other settings in
2321android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002322 </li>
2323 <li>
2324 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002325 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2326Manual control of capture parameters is disabled.<wbr/> All
2327controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2328effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002329 </li>
2330 <li>
2331 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002332 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2333control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2334controls; the HAL must ignore those settings while
2335USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2336scene mode).<wbr/> Other control entries are still active.<wbr/>
2337This setting can only be used if availableSceneModes !=
2338UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002339 </li>
2340 </ul>
2341
2342 </td> <!-- entry_type -->
2343
2344 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002345 <p>Overall mode of 3A control
2346routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002347 </td>
2348
2349 <td class="entry_units">
2350 </td>
2351
2352 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002353 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002354 </td>
2355
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002356 <td class="entry_tags">
2357 <ul class="entry_tags">
2358 <li><a href="#tag_BC">BC</a></li>
2359 </ul>
2360 </td>
2361
2362 </tr>
2363 <tr class="entries_header">
2364 <th class="th_details" colspan="5">Details</th>
2365 </tr>
2366 <tr class="entry_cont">
2367 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002368 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002369by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002370capture parameters itself.<wbr/></p>
2371<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002372android.<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 -08002373<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002374android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002375one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002376as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002377<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 -08002378 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002379 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002380
2381
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002382 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2383 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002384
2385
2386 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002387 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002388 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002389 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002390 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002391 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002392
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002393 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002394
2395 <ul class="entry_type_enum">
2396 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002397 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002398 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002399 <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 -08002400 </li>
2401 <li>
2402 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002403 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2404detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2405auto-exposure routines.<wbr/> If face detection statistics are
2406disabled (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/>
2407this should still operate correctly (but will not return
2408face detection statistics to the framework).<wbr/></p>
2409<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2410<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2411remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002412 </li>
2413 <li>
2414 <span class="entry_type_enum_name">ACTION</span>
2415 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002416 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2417Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002418 </li>
2419 <li>
2420 <span class="entry_type_enum_name">PORTRAIT</span>
2421 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002422 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002423 </li>
2424 <li>
2425 <span class="entry_type_enum_name">LANDSCAPE</span>
2426 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002427 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002428 </li>
2429 <li>
2430 <span class="entry_type_enum_name">NIGHT</span>
2431 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002432 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002433 </li>
2434 <li>
2435 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2436 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002437 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2438settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002439 </li>
2440 <li>
2441 <span class="entry_type_enum_name">THEATRE</span>
2442 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002443 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2444remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002445 </li>
2446 <li>
2447 <span class="entry_type_enum_name">BEACH</span>
2448 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002449 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002450 </li>
2451 <li>
2452 <span class="entry_type_enum_name">SNOW</span>
2453 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002454 <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 -08002455 </li>
2456 <li>
2457 <span class="entry_type_enum_name">SUNSET</span>
2458 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002459 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002460 </li>
2461 <li>
2462 <span class="entry_type_enum_name">STEADYPHOTO</span>
2463 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002464 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2465device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002466 </li>
2467 <li>
2468 <span class="entry_type_enum_name">FIREWORKS</span>
2469 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002470 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002471 </li>
2472 <li>
2473 <span class="entry_type_enum_name">SPORTS</span>
2474 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002475 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2476Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002477 </li>
2478 <li>
2479 <span class="entry_type_enum_name">PARTY</span>
2480 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002481 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2482people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002483 </li>
2484 <li>
2485 <span class="entry_type_enum_name">CANDLELIGHT</span>
2486 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002487 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2488is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002489 </li>
2490 <li>
2491 <span class="entry_type_enum_name">BARCODE</span>
2492 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002493 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2494for use by camera applications that wish to read the
2495barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002496 </li>
2497 </ul>
2498
2499 </td> <!-- entry_type -->
2500
2501 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002502 <p>A camera mode optimized for conditions typical in a particular
2503capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002504 </td>
2505
2506 <td class="entry_units">
2507 </td>
2508
2509 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002510 <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 -08002511 </td>
2512
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002513 <td class="entry_tags">
2514 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002515 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002516 </ul>
2517 </td>
2518
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002519 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002520 <tr class="entries_header">
2521 <th class="th_details" colspan="5">Details</th>
2522 </tr>
2523 <tr class="entry_cont">
2524 <td class="entry_details" colspan="5">
2525 <p>This is the mode that that is active when
2526<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/>
2527these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2528<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>
2529<p>The interpretation and implementation of these scene modes is left
2530to the implementor of the camera device.<wbr/> Their behavior will not be
2531consistent across all devices,<wbr/> and any given device may only implement
2532a subset of these modes.<wbr/></p>
2533 </td>
2534 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002535
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002536 <tr class="entries_header">
2537 <th class="th_details" colspan="5">HAL Implementation Details</th>
2538 </tr>
2539 <tr class="entry_cont">
2540 <td class="entry_details" colspan="5">
2541 <p>HAL implementations that include scene modes are expected to provide
2542the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2543<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
2544<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2545 </td>
2546 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002548 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2549 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002550
2551
2552 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002553 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002554 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002555 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002556 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002557 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002558
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002559 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002560
2561 <ul class="entry_type_enum">
2562 <li>
2563 <span class="entry_type_enum_name">OFF</span>
2564 </li>
2565 <li>
2566 <span class="entry_type_enum_name">ON</span>
2567 </li>
2568 </ul>
2569
2570 </td> <!-- entry_type -->
2571
2572 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002573 <p>Whether video stabilization is
2574active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002575 </td>
2576
2577 <td class="entry_units">
2578 </td>
2579
2580 <td class="entry_range">
2581 </td>
2582
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002583 <td class="entry_tags">
2584 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002585 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002586 </ul>
2587 </td>
2588
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002589 </tr>
2590 <tr class="entries_header">
2591 <th class="th_details" colspan="5">Details</th>
2592 </tr>
2593 <tr class="entry_cont">
2594 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002595 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002596<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 -08002597stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002598 </td>
2599 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002600
2601
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002602 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2603 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002604
2605
2606
2607 <!-- end of kind -->
2608 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002609 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002610
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002611 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002612 <tr>
2613 <th class="th_name">Property Name</th>
2614 <th class="th_type">Type</th>
2615 <th class="th_description">Description</th>
2616 <th class="th_units">Units</th>
2617 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002618 <th class="th_tags">Tags</th>
2619 </tr>
2620 </thead>
2621
2622 <tbody>
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002634 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002635 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002636 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002637 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002638 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002639 <span class="entry_type_container">x</span>
2640
2641 <span class="entry_type_array">
2642 n
2643 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002644 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002645 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002646
2647
2648 </td> <!-- entry_type -->
2649
2650 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002651 <p>The set of auto-exposure antibanding modes that are
2652supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002653 </td>
2654
2655 <td class="entry_units">
2656 </td>
2657
2658 <td class="entry_range">
2659 </td>
2660
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002661 <td class="entry_tags">
2662 </td>
2663
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002664 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002665 <tr class="entries_header">
2666 <th class="th_details" colspan="5">Details</th>
2667 </tr>
2668 <tr class="entry_cont">
2669 <td class="entry_details" colspan="5">
2670 <p>Not all of the auto-exposure anti-banding modes may be
2671supported by a given camera device.<wbr/> This field lists the
2672valid anti-banding modes that the application may request
2673for this camera device; they must include AUTO.<wbr/></p>
2674 </td>
2675 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002676
2677
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002678 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2679 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002680
2681
2682 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002683 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002684 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002685 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002686 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002687 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002688 <span class="entry_type_container">x</span>
2689
2690 <span class="entry_type_array">
2691 n
2692 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002693 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002694 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002695
2696
2697 </td> <!-- entry_type -->
2698
2699 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002700 <p>The set of auto-exposure modes that are supported by this
2701camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002702 </td>
2703
2704 <td class="entry_units">
2705 </td>
2706
2707 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002708 </td>
2709
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002710 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002711 <ul class="entry_tags">
2712 <li><a href="#tag_BC">BC</a></li>
2713 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002714 </td>
2715
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002716 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002717 <tr class="entries_header">
2718 <th class="th_details" colspan="5">Details</th>
2719 </tr>
2720 <tr class="entry_cont">
2721 <td class="entry_details" colspan="5">
2722 <p>Not all the auto-exposure modes may be supported by a
2723given camera device,<wbr/> especially if no flash unit is
2724available.<wbr/> This entry lists the valid modes for
2725<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2726<p>All camera devices support ON,<wbr/> and all camera devices with
2727flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2728ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2729<p>Full-capability camera devices always support OFF mode,<wbr/>
2730which enables application control of camera exposure time,<wbr/>
2731sensitivity,<wbr/> and frame duration.<wbr/></p>
2732 </td>
2733 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002734
2735
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002736 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2737 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002738
2739
2740 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002741 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002742 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002743 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002744 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002745 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002746 <span class="entry_type_container">x</span>
2747
2748 <span class="entry_type_array">
2749 2 x n
2750 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002751 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002752 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002753
2754
2755 </td> <!-- entry_type -->
2756
2757 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002758 <p>List of frame rate ranges supported by the
2759AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002760 </td>
2761
2762 <td class="entry_units">
2763 </td>
2764
2765 <td class="entry_range">
2766 </td>
2767
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002768 <td class="entry_tags">
2769 </td>
2770
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002771 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002772
2773
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002774 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2775 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002776
2777
2778 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002779 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002780 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002781 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002782 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002783 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002784 <span class="entry_type_container">x</span>
2785
2786 <span class="entry_type_array">
2787 2
2788 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002789 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002790
2791
2792 </td> <!-- entry_type -->
2793
2794 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002795 <p>Maximum and minimum exposure compensation
2796setting,<wbr/> in counts of
2797android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002798 </td>
2799
2800 <td class="entry_units">
2801 </td>
2802
2803 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002804 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2805size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002806 </td>
2807
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002808 <td class="entry_tags">
2809 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002810 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002811 </ul>
2812 </td>
2813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002814 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002815
2816
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002817 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2818 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002819
2820
2821 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002822 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002823 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002824 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002825 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002826 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002827
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002828 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002829
2830
2831 </td> <!-- entry_type -->
2832
2833 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002834 <p>Smallest step by which exposure compensation
2835can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002836 </td>
2837
2838 <td class="entry_units">
2839 </td>
2840
2841 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002842 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002843 </td>
2844
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002845 <td class="entry_tags">
2846 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002847 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002848 </ul>
2849 </td>
2850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002851 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002852
2853
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002854 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2855 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002856
2857
2858 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002859 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002860 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002861 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002862 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002863 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002864 <span class="entry_type_container">x</span>
2865
2866 <span class="entry_type_array">
2867 n
2868 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002869 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002870 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002871
2872
2873 </td> <!-- entry_type -->
2874
2875 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002876 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002877selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002878 </td>
2879
2880 <td class="entry_units">
2881 </td>
2882
2883 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002884 </td>
2885
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002886 <td class="entry_tags">
2887 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002888 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002889 </ul>
2890 </td>
2891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002892 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002893 <tr class="entries_header">
2894 <th class="th_details" colspan="5">Details</th>
2895 </tr>
2896 <tr class="entry_cont">
2897 <td class="entry_details" colspan="5">
2898 <p>Not all the auto-focus modes may be supported by a
2899given camera device.<wbr/> This entry lists the valid modes for
2900<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2901<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2902adjustable 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>)
2903will support AUTO mode.<wbr/></p>
2904 </td>
2905 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002906
2907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002908 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2909 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002910
2911
2912 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002913 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002914 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002915 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002916 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002917 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002918 <span class="entry_type_container">x</span>
2919
2920 <span class="entry_type_array">
2921 n
2922 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002923 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002924 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002925
2926
2927 </td> <!-- entry_type -->
2928
2929 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002930 <p>List containing the subset of color effects
2931specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2932this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002933 </td>
2934
2935 <td class="entry_units">
2936 </td>
2937
2938 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002939 <p>Any subset of enums from those specified in
2940<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 -08002941 </td>
2942
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002943 <td class="entry_tags">
2944 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002945 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002946 </ul>
2947 </td>
2948
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002949 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002950 <tr class="entries_header">
2951 <th class="th_details" colspan="5">Details</th>
2952 </tr>
2953 <tr class="entry_cont">
2954 <td class="entry_details" colspan="5">
2955 <p>This list contains the color effect modes that can be applied to
2956images produced by the camera device.<wbr/> Only modes that have
2957been fully implemented for the current device may be included here.<wbr/>
2958Implementations are not expected to be consistent across all devices.<wbr/>
2959If no color effect modes are available for a device,<wbr/> this should
2960simply be set to OFF.<wbr/></p>
2961<p>A color effect will only be applied if
2962<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2963 </td>
2964 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002965
2966
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002967 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2968 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002969
2970
2971 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002972 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002973 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002974 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002975 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002976 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002977 <span class="entry_type_container">x</span>
2978
2979 <span class="entry_type_array">
2980 n
2981 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002982 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002983 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002984
2985
2986 </td> <!-- entry_type -->
2987
2988 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002989 <p>List containing a subset of scene modes
2990specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002991 </td>
2992
2993 <td class="entry_units">
2994 </td>
2995
2996 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002997 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
2998not including DISABLED,<wbr/> or solely DISABLED if no
2999scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3000if 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 -08003001 </td>
3002
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003003 <td class="entry_tags">
3004 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003005 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003006 </ul>
3007 </td>
3008
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003009 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003010 <tr class="entries_header">
3011 <th class="th_details" colspan="5">Details</th>
3012 </tr>
3013 <tr class="entry_cont">
3014 <td class="entry_details" colspan="5">
3015 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3016Only scene modes that have been fully implemented for the
3017camera device may be included here.<wbr/> Implementations are not expected
3018to be consistent across all devices.<wbr/> If no scene modes are supported
3019by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3020 </td>
3021 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003022
3023
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003024 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3025 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003026
3027
3028 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003029 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003030 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003031 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003032 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003033 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003034 <span class="entry_type_container">x</span>
3035
3036 <span class="entry_type_array">
3037 n
3038 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003039 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003040 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003041
3042
3043 </td> <!-- entry_type -->
3044
3045 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003046 <p>List of video stabilization modes that can
3047be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003048 </td>
3049
3050 <td class="entry_units">
3051 </td>
3052
3053 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003054 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003055 </td>
3056
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003057 <td class="entry_tags">
3058 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003059 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003060 </ul>
3061 </td>
3062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003063 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003064
3065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003066 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3067 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003068
3069
3070 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003071 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003072 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003073 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003074 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003075 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003076 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003077
Alex Raya4251d92013-04-30 16:43:44 -07003078 <span class="entry_type_array">
3079 n
3080 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003081 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003082 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003083
3084
3085 </td> <!-- entry_type -->
3086
3087 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003088 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3089that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003090 </td>
3091
3092 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003093 </td>
3094
3095 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003096 </td>
3097
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003098 <td class="entry_tags">
3099 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003100 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003101 </ul>
3102 </td>
3103
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003104 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003105 <tr class="entries_header">
3106 <th class="th_details" colspan="5">Details</th>
3107 </tr>
3108 <tr class="entry_cont">
3109 <td class="entry_details" colspan="5">
3110 <p>Not all the auto-white-balance modes may be supported by a
3111given camera device.<wbr/> This entry lists the valid modes for
3112<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3113<p>All camera devices will support ON mode.<wbr/></p>
3114<p>Full-capability camera devices will always support OFF mode,<wbr/>
3115which enables application control of white balance,<wbr/> by using
3116<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>
3117 </td>
3118 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003119
3120
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003121 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3122 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003123
3124
3125 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003126 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003127 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003130 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003133
3134
3135 </td> <!-- entry_type -->
3136
3137 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003138 <p>For AE,<wbr/> AWB,<wbr/> and AF,<wbr/> how many individual
3139regions can be listed for metering?</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003140 </td>
3141
3142 <td class="entry_units">
3143 </td>
3144
3145 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08003146 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003147 </td>
3148
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003149 <td class="entry_tags">
3150 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003151 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003152 </ul>
3153 </td>
3154
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003155 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003156
3157
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003158 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3159 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003160
3161
3162 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003163 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003164 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003165 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003166 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003167 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003168 <span class="entry_type_container">x</span>
3169
3170 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003171 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003172 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003173 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003174
3175
3176 </td> <!-- entry_type -->
3177
3178 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003179 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3180settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003181 </td>
3182
3183 <td class="entry_units">
3184 </td>
3185
3186 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003187 <p>For each available scene mode,<wbr/> the list must contain three
3188entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3189<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
3190by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3191where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003192 </td>
3193
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003194 <td class="entry_tags">
3195 <ul class="entry_tags">
3196 <li><a href="#tag_BC">BC</a></li>
3197 </ul>
3198 </td>
3199
3200 </tr>
3201 <tr class="entries_header">
3202 <th class="th_details" colspan="5">Details</th>
3203 </tr>
3204 <tr class="entry_cont">
3205 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003206 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3207to 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/>
3208and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3209that scene mode.<wbr/></p>
3210<p>The order of this list matches that of availableSceneModes,<wbr/>
3211with 3 entries for each mode.<wbr/> The overrides listed
3212for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3213mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3214<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
3215used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3216is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3217overrides should be set to 0.<wbr/></p>
3218<p>For example,<wbr/> if availableSceneModes contains
3219<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3220expects sceneModeOverrides to have 9 entries formatted like:
3221<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3222ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003223 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003224 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003225
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003226 <tr class="entries_header">
3227 <th class="th_details" colspan="5">HAL Implementation Details</th>
3228 </tr>
3229 <tr class="entry_cont">
3230 <td class="entry_details" colspan="5">
3231 <p>To maintain backward compatibility,<wbr/> this list will be made available
3232in the static metadata of the camera service.<wbr/> The camera service will
3233use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3234<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
3235mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3236 </td>
3237 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003238
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003239 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3240 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003241
3242
3243
3244 <!-- end of kind -->
3245 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003246 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003247
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003248 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003249 <tr>
3250 <th class="th_name">Property Name</th>
3251 <th class="th_type">Type</th>
3252 <th class="th_description">Description</th>
3253 <th class="th_units">Units</th>
3254 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003255 <th class="th_tags">Tags</th>
3256 </tr>
3257 </thead>
3258
3259 <tbody>
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003271 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003272 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003273 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003274 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003275 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003276
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003277 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003278
3279
3280 </td> <!-- entry_type -->
3281
3282 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003283 <p>The ID sent with the latest
3284CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003285 </td>
3286
3287 <td class="entry_units">
3288 </td>
3289
3290 <td class="entry_range">
3291 </td>
3292
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003293 <td class="entry_tags">
3294 </td>
3295
3296 </tr>
3297 <tr class="entries_header">
3298 <th class="th_details" colspan="5">Details</th>
3299 </tr>
3300 <tr class="entry_cont">
3301 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003302 <p>Must be 0 if no
3303CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3304by HAL.<wbr/> Always updated even if AE algorithm ignores the
3305trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003306 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003307 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003308
3309
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003310 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3311 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003312
3313
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003314 <tr class="entry" id="dynamic_android.control.aeMode">
3315 <td class="entry_name" rowspan="3">
3316 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3317 </td>
3318 <td class="entry_type">
3319 <span class="entry_type_name entry_type_name_enum">byte</span>
3320
3321 <span class="entry_type_visibility"> [public]</span>
3322
3323 <ul class="entry_type_enum">
3324 <li>
3325 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003326 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3327the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3328<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3329<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3330device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3331a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003332 </li>
3333 <li>
3334 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003335 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3336with no flash control.<wbr/> The application's values for
3337<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3338<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3339<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3340application has control over the various
3341android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003342 </li>
3343 <li>
3344 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003345 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3346the camera's flash unit,<wbr/> firing it in low-light
3347conditions.<wbr/> The flash may be fired during a
3348precapture sequence (triggered by
3349<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3350for captures for which the
3351<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3352STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003353 </li>
3354 <li>
3355 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003356 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3357the camera's flash unit,<wbr/> always firing it for still
3358captures.<wbr/> The flash may be fired during a precapture
3359sequence (triggered by
3360<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3361be fired for captures for which the
3362<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3363STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003364 </li>
3365 <li>
3366 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003367 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3368reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3369a red eye reduction flash will fire during the
3370precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003371 </li>
3372 </ul>
3373
3374 </td> <!-- entry_type -->
3375
3376 <td class="entry_description">
3377 <p>The desired mode for the camera device's
3378auto-exposure routine.<wbr/></p>
3379 </td>
3380
3381 <td class="entry_units">
3382 </td>
3383
3384 <td class="entry_range">
3385 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3386 </td>
3387
3388 <td class="entry_tags">
3389 <ul class="entry_tags">
3390 <li><a href="#tag_BC">BC</a></li>
3391 </ul>
3392 </td>
3393
3394 </tr>
3395 <tr class="entries_header">
3396 <th class="th_details" colspan="5">Details</th>
3397 </tr>
3398 <tr class="entry_cont">
3399 <td class="entry_details" colspan="5">
3400 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3401AUTO.<wbr/></p>
3402<p>When set to any of the ON modes,<wbr/> the camera device's
3403auto-exposure routine is enabled,<wbr/> overriding the
3404application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3405and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3406<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3407<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3408is selected,<wbr/> the camera device's flash unit controls are
3409also overridden.<wbr/></p>
3410<p>The FLASH modes are only available if the camera device
3411has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3412<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3413ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3414<p>When set to any of the ON modes,<wbr/> the values chosen by the
3415camera device auto-exposure routine for the overridden
3416fields for a given capture will be available in its
3417CaptureResult.<wbr/></p>
3418 </td>
3419 </tr>
3420
3421
3422 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3423 <!-- end of entry -->
3424
3425
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003426 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003427 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003428 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003429 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003430 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003431 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003432 <span class="entry_type_container">x</span>
3433
3434 <span class="entry_type_array">
3435 5 x area_count
3436 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003437 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003438
3439
3440 </td> <!-- entry_type -->
3441
3442 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003443 <p>List of areas to use for
3444metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003445 </td>
3446
3447 <td class="entry_units">
3448 </td>
3449
3450 <td class="entry_range">
3451 </td>
3452
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003453 <td class="entry_tags">
3454 <ul class="entry_tags">
3455 <li><a href="#tag_BC">BC</a></li>
3456 </ul>
3457 </td>
3458
3459 </tr>
3460 <tr class="entries_header">
3461 <th class="th_details" colspan="5">Details</th>
3462 </tr>
3463 <tr class="entry_cont">
3464 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003465 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3466xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3467specified coordinates.<wbr/></p>
3468<p>The coordinate system is based on the active pixel array,<wbr/>
3469with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003470(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3471<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 -08003472bottom-right pixel in the active pixel array.<wbr/> The weight
3473should be nonnegative.<wbr/></p>
3474<p>If all regions have 0 weight,<wbr/> then no specific metering area
3475needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003476outside 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 -08003477should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003478used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003479 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003480 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003481
3482
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003483 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3484 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003485
3486
3487 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003488 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003489 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003490 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003491 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003492 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003493
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003494 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003495
3496 <ul class="entry_type_enum">
3497 <li>
3498 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003499 <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 -08003500this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003501 </li>
3502 <li>
3503 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003504 <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 -08003505for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003506 </li>
3507 <li>
3508 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003509 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003510current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003511 </li>
3512 <li>
3513 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003514 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003515 </li>
3516 <li>
3517 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003518 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3519needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003520capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003521 </li>
3522 <li>
3523 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003524 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003525(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3526and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003527completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003528FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003529 </li>
3530 </ul>
3531
3532 </td> <!-- entry_type -->
3533
3534 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003535 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003536 </td>
3537
3538 <td class="entry_units">
3539 </td>
3540
3541 <td class="entry_range">
3542 </td>
3543
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003544 <td class="entry_tags">
3545 </td>
3546
3547 </tr>
3548 <tr class="entries_header">
3549 <th class="th_details" colspan="5">Details</th>
3550 </tr>
3551 <tr class="entry_cont">
3552 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003553 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3554resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3555or <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
3556the algorithm states to INACTIVE.<wbr/></p>
3557<p>The camera device can do several state transitions between two results,<wbr/> if it is
3558allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3559seen in a result.<wbr/></p>
3560<p>The state in the result is the state for this image (in sync with this image): if
3561AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3562be good to use.<wbr/></p>
3563<p>Below are state transition tables for different AE modes.<wbr/></p>
3564<table>
3565<thead>
3566<tr>
3567<th align="center">State</th>
3568<th align="center">Transition Cause</th>
3569<th align="center">New State</th>
3570<th align="center">Notes</th>
3571</tr>
3572</thead>
3573<tbody>
3574<tr>
3575<td align="center">INACTIVE</td>
3576<td align="center"></td>
3577<td align="center">INACTIVE</td>
3578<td align="center">Camera device auto exposure algorithm is disabled</td>
3579</tr>
3580</tbody>
3581</table>
3582<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3583<table>
3584<thead>
3585<tr>
3586<th align="center">State</th>
3587<th align="center">Transition Cause</th>
3588<th align="center">New State</th>
3589<th align="center">Notes</th>
3590</tr>
3591</thead>
3592<tbody>
3593<tr>
3594<td align="center">INACTIVE</td>
3595<td align="center">Camera device initiates AE scan</td>
3596<td align="center">SEARCHING</td>
3597<td align="center">Values changing</td>
3598</tr>
3599<tr>
3600<td align="center">INACTIVE</td>
3601<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3602<td align="center">LOCKED</td>
3603<td align="center">Values locked</td>
3604</tr>
3605<tr>
3606<td align="center">SEARCHING</td>
3607<td align="center">Camera device finishes AE scan</td>
3608<td align="center">CONVERGED</td>
3609<td align="center">Good values,<wbr/> not changing</td>
3610</tr>
3611<tr>
3612<td align="center">SEARCHING</td>
3613<td align="center">Camera device finishes AE scan</td>
3614<td align="center">FLASH_<wbr/>REQUIRED</td>
3615<td align="center">Converged but too dark w/<wbr/>o flash</td>
3616</tr>
3617<tr>
3618<td align="center">SEARCHING</td>
3619<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3620<td align="center">LOCKED</td>
3621<td align="center">Values locked</td>
3622</tr>
3623<tr>
3624<td align="center">CONVERGED</td>
3625<td align="center">Camera device initiates AE scan</td>
3626<td align="center">SEARCHING</td>
3627<td align="center">Values changing</td>
3628</tr>
3629<tr>
3630<td align="center">CONVERGED</td>
3631<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3632<td align="center">LOCKED</td>
3633<td align="center">Values locked</td>
3634</tr>
3635<tr>
3636<td align="center">FLASH_<wbr/>REQUIRED</td>
3637<td align="center">Camera device initiates AE scan</td>
3638<td align="center">SEARCHING</td>
3639<td align="center">Values changing</td>
3640</tr>
3641<tr>
3642<td align="center">FLASH_<wbr/>REQUIRED</td>
3643<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3644<td align="center">LOCKED</td>
3645<td align="center">Values locked</td>
3646</tr>
3647<tr>
3648<td align="center">LOCKED</td>
3649<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3650<td align="center">SEARCHING</td>
3651<td align="center">Values not good after unlock</td>
3652</tr>
3653<tr>
3654<td align="center">LOCKED</td>
3655<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3656<td align="center">CONVERGED</td>
3657<td align="center">Values good after unlock</td>
3658</tr>
3659<tr>
3660<td align="center">LOCKED</td>
3661<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3662<td align="center">FLASH_<wbr/>REQUIRED</td>
3663<td align="center">Exposure good,<wbr/> but too dark</td>
3664</tr>
3665<tr>
3666<td align="center">PRECAPTURE</td>
3667<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3668<td align="center">CONVERGED</td>
3669<td align="center">Ready for high-quality capture</td>
3670</tr>
3671<tr>
3672<td align="center">PRECAPTURE</td>
3673<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3674<td align="center">LOCKED</td>
3675<td align="center">Ready for high-quality capture</td>
3676</tr>
3677<tr>
3678<td align="center">Any state</td>
3679<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3680<td align="center">PRECAPTURE</td>
3681<td align="center">Start AE precapture metering sequence</td>
3682</tr>
3683</tbody>
3684</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003685 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003686 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003687
3688
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003689 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3690 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003691
3692
3693 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003694 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003695 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003696 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003697 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003698 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003699
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003700 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003701
3702 <ul class="entry_type_enum">
3703 <li>
3704 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003705 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3706<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3707application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003708 </li>
3709 <li>
3710 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003711 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3712<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
3713is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3714the autofocus trigger action is called.<wbr/> When that trigger
3715is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3716the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3717<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3718and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003719 </li>
3720 <li>
3721 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003722 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3723autofocus trigger action is called.<wbr/></p>
3724<p>When that trigger is activated,<wbr/> AF must transition to
3725ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3726NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3727position to default,<wbr/> and sets the AF state to
3728INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003729 </li>
3730 <li>
3731 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003732 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3733position continually to attempt to provide a
3734constantly-in-focus image stream.<wbr/></p>
3735<p>The focusing behavior should be suitable for good quality
3736video recording; typically this means slower focus
3737movement and no overshoots.<wbr/> When the AF trigger is not
3738involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3739and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3740states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3741the algorithm should immediately transition into
3742AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3743lens position until a cancel AF trigger is received.<wbr/></p>
3744<p>Once cancel is received,<wbr/> the algorithm should transition
3745back to INACTIVE and resume passive scan.<wbr/> Note that this
3746behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3747ongoing PASSIVE_<wbr/>SCAN must immediately be
3748canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003749 </li>
3750 <li>
3751 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003752 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3753position continually to attempt to provide a
3754constantly-in-focus image stream.<wbr/></p>
3755<p>The focusing behavior should be suitable for still image
3756capture; typically this means focusing as fast as
3757possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3758algorithm should start in INACTIVE state,<wbr/> and then
3759transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3760appropriate as it attempts to maintain focus.<wbr/> When the AF
3761trigger is activated,<wbr/> the algorithm should finish its
3762PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3763AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3764lens position until a cancel AF trigger is received.<wbr/></p>
3765<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3766should transition back to INACTIVE and then act as if it
3767has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003768 </li>
3769 <li>
3770 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003771 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3772trigger is ignored,<wbr/> AF state should always be
3773INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003774 </li>
3775 </ul>
3776
3777 </td> <!-- entry_type -->
3778
3779 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003780 <p>Whether AF is currently enabled,<wbr/> and what
3781mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003782 </td>
3783
3784 <td class="entry_units">
3785 </td>
3786
3787 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003788 <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 -08003789 </td>
3790
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003791 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003792 <ul class="entry_tags">
3793 <li><a href="#tag_BC">BC</a></li>
3794 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003795 </td>
3796
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003797 </tr>
3798 <tr class="entries_header">
3799 <th class="th_details" colspan="5">Details</th>
3800 </tr>
3801 <tr class="entry_cont">
3802 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003803 <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 -08003804<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3805the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3806in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003807 </td>
3808 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003809
3810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003811 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3812 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003813
3814
3815 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003816 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003817 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003818 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003819 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003820 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003821 <span class="entry_type_container">x</span>
3822
3823 <span class="entry_type_array">
3824 5 x area_count
3825 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003826 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003827
3828
3829 </td> <!-- entry_type -->
3830
3831 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003832 <p>List of areas to use for focus
3833estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003834 </td>
3835
3836 <td class="entry_units">
3837 </td>
3838
3839 <td class="entry_range">
3840 </td>
3841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003842 <td class="entry_tags">
3843 <ul class="entry_tags">
3844 <li><a href="#tag_BC">BC</a></li>
3845 </ul>
3846 </td>
3847
3848 </tr>
3849 <tr class="entries_header">
3850 <th class="th_details" colspan="5">Details</th>
3851 </tr>
3852 <tr class="entry_cont">
3853 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003854 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3855xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3856specified coordinates.<wbr/></p>
3857<p>The coordinate system is based on the active pixel array,<wbr/>
3858with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003859(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3860<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 -08003861bottom-right pixel in the active pixel array.<wbr/> The weight
3862should be nonnegative.<wbr/></p>
3863<p>If all regions have 0 weight,<wbr/> then no specific focus area
3864needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003865outside 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 -08003866should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003867used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003868 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003869 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003870
3871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003872 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3873 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003874
3875
3876 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003877 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003878 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003879 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003880 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003881 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003882
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003883 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003884
3885 <ul class="entry_type_enum">
3886 <li>
3887 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003888 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3889to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3890this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003891 </li>
3892 <li>
3893 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003894 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3895currently doing an AF scan initiated by a continuous
3896autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003897 </li>
3898 <li>
3899 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003900 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3901believes it is in focus,<wbr/> but may restart scanning at
3902any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003903 </li>
3904 <li>
3905 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003906 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3907an AF scan because it was triggered by AF
3908trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003909 </li>
3910 <li>
3911 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003912 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3913believes it is focused correctly and is
3914locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003915 </li>
3916 <li>
3917 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003918 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3919failed to focus successfully and is
3920locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003921 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003922 <li>
3923 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003924 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3925passive scan without finding focus,<wbr/> and may restart
3926scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003927 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003928 </ul>
3929
3930 </td> <!-- entry_type -->
3931
3932 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003933 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003934 </td>
3935
3936 <td class="entry_units">
3937 </td>
3938
3939 <td class="entry_range">
3940 </td>
3941
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003942 <td class="entry_tags">
3943 </td>
3944
3945 </tr>
3946 <tr class="entries_header">
3947 <th class="th_details" colspan="5">Details</th>
3948 </tr>
3949 <tr class="entry_cont">
3950 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003951 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3952resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3953or <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
3954the algorithm states to INACTIVE.<wbr/></p>
3955<p>The camera device can do several state transitions between two results,<wbr/> if it is
3956allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3957seen in a result.<wbr/></p>
3958<p>The state in the result is the state for this image (in sync with this image): if
3959AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3960be sharp.<wbr/></p>
3961<p>Below are state transition tables for different AF modes.<wbr/></p>
3962<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>
3963<table>
3964<thead>
3965<tr>
3966<th align="center">State</th>
3967<th align="center">Transition Cause</th>
3968<th align="center">New State</th>
3969<th align="center">Notes</th>
3970</tr>
3971</thead>
3972<tbody>
3973<tr>
3974<td align="center">INACTIVE</td>
3975<td align="center"></td>
3976<td align="center">INACTIVE</td>
3977<td align="center">Never changes</td>
3978</tr>
3979</tbody>
3980</table>
3981<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>
3982<table>
3983<thead>
3984<tr>
3985<th align="center">State</th>
3986<th align="center">Transition Cause</th>
3987<th align="center">New State</th>
3988<th align="center">Notes</th>
3989</tr>
3990</thead>
3991<tbody>
3992<tr>
3993<td align="center">INACTIVE</td>
3994<td align="center">AF_<wbr/>TRIGGER</td>
3995<td align="center">ACTIVE_<wbr/>SCAN</td>
3996<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
3997</tr>
3998<tr>
3999<td align="center">ACTIVE_<wbr/>SCAN</td>
4000<td align="center">AF sweep done</td>
4001<td align="center">FOCUSED_<wbr/>LOCKED</td>
4002<td align="center">Focused,<wbr/> Lens now locked</td>
4003</tr>
4004<tr>
4005<td align="center">ACTIVE_<wbr/>SCAN</td>
4006<td align="center">AF sweep done</td>
4007<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4008<td align="center">Not focused,<wbr/> Lens now locked</td>
4009</tr>
4010<tr>
4011<td align="center">ACTIVE_<wbr/>SCAN</td>
4012<td align="center">AF_<wbr/>CANCEL</td>
4013<td align="center">INACTIVE</td>
4014<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4015</tr>
4016<tr>
4017<td align="center">FOCUSED_<wbr/>LOCKED</td>
4018<td align="center">AF_<wbr/>CANCEL</td>
4019<td align="center">INACTIVE</td>
4020<td align="center">Cancel/<wbr/>reset AF</td>
4021</tr>
4022<tr>
4023<td align="center">FOCUSED_<wbr/>LOCKED</td>
4024<td align="center">AF_<wbr/>TRIGGER</td>
4025<td align="center">ACTIVE_<wbr/>SCAN</td>
4026<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4027</tr>
4028<tr>
4029<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4030<td align="center">AF_<wbr/>CANCEL</td>
4031<td align="center">INACTIVE</td>
4032<td align="center">Cancel/<wbr/>reset AF</td>
4033</tr>
4034<tr>
4035<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4036<td align="center">AF_<wbr/>TRIGGER</td>
4037<td align="center">ACTIVE_<wbr/>SCAN</td>
4038<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4039</tr>
4040<tr>
4041<td align="center">Any state</td>
4042<td align="center">Mode change</td>
4043<td align="center">INACTIVE</td>
4044<td align="center"></td>
4045</tr>
4046</tbody>
4047</table>
4048<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>
4049<table>
4050<thead>
4051<tr>
4052<th align="center">State</th>
4053<th align="center">Transition Cause</th>
4054<th align="center">New State</th>
4055<th align="center">Notes</th>
4056</tr>
4057</thead>
4058<tbody>
4059<tr>
4060<td align="center">INACTIVE</td>
4061<td align="center">Camera device initiates new scan</td>
4062<td align="center">PASSIVE_<wbr/>SCAN</td>
4063<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4064</tr>
4065<tr>
4066<td align="center">INACTIVE</td>
4067<td align="center">AF_<wbr/>TRIGGER</td>
4068<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4069<td align="center">AF state query,<wbr/> Lens now locked</td>
4070</tr>
4071<tr>
4072<td align="center">PASSIVE_<wbr/>SCAN</td>
4073<td align="center">Camera device completes current scan</td>
4074<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4075<td align="center">End AF scan,<wbr/> Lens now locked</td>
4076</tr>
4077<tr>
4078<td align="center">PASSIVE_<wbr/>SCAN</td>
4079<td align="center">Camera device fails current scan</td>
4080<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4081<td align="center">End AF scan,<wbr/> Lens now locked</td>
4082</tr>
4083<tr>
4084<td align="center">PASSIVE_<wbr/>SCAN</td>
4085<td align="center">AF_<wbr/>TRIGGER</td>
4086<td align="center">FOCUSED_<wbr/>LOCKED</td>
4087<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4088</tr>
4089<tr>
4090<td align="center">PASSIVE_<wbr/>SCAN</td>
4091<td align="center">AF_<wbr/>TRIGGER</td>
4092<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4093<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4094</tr>
4095<tr>
4096<td align="center">PASSIVE_<wbr/>SCAN</td>
4097<td align="center">AF_<wbr/>CANCEL</td>
4098<td align="center">INACTIVE</td>
4099<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4100</tr>
4101<tr>
4102<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4103<td align="center">Camera device initiates new scan</td>
4104<td align="center">PASSIVE_<wbr/>SCAN</td>
4105<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4106</tr>
4107<tr>
4108<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4109<td align="center">Camera device initiates new scan</td>
4110<td align="center">PASSIVE_<wbr/>SCAN</td>
4111<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4112</tr>
4113<tr>
4114<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4115<td align="center">AF_<wbr/>TRIGGER</td>
4116<td align="center">FOCUSED_<wbr/>LOCKED</td>
4117<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4118</tr>
4119<tr>
4120<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4121<td align="center">AF_<wbr/>TRIGGER</td>
4122<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4123<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4124</tr>
4125<tr>
4126<td align="center">FOCUSED_<wbr/>LOCKED</td>
4127<td align="center">AF_<wbr/>TRIGGER</td>
4128<td align="center">FOCUSED_<wbr/>LOCKED</td>
4129<td align="center">No effect</td>
4130</tr>
4131<tr>
4132<td align="center">FOCUSED_<wbr/>LOCKED</td>
4133<td align="center">AF_<wbr/>CANCEL</td>
4134<td align="center">INACTIVE</td>
4135<td align="center">Restart AF scan</td>
4136</tr>
4137<tr>
4138<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4139<td align="center">AF_<wbr/>TRIGGER</td>
4140<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4141<td align="center">No effect</td>
4142</tr>
4143<tr>
4144<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4145<td align="center">AF_<wbr/>CANCEL</td>
4146<td align="center">INACTIVE</td>
4147<td align="center">Restart AF scan</td>
4148</tr>
4149</tbody>
4150</table>
4151<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>
4152<table>
4153<thead>
4154<tr>
4155<th align="center">State</th>
4156<th align="center">Transition Cause</th>
4157<th align="center">New State</th>
4158<th align="center">Notes</th>
4159</tr>
4160</thead>
4161<tbody>
4162<tr>
4163<td align="center">INACTIVE</td>
4164<td align="center">Camera device initiates new scan</td>
4165<td align="center">PASSIVE_<wbr/>SCAN</td>
4166<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4167</tr>
4168<tr>
4169<td align="center">INACTIVE</td>
4170<td align="center">AF_<wbr/>TRIGGER</td>
4171<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4172<td align="center">AF state query,<wbr/> Lens now locked</td>
4173</tr>
4174<tr>
4175<td align="center">PASSIVE_<wbr/>SCAN</td>
4176<td align="center">Camera device completes current scan</td>
4177<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4178<td align="center">End AF scan,<wbr/> Lens now locked</td>
4179</tr>
4180<tr>
4181<td align="center">PASSIVE_<wbr/>SCAN</td>
4182<td align="center">Camera device fails current scan</td>
4183<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4184<td align="center">End AF scan,<wbr/> Lens now locked</td>
4185</tr>
4186<tr>
4187<td align="center">PASSIVE_<wbr/>SCAN</td>
4188<td align="center">AF_<wbr/>TRIGGER</td>
4189<td align="center">FOCUSED_<wbr/>LOCKED</td>
4190<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4191</tr>
4192<tr>
4193<td align="center">PASSIVE_<wbr/>SCAN</td>
4194<td align="center">AF_<wbr/>TRIGGER</td>
4195<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4196<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4197</tr>
4198<tr>
4199<td align="center">PASSIVE_<wbr/>SCAN</td>
4200<td align="center">AF_<wbr/>CANCEL</td>
4201<td align="center">INACTIVE</td>
4202<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4203</tr>
4204<tr>
4205<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4206<td align="center">Camera device initiates new scan</td>
4207<td align="center">PASSIVE_<wbr/>SCAN</td>
4208<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4209</tr>
4210<tr>
4211<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4212<td align="center">Camera device initiates new scan</td>
4213<td align="center">PASSIVE_<wbr/>SCAN</td>
4214<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4215</tr>
4216<tr>
4217<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4218<td align="center">AF_<wbr/>TRIGGER</td>
4219<td align="center">FOCUSED_<wbr/>LOCKED</td>
4220<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4221</tr>
4222<tr>
4223<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4224<td align="center">AF_<wbr/>TRIGGER</td>
4225<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4226<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4227</tr>
4228<tr>
4229<td align="center">FOCUSED_<wbr/>LOCKED</td>
4230<td align="center">AF_<wbr/>TRIGGER</td>
4231<td align="center">FOCUSED_<wbr/>LOCKED</td>
4232<td align="center">No effect</td>
4233</tr>
4234<tr>
4235<td align="center">FOCUSED_<wbr/>LOCKED</td>
4236<td align="center">AF_<wbr/>CANCEL</td>
4237<td align="center">INACTIVE</td>
4238<td align="center">Restart AF scan</td>
4239</tr>
4240<tr>
4241<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4242<td align="center">AF_<wbr/>TRIGGER</td>
4243<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4244<td align="center">No effect</td>
4245</tr>
4246<tr>
4247<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4248<td align="center">AF_<wbr/>CANCEL</td>
4249<td align="center">INACTIVE</td>
4250<td align="center">Restart AF scan</td>
4251</tr>
4252</tbody>
4253</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004254 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004255 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004256
4257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004258 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4259 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004260
4261
4262 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004263 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004264 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004265 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004266 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004267 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004268
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004269 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004270
4271
4272 </td> <!-- entry_type -->
4273
4274 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004275 <p>The ID sent with the latest
4276CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004277 </td>
4278
4279 <td class="entry_units">
4280 </td>
4281
4282 <td class="entry_range">
4283 </td>
4284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004285 <td class="entry_tags">
4286 </td>
4287
4288 </tr>
4289 <tr class="entries_header">
4290 <th class="th_details" colspan="5">Details</th>
4291 </tr>
4292 <tr class="entry_cont">
4293 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004294 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4295received yet by HAL.<wbr/> Always updated even if AF algorithm
4296ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004297 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004298 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004299
4300
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004301 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4302 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004303
4304
4305 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004306 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004307 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004308 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004309 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004310 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004311
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004312 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004313
4314 <ul class="entry_type_enum">
4315 <li>
4316 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004317 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4318the application-selected color transform matrix
4319(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4320(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4321device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004322 </li>
4323 <li>
4324 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004325 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4326the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4327and <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 -08004328 </li>
4329 <li>
4330 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004331 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4332the camera device uses incandescent light as the assumed scene
4333illumination for white balance.<wbr/> While the exact white balance
4334transforms are up to the camera device,<wbr/> they will approximately
4335match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004336 </li>
4337 <li>
4338 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004339 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4340the camera device uses fluorescent light as the assumed scene
4341illumination for white balance.<wbr/> While the exact white balance
4342transforms are up to the camera device,<wbr/> they will approximately
4343match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004344 </li>
4345 <li>
4346 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004347 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4348the camera device uses warm fluorescent light as the assumed scene
4349illumination for white balance.<wbr/> While the exact white balance
4350transforms are up to the camera device,<wbr/> they will approximately
4351match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004352 </li>
4353 <li>
4354 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004355 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4356the camera device uses daylight light as the assumed scene
4357illumination for white balance.<wbr/> While the exact white balance
4358transforms are up to the camera device,<wbr/> they will approximately
4359match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004360 </li>
4361 <li>
4362 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004363 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4364the camera device uses cloudy daylight light as the assumed scene
4365illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004366 </li>
4367 <li>
4368 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004369 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4370the camera device uses twilight light as the assumed scene
4371illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004372 </li>
4373 <li>
4374 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004375 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4376the camera device uses shade light as the assumed scene
4377illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004378 </li>
4379 </ul>
4380
4381 </td> <!-- entry_type -->
4382
4383 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004384 <p>Whether AWB is currently setting the color
4385transform fields,<wbr/> and what its illumination target
4386is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004387 </td>
4388
4389 <td class="entry_units">
4390 </td>
4391
4392 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004393 <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 -08004394 </td>
4395
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004396 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004397 <ul class="entry_tags">
4398 <li><a href="#tag_BC">BC</a></li>
4399 <li><a href="#tag_AWB">AWB</a></li>
4400 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004401 </td>
4402
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004403 </tr>
4404 <tr class="entries_header">
4405 <th class="th_details" colspan="5">Details</th>
4406 </tr>
4407 <tr class="entry_cont">
4408 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004409 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4410<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4411routine is enabled,<wbr/> overriding the application's selected
4412<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
4413<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4414<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4415routine is disabled.<wbr/> The applicantion manually controls the white
4416balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4417and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4418<p>When set to any other modes,<wbr/> the camera device's auto white balance
4419routine is disabled.<wbr/> The camera device uses each particular illumination
4420target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004421 </td>
4422 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004423
4424
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004425 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4426 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004427
4428
4429 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004430 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004431 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004432 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004433 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004434 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004435 <span class="entry_type_container">x</span>
4436
4437 <span class="entry_type_array">
4438 5 x area_count
4439 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004440 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004441
4442
4443 </td> <!-- entry_type -->
4444
4445 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004446 <p>List of areas to use for illuminant
4447estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004448 </td>
4449
4450 <td class="entry_units">
4451 </td>
4452
4453 <td class="entry_range">
4454 </td>
4455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004456 <td class="entry_tags">
4457 <ul class="entry_tags">
4458 <li><a href="#tag_BC">BC</a></li>
4459 </ul>
4460 </td>
4461
4462 </tr>
4463 <tr class="entries_header">
4464 <th class="th_details" colspan="5">Details</th>
4465 </tr>
4466 <tr class="entry_cont">
4467 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004468 <p>Only used in AUTO mode.<wbr/></p>
4469<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
4470xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
4471specified coordinates.<wbr/></p>
4472<p>The coordinate system is based on the active pixel array,<wbr/>
4473with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004474(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4475<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 -08004476bottom-right pixel in the active pixel array.<wbr/> The weight
4477should be nonnegative.<wbr/></p>
4478<p>If all regions have 0 weight,<wbr/> then no specific metering area
4479needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004480outside 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 -08004481should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08004482used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004483 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004484 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004485
4486
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004487 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4488 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004489
4490
4491 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004492 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004493 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004494 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004495 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004496 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004497
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004498 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004499
4500 <ul class="entry_type_enum">
4501 <li>
4502 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004503 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4504starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004505 </li>
4506 <li>
4507 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004508 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004509values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004510 </li>
4511 <li>
4512 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004513 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004514current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004515 </li>
4516 <li>
4517 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004518 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004519 </li>
4520 </ul>
4521
4522 </td> <!-- entry_type -->
4523
4524 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004525 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004526 </td>
4527
4528 <td class="entry_units">
4529 </td>
4530
4531 <td class="entry_range">
4532 </td>
4533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004534 <td class="entry_tags">
4535 </td>
4536
4537 </tr>
4538 <tr class="entries_header">
4539 <th class="th_details" colspan="5">Details</th>
4540 </tr>
4541 <tr class="entry_cont">
4542 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004543 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4544resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4545or <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
4546the algorithm states to INACTIVE.<wbr/></p>
4547<p>The camera device can do several state transitions between two results,<wbr/> if it is
4548allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4549a result.<wbr/></p>
4550<p>The state in the result is the state for this image (in sync with this image): if
4551AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4552be good to use.<wbr/></p>
4553<p>Below are state transition tables for different AWB modes.<wbr/></p>
4554<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4555<table>
4556<thead>
4557<tr>
4558<th align="center">State</th>
4559<th align="center">Transition Cause</th>
4560<th align="center">New State</th>
4561<th align="center">Notes</th>
4562</tr>
4563</thead>
4564<tbody>
4565<tr>
4566<td align="center">INACTIVE</td>
4567<td align="center"></td>
4568<td align="center">INACTIVE</td>
4569<td align="center">Camera device auto white balance algorithm is disabled</td>
4570</tr>
4571</tbody>
4572</table>
4573<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4574<table>
4575<thead>
4576<tr>
4577<th align="center">State</th>
4578<th align="center">Transition Cause</th>
4579<th align="center">New State</th>
4580<th align="center">Notes</th>
4581</tr>
4582</thead>
4583<tbody>
4584<tr>
4585<td align="center">INACTIVE</td>
4586<td align="center">Camera device initiates AWB scan</td>
4587<td align="center">SEARCHING</td>
4588<td align="center">Values changing</td>
4589</tr>
4590<tr>
4591<td align="center">INACTIVE</td>
4592<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4593<td align="center">LOCKED</td>
4594<td align="center">Values locked</td>
4595</tr>
4596<tr>
4597<td align="center">SEARCHING</td>
4598<td align="center">Camera device finishes AWB scan</td>
4599<td align="center">CONVERGED</td>
4600<td align="center">Good values,<wbr/> not changing</td>
4601</tr>
4602<tr>
4603<td align="center">SEARCHING</td>
4604<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4605<td align="center">LOCKED</td>
4606<td align="center">Values locked</td>
4607</tr>
4608<tr>
4609<td align="center">CONVERGED</td>
4610<td align="center">Camera device initiates AWB scan</td>
4611<td align="center">SEARCHING</td>
4612<td align="center">Values changing</td>
4613</tr>
4614<tr>
4615<td align="center">CONVERGED</td>
4616<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4617<td align="center">LOCKED</td>
4618<td align="center">Values locked</td>
4619</tr>
4620<tr>
4621<td align="center">LOCKED</td>
4622<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4623<td align="center">SEARCHING</td>
4624<td align="center">Values not good after unlock</td>
4625</tr>
4626<tr>
4627<td align="center">LOCKED</td>
4628<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4629<td align="center">CONVERGED</td>
4630<td align="center">Values good after unlock</td>
4631</tr>
4632</tbody>
4633</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004634 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004635 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004636
4637
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004638 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4639 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004640
4641
4642 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004643 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004644 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004645 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004646 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004647 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004648
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004649 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004650
4651 <ul class="entry_type_enum">
4652 <li>
4653 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004654 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4655routines are disabled,<wbr/> no other settings in
4656android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004657 </li>
4658 <li>
4659 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004660 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4661Manual control of capture parameters is disabled.<wbr/> All
4662controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4663effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004664 </li>
4665 <li>
4666 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004667 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4668control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4669controls; the HAL must ignore those settings while
4670USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4671scene mode).<wbr/> Other control entries are still active.<wbr/>
4672This setting can only be used if availableSceneModes !=
4673UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004674 </li>
4675 </ul>
4676
4677 </td> <!-- entry_type -->
4678
4679 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004680 <p>Overall mode of 3A control
4681routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004682 </td>
4683
4684 <td class="entry_units">
4685 </td>
4686
4687 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004688 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004689 </td>
4690
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004691 <td class="entry_tags">
4692 <ul class="entry_tags">
4693 <li><a href="#tag_BC">BC</a></li>
4694 </ul>
4695 </td>
4696
4697 </tr>
4698 <tr class="entries_header">
4699 <th class="th_details" colspan="5">Details</th>
4700 </tr>
4701 <tr class="entry_cont">
4702 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004703 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004704by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004705capture parameters itself.<wbr/></p>
4706<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004707android.<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 -08004708<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004709android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004710one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004711as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004712<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 -08004713 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004714 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004715
4716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004717 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4718 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004719
4720
4721
4722 <!-- end of kind -->
4723 </tbody>
4724
4725 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004726 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004727
4728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004729 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004730
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004731 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004732 <tr>
4733 <th class="th_name">Property Name</th>
4734 <th class="th_type">Type</th>
4735 <th class="th_description">Description</th>
4736 <th class="th_units">Units</th>
4737 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004738 <th class="th_tags">Tags</th>
4739 </tr>
4740 </thead>
4741
4742 <tbody>
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004754 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004755 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004756 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004757 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004758 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004759
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004760 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004761
4762 <ul class="entry_type_enum">
4763 <li>
4764 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004765 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4766Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004767 </li>
4768 <li>
4769 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004770 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4771rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004772 </li>
4773 </ul>
4774
4775 </td> <!-- entry_type -->
4776
4777 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004778 <p>Controls the quality of the demosaicing
4779processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004780 </td>
4781
4782 <td class="entry_units">
4783 </td>
4784
4785 <td class="entry_range">
4786 </td>
4787
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004788 <td class="entry_tags">
4789 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004790 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004791 </ul>
4792 </td>
4793
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004794 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004795
4796
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004797 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4798 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004799
4800
4801
4802 <!-- end of kind -->
4803 </tbody>
4804
4805 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004806 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004807
4808
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004809 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004810
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004811 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004812 <tr>
4813 <th class="th_name">Property Name</th>
4814 <th class="th_type">Type</th>
4815 <th class="th_description">Description</th>
4816 <th class="th_units">Units</th>
4817 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004818 <th class="th_tags">Tags</th>
4819 </tr>
4820 </thead>
4821
4822 <tbody>
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004834 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004835 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004836 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004837 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004838 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004839
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004840 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004841
4842 <ul class="entry_type_enum">
4843 <li>
4844 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004845 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004846 </li>
4847 <li>
4848 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004849 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4850output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004851 </li>
4852 <li>
4853 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004854 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4855quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004856 </li>
4857 </ul>
4858
4859 </td> <!-- entry_type -->
4860
4861 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004862 <p>Operation mode for edge
4863enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004864 </td>
4865
4866 <td class="entry_units">
4867 </td>
4868
4869 <td class="entry_range">
4870 </td>
4871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004872 <td class="entry_tags">
4873 </td>
4874
4875 </tr>
4876 <tr class="entries_header">
4877 <th class="th_details" colspan="5">Details</th>
4878 </tr>
4879 <tr class="entry_cont">
4880 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004881 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4882enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004883<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004884will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004885camera device will use the highest-quality enhancement algorithms,<wbr/>
4886even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004887not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004888 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004890
4891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4893 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004894
4895
4896 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004897 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004898 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004899 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004900 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004901 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004902
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004903 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004904
4905
4906 </td> <!-- entry_type -->
4907
4908 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004909 <p>Control the amount of edge enhancement
4910applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004911 </td>
4912
4913 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004914 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004915 </td>
4916
4917 <td class="entry_range">
4918 </td>
4919
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004920 <td class="entry_tags">
4921 </td>
4922
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004923 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004924
4925
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004926 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4927 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004928
4929
4930
4931 <!-- end of kind -->
4932 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004933 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004934
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004935 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004936 <tr>
4937 <th class="th_name">Property Name</th>
4938 <th class="th_type">Type</th>
4939 <th class="th_description">Description</th>
4940 <th class="th_units">Units</th>
4941 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004942 <th class="th_tags">Tags</th>
4943 </tr>
4944 </thead>
4945
4946 <tbody>
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004958 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004959 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004960 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004961 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004962 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004963
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004964 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004965
4966 <ul class="entry_type_enum">
4967 <li>
4968 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004969 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004970 </li>
4971 <li>
4972 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004973 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4974output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004975 </li>
4976 <li>
4977 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004978 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4979quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004980 </li>
4981 </ul>
4982
4983 </td> <!-- entry_type -->
4984
4985 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004986 <p>Operation mode for edge
4987enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004988 </td>
4989
4990 <td class="entry_units">
4991 </td>
4992
4993 <td class="entry_range">
4994 </td>
4995
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004996 <td class="entry_tags">
4997 </td>
4998
4999 </tr>
5000 <tr class="entries_header">
5001 <th class="th_details" colspan="5">Details</th>
5002 </tr>
5003 <tr class="entry_cont">
5004 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005005 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5006enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005007<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005008will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005009camera device will use the highest-quality enhancement algorithms,<wbr/>
5010even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005011not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005012 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005013 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005014
5015
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005016 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5017 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005018
5019
5020
5021 <!-- end of kind -->
5022 </tbody>
5023
5024 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005025 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005026
5027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005028 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005029
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005030 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005031 <tr>
5032 <th class="th_name">Property Name</th>
5033 <th class="th_type">Type</th>
5034 <th class="th_description">Description</th>
5035 <th class="th_units">Units</th>
5036 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005037 <th class="th_tags">Tags</th>
5038 </tr>
5039 </thead>
5040
5041 <tbody>
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005053 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005054 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005055 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005056 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005057 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005058
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005059 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005060
5061
5062 </td> <!-- entry_type -->
5063
5064 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005065 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005066 </td>
5067
5068 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005069 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005070 </td>
5071
5072 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005073 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005074 </td>
5075
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005076 <td class="entry_tags">
5077 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005078 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005079 </ul>
5080 </td>
5081
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005082 </tr>
5083 <tr class="entries_header">
5084 <th class="th_details" colspan="5">Details</th>
5085 </tr>
5086 <tr class="entry_cont">
5087 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005088 <p>Power for snapshot may use a different scale than
5089for torch mode.<wbr/> Only one entry for torch mode will be
5090used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005091 </td>
5092 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005093
5094
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005095 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5096 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005097
5098
5099 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005100 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005101 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005102 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005103 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005104 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005105
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005106 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005107
5108
5109 </td> <!-- entry_type -->
5110
5111 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005112 <p>Firing time of flash relative to start of
5113exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005114 </td>
5115
5116 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005117 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005118 </td>
5119
5120 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005121 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005122 </td>
5123
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005124 <td class="entry_tags">
5125 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005126 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005127 </ul>
5128 </td>
5129
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005130 </tr>
5131 <tr class="entries_header">
5132 <th class="th_details" colspan="5">Details</th>
5133 </tr>
5134 <tr class="entry_cont">
5135 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005136 <p>Clamped to (0,<wbr/> exposure time - flash
5137duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005138 </td>
5139 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005140
5141
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005142 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5143 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005144
5145
5146 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005147 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005148 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005149 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005150 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005151 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005152
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005153 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005154
5155 <ul class="entry_type_enum">
5156 <li>
5157 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005158 <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 -08005159 </li>
5160 <li>
5161 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005162 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5163for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5164<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005165 </li>
5166 <li>
5167 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005168 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005169 </li>
5170 </ul>
5171
5172 </td> <!-- entry_type -->
5173
5174 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005175 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005176 </td>
5177
5178 <td class="entry_units">
5179 </td>
5180
5181 <td class="entry_range">
5182 </td>
5183
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005184 <td class="entry_tags">
5185 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005186 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005187 </ul>
5188 </td>
5189
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005190 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005191 <tr class="entries_header">
5192 <th class="th_details" colspan="5">Details</th>
5193 </tr>
5194 <tr class="entry_cont">
5195 <td class="entry_details" colspan="5">
5196 <p>This control is only effective when flash unit is available
5197(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
5198<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/>
5199Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5200ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5201<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5202<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5203device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5204control should be used along with AE precapture metering sequence
5205(<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>
5206<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5207for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5208 </td>
5209 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005210
5211
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005212 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5213 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005214
5215
5216
5217 <!-- end of kind -->
5218 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005219 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005220
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005221 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005222 <tr>
5223 <th class="th_name">Property Name</th>
5224 <th class="th_type">Type</th>
5225 <th class="th_description">Description</th>
5226 <th class="th_units">Units</th>
5227 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005228 <th class="th_tags">Tags</th>
5229 </tr>
5230 </thead>
5231
5232 <tbody>
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005246 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005247 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005248 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005249 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005250 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005251
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005252 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005253
5254
5255 </td> <!-- entry_type -->
5256
5257 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005258 <p>Whether this camera has a
5259flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005260 </td>
5261
5262 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005263 boolean (0 = false,<wbr/> otherwise true)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005264 </td>
5265
5266 <td class="entry_range">
5267 </td>
5268
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005269 <td class="entry_tags">
5270 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005271 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005272 </ul>
5273 </td>
5274
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005275 </tr>
5276 <tr class="entries_header">
5277 <th class="th_details" colspan="5">Details</th>
5278 </tr>
5279 <tr class="entry_cont">
5280 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005281 <p>If no flash,<wbr/> none of the flash controls do
5282anything.<wbr/> All other metadata should return 0</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005283 </td>
5284 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005285
5286
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005287 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5288 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005289
5290
5291 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005292 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005293 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005294 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005295 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005296 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005297
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005298 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005299
5300
5301 </td> <!-- entry_type -->
5302
5303 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005304 <p>Time taken before flash can fire
5305again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005306 </td>
5307
5308 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005309 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005310 </td>
5311
5312 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005313 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005314 </td>
5315
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005316 <td class="entry_tags">
5317 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005318 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005319 </ul>
5320 </td>
5321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005322 </tr>
5323 <tr class="entries_header">
5324 <th class="th_details" colspan="5">Details</th>
5325 </tr>
5326 <tr class="entry_cont">
5327 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005328 <p>1 second too long/<wbr/>too short for recharge? Should
5329this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005330 </td>
5331 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005332
5333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005334 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5335 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005336
5337
5338
5339
5340
5341 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005342 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005343 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005344 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005345 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005346 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005347
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005348 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005349
5350
5351 </td> <!-- entry_type -->
5352
5353 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005354 <p>The x,<wbr/>y whitepoint of the
5355flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005356 </td>
5357
5358 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005359 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005360 </td>
5361
5362 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005363 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005364 </td>
5365
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005366 <td class="entry_tags">
5367 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005368 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005369 </ul>
5370 </td>
5371
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005372 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005373
5374
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005375 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5376 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005377
5378
5379 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005380 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005381 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005382 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005383 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005384 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005385
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005386 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005387
5388
5389 </td> <!-- entry_type -->
5390
5391 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005392 <p>Max energy output of the flash for a full
5393power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005394 </td>
5395
5396 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005397 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005398 </td>
5399
5400 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005401 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005402 </td>
5403
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005404 <td class="entry_tags">
5405 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005406 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005407 </ul>
5408 </td>
5409
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005410 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005411
5412
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005413 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5414 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005415
5416
5417
5418 <!-- end of kind -->
5419 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005420 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005421
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005422 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005423 <tr>
5424 <th class="th_name">Property Name</th>
5425 <th class="th_type">Type</th>
5426 <th class="th_description">Description</th>
5427 <th class="th_units">Units</th>
5428 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005429 <th class="th_tags">Tags</th>
5430 </tr>
5431 </thead>
5432
5433 <tbody>
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005445 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005446 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005447 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005448 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005449 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005450
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005451 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005452
5453
5454 </td> <!-- entry_type -->
5455
5456 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005457 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005458 </td>
5459
5460 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005461 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005462 </td>
5463
5464 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005465 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005466 </td>
5467
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005468 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005469 <ul class="entry_tags">
5470 <li><a href="#tag_V1">V1</a></li>
5471 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005472 </td>
5473
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005474 </tr>
5475 <tr class="entries_header">
5476 <th class="th_details" colspan="5">Details</th>
5477 </tr>
5478 <tr class="entry_cont">
5479 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005480 <p>Power for snapshot may use a different scale than
5481for torch mode.<wbr/> Only one entry for torch mode will be
5482used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005483 </td>
5484 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005485
5486
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005487 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5488 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005489
5490
5491 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005492 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005493 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005494 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005495 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005496 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005497
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005498 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005499
5500
5501 </td> <!-- entry_type -->
5502
5503 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005504 <p>Firing time of flash relative to start of
5505exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005506 </td>
5507
5508 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005509 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005510 </td>
5511
5512 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005513 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005514 </td>
5515
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005516 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005517 <ul class="entry_tags">
5518 <li><a href="#tag_V1">V1</a></li>
5519 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005520 </td>
5521
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005522 </tr>
5523 <tr class="entries_header">
5524 <th class="th_details" colspan="5">Details</th>
5525 </tr>
5526 <tr class="entry_cont">
5527 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005528 <p>Clamped to (0,<wbr/> exposure time - flash
5529duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005530 </td>
5531 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005532
5533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005534 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5535 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005536
5537
5538 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005539 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005540 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005541 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005542 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005543 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005544
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005545 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005546
5547 <ul class="entry_type_enum">
5548 <li>
5549 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005550 <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 -08005551 </li>
5552 <li>
5553 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005554 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5555for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5556<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005557 </li>
5558 <li>
5559 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005560 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005561 </li>
5562 </ul>
5563
5564 </td> <!-- entry_type -->
5565
5566 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005567 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005568 </td>
5569
5570 <td class="entry_units">
5571 </td>
5572
5573 <td class="entry_range">
5574 </td>
5575
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005576 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005577 <ul class="entry_tags">
5578 <li><a href="#tag_BC">BC</a></li>
5579 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005580 </td>
5581
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005582 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005583 <tr class="entries_header">
5584 <th class="th_details" colspan="5">Details</th>
5585 </tr>
5586 <tr class="entry_cont">
5587 <td class="entry_details" colspan="5">
5588 <p>This control is only effective when flash unit is available
5589(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
5590<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/>
5591Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5592ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5593<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5594<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5595device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5596control should be used along with AE precapture metering sequence
5597(<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>
5598<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5599for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5600 </td>
5601 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005602
5603
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005604 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5605 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005606
5607
5608 <tr class="entry" id="dynamic_android.flash.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005609 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005610 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005611 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005612 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005613 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005614
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005615 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005616
5617 <ul class="entry_type_enum">
5618 <li>
5619 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005620 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005621 </li>
5622 <li>
5623 <span class="entry_type_enum_name">CHARGING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005624 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5625charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005626 </li>
5627 <li>
5628 <span class="entry_type_enum_name">READY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005629 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5630ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005631 </li>
5632 <li>
5633 <span class="entry_type_enum_name">FIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005634 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash fired
5635for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005636 </li>
5637 </ul>
5638
5639 </td> <!-- entry_type -->
5640
5641 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005642 <p>Current state of the flash
5643unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005644 </td>
5645
5646 <td class="entry_units">
5647 </td>
5648
5649 <td class="entry_range">
5650 </td>
5651
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005652 <td class="entry_tags">
5653 </td>
5654
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005655 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005656
5657
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005658 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5659 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005660
5661
5662
5663 <!-- end of kind -->
5664 </tbody>
5665
5666 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005667 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005668
5669
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005670 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005671
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005672 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005673 <tr>
5674 <th class="th_name">Property Name</th>
5675 <th class="th_type">Type</th>
5676 <th class="th_description">Description</th>
5677 <th class="th_units">Units</th>
5678 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005679 <th class="th_tags">Tags</th>
5680 </tr>
5681 </thead>
5682
5683 <tbody>
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005695 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005696 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005697 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005698 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005699 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005700
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005701 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005702
5703 <ul class="entry_type_enum">
5704 <li>
5705 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005706 <span class="entry_type_enum_notes"><p>No geometric correction is
5707applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005708 </li>
5709 <li>
5710 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005711 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5712bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005713 </li>
5714 <li>
5715 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005716 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5717quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005718 </li>
5719 </ul>
5720
5721 </td> <!-- entry_type -->
5722
5723 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005724 <p>Operating mode of geometric
5725correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005726 </td>
5727
5728 <td class="entry_units">
5729 </td>
5730
5731 <td class="entry_range">
5732 </td>
5733
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005734 <td class="entry_tags">
5735 </td>
5736
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005737 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005738
5739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005740 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5741 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005742
5743
5744 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005745 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005746 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005747 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005748 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005749 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005750
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005751 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005752
5753
5754 </td> <!-- entry_type -->
5755
5756 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005757 <p>Control the amount of shading correction
5758applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005759 </td>
5760
5761 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005762 unitless: 1-10; 10 is full shading
5763 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005764 </td>
5765
5766 <td class="entry_range">
5767 </td>
5768
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005769 <td class="entry_tags">
5770 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005771 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005772 </ul>
5773 </td>
5774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005776
5777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005778 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005780
5781
5782
5783 <!-- end of kind -->
5784 </tbody>
5785
5786 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005787 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005788
5789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005790 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005791
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005792 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005793 <tr>
5794 <th class="th_name">Property Name</th>
5795 <th class="th_type">Type</th>
5796 <th class="th_description">Description</th>
5797 <th class="th_units">Units</th>
5798 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005799 <th class="th_tags">Tags</th>
5800 </tr>
5801 </thead>
5802
5803 <tbody>
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005815 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005816 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005817 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005818 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005819 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005820
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005821 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005822
5823 <ul class="entry_type_enum">
5824 <li>
5825 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005826 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5827applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005828 </li>
5829 <li>
5830 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005831 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5832Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005833 </li>
5834 <li>
5835 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005836 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5837quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005838 </li>
5839 </ul>
5840
5841 </td> <!-- entry_type -->
5842
5843 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005844 <p>Set operational mode for hot pixel
5845correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005846 </td>
5847
5848 <td class="entry_units">
5849 </td>
5850
5851 <td class="entry_range">
5852 </td>
5853
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005854 <td class="entry_tags">
5855 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005856 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005857 </ul>
5858 </td>
5859
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005860 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005861
5862
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005863 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5864 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005865
5866
5867
5868 <!-- end of kind -->
5869 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005870 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005871
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005872 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005873 <tr>
5874 <th class="th_name">Property Name</th>
5875 <th class="th_type">Type</th>
5876 <th class="th_description">Description</th>
5877 <th class="th_units">Units</th>
5878 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005879 <th class="th_tags">Tags</th>
5880 </tr>
5881 </thead>
5882
5883 <tbody>
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005897 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005898 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005899 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005900 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005901 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005902 <span class="entry_type_container">x</span>
5903
5904 <span class="entry_type_array">
5905 2 x n
5906 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005907 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005908 <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 -08005909
5910
5911 </td> <!-- entry_type -->
5912
5913 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005914 <p>Location of hot/<wbr/>defective pixels on
5915sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005916 </td>
5917
5918 <td class="entry_units">
5919 </td>
5920
5921 <td class="entry_range">
5922 </td>
5923
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005924 <td class="entry_tags">
5925 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005926 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005927 </ul>
5928 </td>
5929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005930 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005931
5932
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005933 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5934 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005935
5936
5937
5938
5939
5940
5941 <!-- end of kind -->
5942 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005943 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005944
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005945 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005946 <tr>
5947 <th class="th_name">Property Name</th>
5948 <th class="th_type">Type</th>
5949 <th class="th_description">Description</th>
5950 <th class="th_units">Units</th>
5951 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005952 <th class="th_tags">Tags</th>
5953 </tr>
5954 </thead>
5955
5956 <tbody>
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005968 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005969 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005970 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005971 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005972 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005973
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005974 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005975
5976 <ul class="entry_type_enum">
5977 <li>
5978 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005979 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5980applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005981 </li>
5982 <li>
5983 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005984 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5985Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005986 </li>
5987 <li>
5988 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005989 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5990quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005991 </li>
5992 </ul>
5993
5994 </td> <!-- entry_type -->
5995
5996 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005997 <p>Set operational mode for hot pixel
5998correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005999 </td>
6000
6001 <td class="entry_units">
6002 </td>
6003
6004 <td class="entry_range">
6005 </td>
6006
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006007 <td class="entry_tags">
6008 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006009 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006010 </ul>
6011 </td>
6012
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006013 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006014
6015
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006016 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6017 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006018
6019
6020
6021 <!-- end of kind -->
6022 </tbody>
6023
6024 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006025 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006026
6027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006028 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006029
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006030 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006031 <tr>
6032 <th class="th_name">Property Name</th>
6033 <th class="th_type">Type</th>
6034 <th class="th_description">Description</th>
6035 <th class="th_units">Units</th>
6036 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006037 <th class="th_tags">Tags</th>
6038 </tr>
6039 </thead>
6040
6041 <tbody>
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006053 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006054 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006055 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006056 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006057 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006058 <span class="entry_type_container">x</span>
6059
6060 <span class="entry_type_array">
6061 3
6062 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006063 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006064 <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 -08006065
6066
6067 </td> <!-- entry_type -->
6068
6069 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006070 <p>GPS coordinates to include in output JPEG
6071EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006072 </td>
6073
6074 <td class="entry_units">
6075 </td>
6076
6077 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006078 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006079 </td>
6080
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006081 <td class="entry_tags">
6082 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006083 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006084 </ul>
6085 </td>
6086
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006087 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006088
6089
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006090 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6091 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006092
6093
6094 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006095 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006096 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006097 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006098 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006099 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006100
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006101 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006102
6103
6104 </td> <!-- entry_type -->
6105
6106 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006107 <p>32 characters describing GPS algorithm to
6108include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006109 </td>
6110
6111 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006112 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006113 </td>
6114
6115 <td class="entry_range">
6116 </td>
6117
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006118 <td class="entry_tags">
6119 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006120 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006121 </ul>
6122 </td>
6123
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006124 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006125
6126
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006127 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6128 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006129
6130
6131 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006132 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006133 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006134 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006135 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006136 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006137
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006138 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006139
6140
6141 </td> <!-- entry_type -->
6142
6143 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006144 <p>Time GPS fix was made to include in
6145EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006146 </td>
6147
6148 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006149 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006150 </td>
6151
6152 <td class="entry_range">
6153 </td>
6154
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006155 <td class="entry_tags">
6156 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006157 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006158 </ul>
6159 </td>
6160
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006161 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006162
6163
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006164 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6165 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006166
6167
6168 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006169 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006170 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006171 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006172 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006173 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006174
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006175 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006176
6177
6178 </td> <!-- entry_type -->
6179
6180 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006181 <p>Orientation of JPEG image to
6182write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006183 </td>
6184
6185 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006186 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006187 </td>
6188
6189 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006190 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006191 </td>
6192
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006193 <td class="entry_tags">
6194 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006195 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006196 </ul>
6197 </td>
6198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006199 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006200
6201
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006202 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6203 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006204
6205
6206 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006207 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006208 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006209 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006210 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006211 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006212
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006213 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006214
6215
6216 </td> <!-- entry_type -->
6217
6218 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006219 <p>Compression quality of the final JPEG
6220image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006221 </td>
6222
6223 <td class="entry_units">
6224 </td>
6225
6226 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006227 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006228 </td>
6229
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006230 <td class="entry_tags">
6231 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006232 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006233 </ul>
6234 </td>
6235
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006236 </tr>
6237 <tr class="entries_header">
6238 <th class="th_details" colspan="5">Details</th>
6239 </tr>
6240 <tr class="entry_cont">
6241 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006242 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006243 </td>
6244 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006245
6246
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006247 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6248 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006249
6250
6251 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006252 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006253 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006254 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006255 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006256 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006257
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006258 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006259
6260
6261 </td> <!-- entry_type -->
6262
6263 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006264 <p>Compression quality of JPEG
6265thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006266 </td>
6267
6268 <td class="entry_units">
6269 </td>
6270
6271 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006272 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006273 </td>
6274
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006275 <td class="entry_tags">
6276 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006277 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006278 </ul>
6279 </td>
6280
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006281 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006282
6283
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006284 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6285 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006286
6287
6288 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006289 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006290 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006291 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006292 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006293 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006294 <span class="entry_type_container">x</span>
6295
6296 <span class="entry_type_array">
6297 2
6298 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006299 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006300
6301
6302 </td> <!-- entry_type -->
6303
6304 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006305 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006306 </td>
6307
6308 <td class="entry_units">
6309 </td>
6310
6311 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006312 <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 -08006313 </td>
6314
6315 <td class="entry_tags">
6316 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006317 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006318 </ul>
6319 </td>
6320
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006321 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006322 <tr class="entries_header">
6323 <th class="th_details" colspan="5">Details</th>
6324 </tr>
6325 <tr class="entry_cont">
6326 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006327 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6328but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006329<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6330the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006331 </td>
6332 </tr>
6333
6334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006335 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6336 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006337
6338
6339
6340 <!-- end of kind -->
6341 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006342 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006343
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006344 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006345 <tr>
6346 <th class="th_name">Property Name</th>
6347 <th class="th_type">Type</th>
6348 <th class="th_description">Description</th>
6349 <th class="th_units">Units</th>
6350 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006351 <th class="th_tags">Tags</th>
6352 </tr>
6353 </thead>
6354
6355 <tbody>
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006367 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006368 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006369 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006370 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006371 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006372 <span class="entry_type_container">x</span>
6373
6374 <span class="entry_type_array">
6375 2 x n
6376 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006377 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006378
6379
6380 </td> <!-- entry_type -->
6381
6382 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006383 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006384 </td>
6385
6386 <td class="entry_units">
6387 </td>
6388
6389 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006390 <p>Will include at least one valid resolution,<wbr/> plus
6391(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006392 </td>
6393
6394 <td class="entry_tags">
6395 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006396 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006397 </ul>
6398 </td>
6399
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006400 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006401 <tr class="entries_header">
6402 <th class="th_details" colspan="5">Details</th>
6403 </tr>
6404 <tr class="entry_cont">
6405 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006406 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006407<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006408<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6409If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6410<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006411aspect 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 -08006412The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006413in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006414<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 -08006415one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6416and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006417<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006418</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006419 </td>
6420 </tr>
6421
6422
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006423 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6424 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006425
6426
6427 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006428 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006429 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006430 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006431 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006432 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006433
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006434 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006435
6436
6437 </td> <!-- entry_type -->
6438
6439 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006440 <p>Maximum size in bytes for the compressed
6441JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006442 </td>
6443
6444 <td class="entry_units">
6445 </td>
6446
6447 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006448 <p>Must be large enough to fit any JPEG produced by
6449the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006450 </td>
6451
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006452 <td class="entry_tags">
6453 </td>
6454
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006455 </tr>
6456 <tr class="entries_header">
6457 <th class="th_details" colspan="5">Details</th>
6458 </tr>
6459 <tr class="entry_cont">
6460 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006461 <p>This is used for sizing the gralloc buffers for
6462JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006463 </td>
6464 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006465
6466
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006467 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6468 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006469
6470
6471
6472 <!-- end of kind -->
6473 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006474 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006475
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006476 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006477 <tr>
6478 <th class="th_name">Property Name</th>
6479 <th class="th_type">Type</th>
6480 <th class="th_description">Description</th>
6481 <th class="th_units">Units</th>
6482 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006483 <th class="th_tags">Tags</th>
6484 </tr>
6485 </thead>
6486
6487 <tbody>
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006499 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006500 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006501 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006502 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006503 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006504 <span class="entry_type_container">x</span>
6505
6506 <span class="entry_type_array">
6507 3
6508 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006509 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006510 <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 -08006511
6512
6513 </td> <!-- entry_type -->
6514
6515 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006516 <p>GPS coordinates to include in output JPEG
6517EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006518 </td>
6519
6520 <td class="entry_units">
6521 </td>
6522
6523 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006524 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006525 </td>
6526
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006527 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006528 <ul class="entry_tags">
6529 <li><a href="#tag_BC">BC</a></li>
6530 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006531 </td>
6532
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006533 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006534
6535
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006536 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6537 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006538
6539
6540 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006541 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006542 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006543 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006544 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006545 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006546
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006547 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006548
6549
6550 </td> <!-- entry_type -->
6551
6552 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006553 <p>32 characters describing GPS algorithm to
6554include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006555 </td>
6556
6557 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006558 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006559 </td>
6560
6561 <td class="entry_range">
6562 </td>
6563
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006564 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006565 <ul class="entry_tags">
6566 <li><a href="#tag_BC">BC</a></li>
6567 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006568 </td>
6569
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006570 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006571
6572
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006573 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6574 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006575
6576
6577 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006578 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006579 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006580 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006581 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006582 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006583
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006584 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006585
6586
6587 </td> <!-- entry_type -->
6588
6589 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006590 <p>Time GPS fix was made to include in
6591EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006592 </td>
6593
6594 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006595 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006596 </td>
6597
6598 <td class="entry_range">
6599 </td>
6600
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006601 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006602 <ul class="entry_tags">
6603 <li><a href="#tag_BC">BC</a></li>
6604 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006605 </td>
6606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006607 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006608
6609
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006610 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6611 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006612
6613
6614 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006615 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006616 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006617 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006618 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006619 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006620
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006621 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006622
6623
6624 </td> <!-- entry_type -->
6625
6626 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006627 <p>Orientation of JPEG image to
6628write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006629 </td>
6630
6631 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006632 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006633 </td>
6634
6635 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006636 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006637 </td>
6638
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006639 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006640 <ul class="entry_tags">
6641 <li><a href="#tag_BC">BC</a></li>
6642 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006643 </td>
6644
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006645 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006646
6647
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006648 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6649 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006650
6651
6652 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006653 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006654 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006655 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006656 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006657 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006658
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006659 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006660
6661
6662 </td> <!-- entry_type -->
6663
6664 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006665 <p>Compression quality of the final JPEG
6666image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006667 </td>
6668
6669 <td class="entry_units">
6670 </td>
6671
6672 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006673 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006674 </td>
6675
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006676 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006677 <ul class="entry_tags">
6678 <li><a href="#tag_BC">BC</a></li>
6679 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006680 </td>
6681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006682 </tr>
6683 <tr class="entries_header">
6684 <th class="th_details" colspan="5">Details</th>
6685 </tr>
6686 <tr class="entry_cont">
6687 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006688 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006689 </td>
6690 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006691
6692
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006693 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6694 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006695
6696
6697 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006698 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006699 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006700 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006701 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006702 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006703
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006704 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006705
6706
6707 </td> <!-- entry_type -->
6708
6709 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006710 <p>The size of the compressed JPEG image,<wbr/> in
6711bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006712 </td>
6713
6714 <td class="entry_units">
6715 </td>
6716
6717 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006718 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006719 </td>
6720
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006721 <td class="entry_tags">
6722 </td>
6723
6724 </tr>
6725 <tr class="entries_header">
6726 <th class="th_details" colspan="5">Details</th>
6727 </tr>
6728 <tr class="entry_cont">
6729 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006730 <p>If no JPEG output is produced for the request,<wbr/>
6731this must be 0.<wbr/></p>
6732<p>Otherwise,<wbr/> this describes the real size of the compressed
6733JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006734if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6735has <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 -08006736the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6737500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006738 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006739 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006740
6741
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006742 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6743 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006744
6745
6746 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006747 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006748 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006749 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006750 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006751 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006752
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006753 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006754
6755
6756 </td> <!-- entry_type -->
6757
6758 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006759 <p>Compression quality of JPEG
6760thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006761 </td>
6762
6763 <td class="entry_units">
6764 </td>
6765
6766 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006767 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006768 </td>
6769
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006770 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006771 <ul class="entry_tags">
6772 <li><a href="#tag_BC">BC</a></li>
6773 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006774 </td>
6775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006776 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006777
6778
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006779 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6780 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006781
6782
6783 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006784 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006785 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006786 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006787 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006788 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006789 <span class="entry_type_container">x</span>
6790
6791 <span class="entry_type_array">
6792 2
6793 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006794 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006795
6796
6797 </td> <!-- entry_type -->
6798
6799 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006800 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006801 </td>
6802
6803 <td class="entry_units">
6804 </td>
6805
6806 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006807 <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 -08006808 </td>
6809
6810 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006811 <ul class="entry_tags">
6812 <li><a href="#tag_BC">BC</a></li>
6813 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006814 </td>
6815
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006816 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006817 <tr class="entries_header">
6818 <th class="th_details" colspan="5">Details</th>
6819 </tr>
6820 <tr class="entry_cont">
6821 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006822 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6823but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006824<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6825the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006826 </td>
6827 </tr>
6828
6829
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006830 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6831 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006832
6833
6834
6835 <!-- end of kind -->
6836 </tbody>
6837
6838 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006839 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006840
6841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006842 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006843
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006844 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006845 <tr>
6846 <th class="th_name">Property Name</th>
6847 <th class="th_type">Type</th>
6848 <th class="th_description">Description</th>
6849 <th class="th_units">Units</th>
6850 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006851 <th class="th_tags">Tags</th>
6852 </tr>
6853 </thead>
6854
6855 <tbody>
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006867 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006868 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006869 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006870 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006871 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006872
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006873 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006874
6875
6876 </td> <!-- entry_type -->
6877
6878 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006879 <p>The ratio of lens focal length to the effective
6880aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006881 </td>
6882
6883 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006884 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006885 </td>
6886
6887 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006888 <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 -08006889 </td>
6890
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006891 <td class="entry_tags">
6892 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006893 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006894 </ul>
6895 </td>
6896
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006897 </tr>
6898 <tr class="entries_header">
6899 <th class="th_details" colspan="5">Details</th>
6900 </tr>
6901 <tr class="entry_cont">
6902 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006903 <p>This will only be supported on the camera devices that
6904have variable aperture lens.<wbr/> The aperture value can only be
6905one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6906<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6907this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6908<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6909to achieve manual exposure control.<wbr/></p>
6910<p>The requested aperture value may take several frames to reach the
6911requested value; the camera device will report the current (intermediate)
6912aperture size in capture result metadata while the aperture is changing.<wbr/></p>
6913<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6914the ON modes,<wbr/> this will be overridden by the camera device
6915auto-exposure algorithm,<wbr/> the overridden values are then provided
6916back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006917 </td>
6918 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006919
6920
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006921 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6922 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006923
6924
6925 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006926 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006927 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006928 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006929 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006930 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006931
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006932 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006933
6934
6935 </td> <!-- entry_type -->
6936
6937 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006938 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006939 </td>
6940
6941 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006942 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006943 </td>
6944
6945 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006946 <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 -08006947 </td>
6948
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006949 <td class="entry_tags">
6950 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006951 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006952 </ul>
6953 </td>
6954
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006955 </tr>
6956 <tr class="entries_header">
6957 <th class="th_details" colspan="5">Details</th>
6958 </tr>
6959 <tr class="entry_cont">
6960 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006961 <p>This will not be supported on most camera devices.<wbr/> On devices
6962where this is supported,<wbr/> this may only be set to one of the
6963values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
6964<p>Lens filters are typically used to lower the amount of light the
6965sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
6966step is the standard logarithmic representation,<wbr/> which are
6967non-negative,<wbr/> and inversely proportional to the amount of light
6968hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
6969in no reduction of the incoming light,<wbr/> and setting this to 2 would
6970mean that the filter is set to reduce incoming light by two stops
6971(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006972 </td>
6973 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006974
6975
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006976 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6977 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006978
6979
6980 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006981 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006982 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006983 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006984 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006985 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006986
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006987 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006988
6989
6990 </td> <!-- entry_type -->
6991
6992 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08006993 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006994 </td>
6995
6996 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006997 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006998 </td>
6999
7000 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007001 <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 -08007002 </td>
7003
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007004 <td class="entry_tags">
7005 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007006 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007007 </ul>
7008 </td>
7009
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007010 </tr>
7011 <tr class="entries_header">
7012 <th class="th_details" colspan="5">Details</th>
7013 </tr>
7014 <tr class="entry_cont">
7015 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007016 <p>This setting controls the physical focal length of the camera
7017device's lens.<wbr/> Changing the focal length changes the field of
7018view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7019<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
7020setting won't be applied instantaneously,<wbr/> and it may take several
7021frames before the lens can move to the requested focal length.<wbr/>
7022While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7023be set to MOVING.<wbr/></p>
7024<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007025 </td>
7026 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007027
7028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007029 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7030 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007031
7032
7033 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007034 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007035 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007036 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007037 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007038 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007039
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007040 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007041
7042
7043 </td> <!-- entry_type -->
7044
7045 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007046 <p>Distance to plane of sharpest focus,<wbr/>
7047measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007048 </td>
7049
7050 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007051 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007052 </td>
7053
7054 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007055 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007056 </td>
7057
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007058 <td class="entry_tags">
7059 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007060 <li><a href="#tag_BC">BC</a></li>
7061 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007062 </ul>
7063 </td>
7064
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007065 </tr>
7066 <tr class="entries_header">
7067 <th class="th_details" colspan="5">Details</th>
7068 </tr>
7069 <tr class="entry_cont">
7070 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007071 <p>0 = infinity focus.<wbr/> Used value should be clamped
7072to (0,<wbr/>minimum focus distance)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007073 </td>
7074 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007075
7076
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007077 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7078 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007079
7080
7081 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007082 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007083 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007084 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007085 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007086 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007087
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007088 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007089
7090 <ul class="entry_type_enum">
7091 <li>
7092 <span class="entry_type_enum_name">OFF</span>
7093 </li>
7094 <li>
7095 <span class="entry_type_enum_name">ON</span>
7096 <span class="entry_type_enum_optional">optional</span>
7097 </li>
7098 </ul>
7099
7100 </td> <!-- entry_type -->
7101
7102 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007103 <p>Whether optical image stabilization is
7104enabled.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007105 </td>
7106
7107 <td class="entry_units">
7108 </td>
7109
7110 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007111 <p>android.<wbr/>lens.<wbr/>available<wbr/>Optical<wbr/>Stabilization</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007112 </td>
7113
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007114 <td class="entry_tags">
7115 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007116 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007117 </ul>
7118 </td>
7119
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007120 </tr>
7121 <tr class="entries_header">
7122 <th class="th_details" colspan="5">Details</th>
7123 </tr>
7124 <tr class="entry_cont">
7125 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007126 <p>Will not be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007127 </td>
7128 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007129
7130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007131 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7132 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007133
7134
7135
7136 <!-- end of kind -->
7137 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007138 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007139
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007140 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007141 <tr>
7142 <th class="th_name">Property Name</th>
7143 <th class="th_type">Type</th>
7144 <th class="th_description">Description</th>
7145 <th class="th_units">Units</th>
7146 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007147 <th class="th_tags">Tags</th>
7148 </tr>
7149 </thead>
7150
7151 <tbody>
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007165 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007166 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007167 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007168 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007169 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007170 <span class="entry_type_container">x</span>
7171
7172 <span class="entry_type_array">
7173 n
7174 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007175 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007176
7177
7178 </td> <!-- entry_type -->
7179
7180 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007181 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007182values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007183 </td>
7184
7185 <td class="entry_units">
7186 </td>
7187
7188 <td class="entry_range">
Zhijun He1b58d382014-01-10 10:22:53 -08007189 <p>one entry required,<wbr/> &amp;&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007190 </td>
7191
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007192 <td class="entry_tags">
7193 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007194 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007195 </ul>
7196 </td>
7197
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007198 </tr>
7199 <tr class="entries_header">
7200 <th class="th_details" colspan="5">Details</th>
7201 </tr>
7202 <tr class="entry_cont">
7203 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007204 <p>If the camera device doesn't support variable apertures,<wbr/>
7205listed value will be the fixed aperture.<wbr/></p>
7206<p>If the camera device supports variable apertures,<wbr/> the aperture value
7207in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007208 </td>
7209 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007210
7211
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007212 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7213 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007214
7215
7216 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007217 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007218 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007219 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007220 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007221 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007222 <span class="entry_type_container">x</span>
7223
7224 <span class="entry_type_array">
7225 n
7226 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007227 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007228
7229
7230 </td> <!-- entry_type -->
7231
7232 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007233 <p>List of supported neutral density filter values for
7234<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007235 </td>
7236
7237 <td class="entry_units">
7238 </td>
7239
7240 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007241 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007242 </td>
7243
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007244 <td class="entry_tags">
7245 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007246 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007247 </ul>
7248 </td>
7249
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007250 </tr>
7251 <tr class="entries_header">
7252 <th class="th_details" colspan="5">Details</th>
7253 </tr>
7254 <tr class="entry_cont">
7255 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007256 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7257availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7258list contains only the exact filter density values available on
7259this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007260 </td>
7261 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007262
7263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007264 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7265 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007266
7267
7268 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007269 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007270 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007271 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007272 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007273 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007274 <span class="entry_type_container">x</span>
7275
7276 <span class="entry_type_array">
7277 n
7278 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007279 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007280 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007281
7282
7283 </td> <!-- entry_type -->
7284
7285 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007286 <p>The available focal lengths for this device for use with
7287<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007288 </td>
7289
7290 <td class="entry_units">
7291 </td>
7292
7293 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007294 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7295contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007296 </td>
7297
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007298 <td class="entry_tags">
7299 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007300 <li><a href="#tag_BC">BC</a></li>
7301 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007302 </ul>
7303 </td>
7304
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007305 </tr>
7306 <tr class="entries_header">
7307 <th class="th_details" colspan="5">Details</th>
7308 </tr>
7309 <tr class="entry_cont">
7310 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007311 <p>If optical zoom is not supported,<wbr/> this will only report
7312a single value corresponding to the static focal length of the
7313device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7314by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007315 </td>
7316 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007317
7318
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007319 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7320 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007321
7322
7323 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007324 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007325 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007326 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007327 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007328 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007329 <span class="entry_type_container">x</span>
7330
7331 <span class="entry_type_array">
7332 n
7333 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007334 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007335 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007336
7337
7338 </td> <!-- entry_type -->
7339
7340 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007341 <p>List of supported optical image
7342stabilization modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007343 </td>
7344
7345 <td class="entry_units">
7346 </td>
7347
7348 <td class="entry_range">
7349 </td>
7350
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007351 <td class="entry_tags">
7352 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007353 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007354 </ul>
7355 </td>
7356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007357 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007358
7359
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007360 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7361 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007362
7363
7364 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007365 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007366 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007367 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007368 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007369 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007370 <span class="entry_type_container">x</span>
7371
7372 <span class="entry_type_array">
7373 2 x 3 x n x m
7374 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007375 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007376 <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 -08007377
7378
7379 </td> <!-- entry_type -->
7380
7381 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007382 <p>A low-resolution map for correction of
7383geometric distortions and chromatic aberrations,<wbr/> per
7384color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007385 </td>
7386
7387 <td class="entry_units">
7388 </td>
7389
7390 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007391 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007392 </td>
7393
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007394 <td class="entry_tags">
7395 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007396 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007397 </ul>
7398 </td>
7399
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007400 </tr>
7401 <tr class="entries_header">
7402 <th class="th_details" colspan="5">Details</th>
7403 </tr>
7404 <tr class="entry_cont">
7405 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007406 <p>[DNG wants a function instead].<wbr/> What's easiest
7407for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7408j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7409j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7410entry 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 -08007411 </td>
7412 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007413
7414
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007415 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7416 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007417
7418
7419 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007420 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007421 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007422 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007423 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007424 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007425 <span class="entry_type_container">x</span>
7426
7427 <span class="entry_type_array">
7428 2
7429 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007430 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007431 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007432
7433
7434 </td> <!-- entry_type -->
7435
7436 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007437 <p>Dimensions of geometric correction
7438map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007439 </td>
7440
7441 <td class="entry_units">
7442 </td>
7443
7444 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007445 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007446 </td>
7447
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007448 <td class="entry_tags">
7449 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007450 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007451 </ul>
7452 </td>
7453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007454 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007455
7456
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007457 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7458 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007459
7460
7461 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007462 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007463 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007464 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007465 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007466 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007467
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007468 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007469
7470
7471 </td> <!-- entry_type -->
7472
7473 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007474 <p>Hyperfocal distance for this lens; set to
74750 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007476 </td>
7477
7478 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007479 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007480 </td>
7481
7482 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007483 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007484 </td>
7485
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007486 <td class="entry_tags">
7487 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007488 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007489 </ul>
7490 </td>
7491
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007492 </tr>
7493 <tr class="entries_header">
7494 <th class="th_details" colspan="5">Details</th>
7495 </tr>
7496 <tr class="entry_cont">
7497 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007498 <p>The hyperfocal distance is used for the old
7499API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007500 </td>
7501 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007502
7503
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007504 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7505 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007506
7507
7508 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007509 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007510 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007511 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007512 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007513 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007514
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007515 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007516
7517
7518 </td> <!-- entry_type -->
7519
7520 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007521 <p>Shortest distance from frontmost surface
7522of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007523 </td>
7524
7525 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007526 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007527 </td>
7528
7529 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007530 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007531 </td>
7532
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007533 <td class="entry_tags">
7534 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007535 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007536 </ul>
7537 </td>
7538
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007539 </tr>
7540 <tr class="entries_header">
7541 <th class="th_details" colspan="5">Details</th>
7542 </tr>
7543 <tr class="entry_cont">
7544 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007545 <p>If the lens is fixed-focus,<wbr/> this should be
75460</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007547 </td>
7548 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007549
7550
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007551 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7552 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007553
7554
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007555 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007556 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007557 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007558 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007559 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007560 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007561 <span class="entry_type_container">x</span>
7562
7563 <span class="entry_type_array">
7564 2
7565 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007566 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007567 <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 -08007568
7569
7570 </td> <!-- entry_type -->
7571
7572 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007573 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007574 </td>
7575
7576 <td class="entry_units">
7577 </td>
7578
7579 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007580 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007581 </td>
7582
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007583 <td class="entry_tags">
7584 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007585 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007586 </ul>
7587 </td>
7588
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007589 </tr>
7590 <tr class="entries_header">
7591 <th class="th_details" colspan="5">Details</th>
7592 </tr>
7593 <tr class="entry_cont">
7594 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007595 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7596must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007597 </td>
7598 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007599
7600
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007601 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7602 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007603
7604
7605
7606
7607
7608 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007609 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007610 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007611 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007612 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007613 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007614
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007615 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007616
7617 <ul class="entry_type_enum">
7618 <li>
7619 <span class="entry_type_enum_name">FRONT</span>
7620 </li>
7621 <li>
7622 <span class="entry_type_enum_name">BACK</span>
7623 </li>
7624 </ul>
7625
7626 </td> <!-- entry_type -->
7627
7628 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007629 <p>Direction the camera faces relative to
7630device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007631 </td>
7632
7633 <td class="entry_units">
7634 </td>
7635
7636 <td class="entry_range">
7637 </td>
7638
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007639 <td class="entry_tags">
7640 </td>
7641
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007642 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007643
7644
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007645 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7646 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007647
7648
7649 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007650 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007651 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007652 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007653 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007654 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007655 <span class="entry_type_container">x</span>
7656
7657 <span class="entry_type_array">
7658 2
7659 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007660 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007661 <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 -08007662
7663
7664 </td> <!-- entry_type -->
7665
7666 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007667 <p>Relative angle of camera optical axis to the
7668perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007669 </td>
7670
7671 <td class="entry_units">
7672 </td>
7673
7674 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007675 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007676 </td>
7677
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007678 <td class="entry_tags">
7679 <ul class="entry_tags">
7680 <li><a href="#tag_ADV">ADV</a></li>
7681 </ul>
7682 </td>
7683
7684 </tr>
7685 <tr class="entries_header">
7686 <th class="th_details" colspan="5">Details</th>
7687 </tr>
7688 <tr class="entry_cont">
7689 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007690 <p>Examples:</p>
7691<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007692is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007693<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007694device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007695<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7696the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007697<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007698direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007699 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007700 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007701
7702
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007703 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7704 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007705
7706
7707 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007708 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007709 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007710 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007711 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007712 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007713 <span class="entry_type_container">x</span>
7714
7715 <span class="entry_type_array">
7716 3, location in mm, in the sensor coordinate
7717 system
7718 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007719 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007720
7721
7722 </td> <!-- entry_type -->
7723
7724 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007725 <p>Coordinates of camera optical axis on
7726device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007727 </td>
7728
7729 <td class="entry_units">
7730 </td>
7731
7732 <td class="entry_range">
7733 </td>
7734
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007735 <td class="entry_tags">
7736 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007737 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007738 </ul>
7739 </td>
7740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007741 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007742
7743
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007744 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7745 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007746
7747
7748
7749 <!-- end of kind -->
7750 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007751 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007752
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007753 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007754 <tr>
7755 <th class="th_name">Property Name</th>
7756 <th class="th_type">Type</th>
7757 <th class="th_description">Description</th>
7758 <th class="th_units">Units</th>
7759 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007760 <th class="th_tags">Tags</th>
7761 </tr>
7762 </thead>
7763
7764 <tbody>
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007776 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007777 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007778 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007779 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007780 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007781
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007782 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007783
7784
7785 </td> <!-- entry_type -->
7786
7787 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007788 <p>The ratio of lens focal length to the effective
7789aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007790 </td>
7791
7792 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007793 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007794 </td>
7795
7796 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007797 <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 -08007798 </td>
7799
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007800 <td class="entry_tags">
7801 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007802 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007803 </ul>
7804 </td>
7805
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007806 </tr>
7807 <tr class="entries_header">
7808 <th class="th_details" colspan="5">Details</th>
7809 </tr>
7810 <tr class="entry_cont">
7811 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007812 <p>This will only be supported on the camera devices that
7813have variable aperture lens.<wbr/> The aperture value can only be
7814one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7815<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7816this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7817<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7818to achieve manual exposure control.<wbr/></p>
7819<p>The requested aperture value may take several frames to reach the
7820requested value; the camera device will report the current (intermediate)
7821aperture size in capture result metadata while the aperture is changing.<wbr/></p>
7822<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7823the ON modes,<wbr/> this will be overridden by the camera device
7824auto-exposure algorithm,<wbr/> the overridden values are then provided
7825back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007826 </td>
7827 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007828
7829
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007830 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7831 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007832
7833
7834 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007835 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007836 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007837 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007838 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007839 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007840
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007841 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007842
7843
7844 </td> <!-- entry_type -->
7845
7846 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007847 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007848 </td>
7849
7850 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007851 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007852 </td>
7853
7854 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007855 <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 -08007856 </td>
7857
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007858 <td class="entry_tags">
7859 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007860 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007861 </ul>
7862 </td>
7863
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007864 </tr>
7865 <tr class="entries_header">
7866 <th class="th_details" colspan="5">Details</th>
7867 </tr>
7868 <tr class="entry_cont">
7869 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007870 <p>This will not be supported on most camera devices.<wbr/> On devices
7871where this is supported,<wbr/> this may only be set to one of the
7872values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7873<p>Lens filters are typically used to lower the amount of light the
7874sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7875step is the standard logarithmic representation,<wbr/> which are
7876non-negative,<wbr/> and inversely proportional to the amount of light
7877hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7878in no reduction of the incoming light,<wbr/> and setting this to 2 would
7879mean that the filter is set to reduce incoming light by two stops
7880(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007881 </td>
7882 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007883
7884
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007885 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7886 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007887
7888
7889 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007890 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007891 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007892 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007893 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007894 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007895
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007896 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007897
7898
7899 </td> <!-- entry_type -->
7900
7901 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007902 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007903 </td>
7904
7905 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007906 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007907 </td>
7908
7909 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007910 <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 -08007911 </td>
7912
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007913 <td class="entry_tags">
7914 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007915 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007916 </ul>
7917 </td>
7918
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007919 </tr>
7920 <tr class="entries_header">
7921 <th class="th_details" colspan="5">Details</th>
7922 </tr>
7923 <tr class="entry_cont">
7924 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007925 <p>This setting controls the physical focal length of the camera
7926device's lens.<wbr/> Changing the focal length changes the field of
7927view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7928<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
7929setting won't be applied instantaneously,<wbr/> and it may take several
7930frames before the lens can move to the requested focal length.<wbr/>
7931While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7932be set to MOVING.<wbr/></p>
7933<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007934 </td>
7935 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007936
7937
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007938 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7939 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007940
7941
7942 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007943 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007944 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007945 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007946 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007947 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007948
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007949 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007950
7951
7952 </td> <!-- entry_type -->
7953
7954 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007955 <p>Distance to plane of sharpest focus,<wbr/>
7956measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007957 </td>
7958
7959 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007960 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007961 </td>
7962
7963 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007964 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007965 </td>
7966
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007967 <td class="entry_tags">
7968 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007969 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007970 </ul>
7971 </td>
7972
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007973 </tr>
7974 <tr class="entries_header">
7975 <th class="th_details" colspan="5">Details</th>
7976 </tr>
7977 <tr class="entry_cont">
7978 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007979 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007980 </td>
7981 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007982
7983
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007984 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7985 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007986
7987
7988 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007989 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007990 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007991 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007992 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007993 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07007994 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007995
Zhijun He50451ad2013-09-26 10:27:47 -07007996 <span class="entry_type_array">
7997 2
7998 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007999 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008000 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008001
8002
8003 </td> <!-- entry_type -->
8004
8005 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008006 <p>The range of scene distances that are in
8007sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008008 </td>
8009
8010 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008011 pair of focus distances in diopters: (near,<wbr/>
8012 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008013 </td>
8014
8015 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008016 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008017 </td>
8018
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008019 <td class="entry_tags">
8020 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008021 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008022 </ul>
8023 </td>
8024
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008025 </tr>
8026 <tr class="entries_header">
8027 <th class="th_details" colspan="5">Details</th>
8028 </tr>
8029 <tr class="entry_cont">
8030 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008031 <p>If variable focus not supported,<wbr/> can still report
8032fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008033 </td>
8034 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008035
8036
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008037 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8038 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008039
8040
8041 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008042 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008043 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008044 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008045 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008046 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008047
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008048 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008049
8050 <ul class="entry_type_enum">
8051 <li>
8052 <span class="entry_type_enum_name">OFF</span>
8053 </li>
8054 <li>
8055 <span class="entry_type_enum_name">ON</span>
8056 <span class="entry_type_enum_optional">optional</span>
8057 </li>
8058 </ul>
8059
8060 </td> <!-- entry_type -->
8061
8062 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008063 <p>Whether optical image stabilization is
8064enabled.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008065 </td>
8066
8067 <td class="entry_units">
8068 </td>
8069
8070 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008071 <p>android.<wbr/>lens.<wbr/>available<wbr/>Optical<wbr/>Stabilization</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008072 </td>
8073
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008074 <td class="entry_tags">
8075 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008076 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008077 </ul>
8078 </td>
8079
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008080 </tr>
8081 <tr class="entries_header">
8082 <th class="th_details" colspan="5">Details</th>
8083 </tr>
8084 <tr class="entry_cont">
8085 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008086 <p>Will not be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008087 </td>
8088 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008089
8090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008091 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8092 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008093
8094
8095 <tr class="entry" id="dynamic_android.lens.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008096 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008097 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008098 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008099 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008100 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008101
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008102 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008103
8104 <ul class="entry_type_enum">
8105 <li>
8106 <span class="entry_type_enum_name">STATIONARY</span>
8107 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008108 <li>
8109 <span class="entry_type_enum_name">MOVING</span>
8110 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008111 </ul>
8112
8113 </td> <!-- entry_type -->
8114
8115 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008116 <p>Current lens status</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008117 </td>
8118
8119 <td class="entry_units">
8120 </td>
8121
8122 <td class="entry_range">
8123 </td>
8124
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008125 <td class="entry_tags">
8126 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008127 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008128 </ul>
8129 </td>
8130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008131 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008132
8133
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008134 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8135 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008136
8137
8138
8139 <!-- end of kind -->
8140 </tbody>
8141
8142 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008143 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008144
8145
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008146 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008147
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008148 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008149 <tr>
8150 <th class="th_name">Property Name</th>
8151 <th class="th_type">Type</th>
8152 <th class="th_description">Description</th>
8153 <th class="th_units">Units</th>
8154 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008155 <th class="th_tags">Tags</th>
8156 </tr>
8157 </thead>
8158
8159 <tbody>
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008171 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008172 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008173 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008174 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008175 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008176
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008177 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008178
8179 <ul class="entry_type_enum">
8180 <li>
8181 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008182 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008183 </li>
8184 <li>
8185 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008186 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8187output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008188 </li>
8189 <li>
8190 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008191 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8192quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008193 </li>
8194 </ul>
8195
8196 </td> <!-- entry_type -->
8197
8198 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008199 <p>Mode of operation for the noise reduction
8200algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008201 </td>
8202
8203 <td class="entry_units">
8204 </td>
8205
8206 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008207 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008208 </td>
8209
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008210 <td class="entry_tags">
8211 <ul class="entry_tags">
8212 <li><a href="#tag_V1">V1</a></li>
8213 </ul>
8214 </td>
8215
8216 </tr>
8217 <tr class="entries_header">
8218 <th class="th_details" colspan="5">Details</th>
8219 </tr>
8220 <tr class="entry_cont">
8221 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008222 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8223will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008224<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8225will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8226will use the highest-quality noise filtering algorithms,<wbr/>
8227even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008228slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008229 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008230 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008231
8232
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008233 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8234 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008235
8236
8237 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008238 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008239 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008240 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008241 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008242 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008243
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008244 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008245
8246
8247 </td> <!-- entry_type -->
8248
8249 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008250 <p>Control the amount of noise reduction
8251applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008252 </td>
8253
8254 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008255 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008256 </td>
8257
8258 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008259 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008260 </td>
8261
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008262 <td class="entry_tags">
8263 </td>
8264
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008265 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008266
8267
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008268 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8269 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008270
8271
8272
8273 <!-- end of kind -->
8274 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008275 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008276
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008277 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008278 <tr>
8279 <th class="th_name">Property Name</th>
8280 <th class="th_type">Type</th>
8281 <th class="th_description">Description</th>
8282 <th class="th_units">Units</th>
8283 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008284 <th class="th_tags">Tags</th>
8285 </tr>
8286 </thead>
8287
8288 <tbody>
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008300 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008301 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008302 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008303 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008304 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008305
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008306 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008307
8308 <ul class="entry_type_enum">
8309 <li>
8310 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008311 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008312 </li>
8313 <li>
8314 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008315 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8316output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008317 </li>
8318 <li>
8319 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008320 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8321quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008322 </li>
8323 </ul>
8324
8325 </td> <!-- entry_type -->
8326
8327 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008328 <p>Mode of operation for the noise reduction
8329algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008330 </td>
8331
8332 <td class="entry_units">
8333 </td>
8334
8335 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008336 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008337 </td>
8338
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008339 <td class="entry_tags">
8340 <ul class="entry_tags">
8341 <li><a href="#tag_V1">V1</a></li>
8342 </ul>
8343 </td>
8344
8345 </tr>
8346 <tr class="entries_header">
8347 <th class="th_details" colspan="5">Details</th>
8348 </tr>
8349 <tr class="entry_cont">
8350 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008351 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8352will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008353<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8354will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8355will use the highest-quality noise filtering algorithms,<wbr/>
8356even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008357slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008358 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008359 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008360
8361
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008362 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8363 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008364
8365
8366
8367 <!-- end of kind -->
8368 </tbody>
8369
8370 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008371 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008372
8373
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008374 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008375
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008376 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008377 <tr>
8378 <th class="th_name">Property Name</th>
8379 <th class="th_type">Type</th>
8380 <th class="th_description">Description</th>
8381 <th class="th_units">Units</th>
8382 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008383 <th class="th_tags">Tags</th>
8384 </tr>
8385 </thead>
8386
8387 <tbody>
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008399 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008400 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008401 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008402 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008403 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008404
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008405 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008406
8407
8408 </td> <!-- entry_type -->
8409
8410 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008411 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008412scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008413region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8414and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008415 </td>
8416
8417 <td class="entry_units">
8418 </td>
8419
8420 <td class="entry_range">
8421 </td>
8422
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008423 <td class="entry_tags">
8424 </td>
8425
8426 </tr>
8427 <tr class="entries_header">
8428 <th class="th_details" colspan="5">Details</th>
8429 </tr>
8430 <tr class="entry_cont">
8431 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008432 <p>Normalized coordinates refer to those in the
8433(-1000,<wbr/>1000) range mentioned in the
8434android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008435<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008436sensor array-relative coordinates for all region data.<wbr/> Does
8437not need to be listed in static metadata.<wbr/> Support will be
8438removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008439 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008440 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008441
8442
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008443 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8444 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008445
8446
8447 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008448 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008449 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008450 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008451 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008452 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008453
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008454 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008455
8456
8457 </td> <!-- entry_type -->
8458
8459 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008460 <p>If set to 1,<wbr/> then the camera service always
8461switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8462trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008463 </td>
8464
8465 <td class="entry_units">
8466 </td>
8467
8468 <td class="entry_range">
8469 </td>
8470
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008471 <td class="entry_tags">
8472 </td>
8473
8474 </tr>
8475 <tr class="entries_header">
8476 <th class="th_details" colspan="5">Details</th>
8477 </tr>
8478 <tr class="entry_cont">
8479 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008480 <p>HAL implementations should implement AF trigger
8481modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8482CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8483not need to be listed in static metadata.<wbr/> Support will be
8484removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008485 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008486 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008487
8488
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008489 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8490 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008491
8492
8493 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008494 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008495 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008496 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008497 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008498 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008499
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008500 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008501
8502
8503 </td> <!-- entry_type -->
8504
8505 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008506 <p>If set to 1,<wbr/> the camera service uses
8507CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8508HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8509shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008510 </td>
8511
8512 <td class="entry_units">
8513 </td>
8514
8515 <td class="entry_range">
8516 </td>
8517
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008518 <td class="entry_tags">
8519 </td>
8520
8521 </tr>
8522 <tr class="entries_header">
8523 <th class="th_details" colspan="5">Details</th>
8524 </tr>
8525 <tr class="entry_cont">
8526 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008527 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008528to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008529zero-shutter-lag,<wbr/> instead of relying on an explicit
8530format setting.<wbr/> Does not need to be listed in static
8531metadata.<wbr/> Support will be removed in future versions of
8532camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008533 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008534 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008535
8536
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008537 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8538 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008539
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008540
8541 <tr class="entry" id="static_android.quirks.usePartialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008542 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008543 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008544 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008545 <td class="entry_type">
8546 <span class="entry_type_name">byte</span>
8547
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008548 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008549
8550
8551 </td> <!-- entry_type -->
8552
8553 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008554 <p>If set to 1,<wbr/> the HAL will always split result
8555metadata for a single capture into multiple buffers,<wbr/>
8556returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008557 </td>
8558
8559 <td class="entry_units">
8560 </td>
8561
8562 <td class="entry_range">
8563 </td>
8564
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008565 <td class="entry_tags">
8566 </td>
8567
8568 </tr>
8569 <tr class="entries_header">
8570 <th class="th_details" colspan="5">Details</th>
8571 </tr>
8572 <tr class="entry_cont">
8573 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008574 <p>Does not need to be listed in static
8575metadata.<wbr/> Support for partial results will be reworked in
8576future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008577working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008578consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008579 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008580 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008581
8582
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008583 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8584 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008585
8586
8587
8588 <!-- end of kind -->
8589 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008590 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008591
8592 <thead class="entries_header">
8593 <tr>
8594 <th class="th_name">Property Name</th>
8595 <th class="th_type">Type</th>
8596 <th class="th_description">Description</th>
8597 <th class="th_units">Units</th>
8598 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008599 <th class="th_tags">Tags</th>
8600 </tr>
8601 </thead>
8602
8603 <tbody>
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614 <tr class="entry" id="dynamic_android.quirks.partialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008615 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008616 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008617 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008618 <td class="entry_type">
8619 <span class="entry_type_name entry_type_name_enum">byte</span>
8620
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008621 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008622
8623 <ul class="entry_type_enum">
8624 <li>
8625 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008626 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8627for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008628 </li>
8629 <li>
8630 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008631 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8632capture.<wbr/> More result buffers for this capture will be sent
8633by the HAL,<wbr/> the last of which will be marked
8634FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008635 </li>
8636 </ul>
8637
8638 </td> <!-- entry_type -->
8639
8640 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008641 <p>Whether a result given to the framework is the
8642final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008643subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008644values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008645 </td>
8646
8647 <td class="entry_units">
8648 </td>
8649
8650 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008651 <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008652 </td>
8653
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008654 <td class="entry_tags">
8655 </td>
8656
8657 </tr>
8658 <tr class="entries_header">
8659 <th class="th_details" colspan="5">Details</th>
8660 </tr>
8661 <tr class="entry_cont">
8662 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008663 <p>The entries in the result metadata buffers for a
8664single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008665FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008666requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8667always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8668before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8669in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8670capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8671only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008672 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008673 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008674
8675
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008676 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8677 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008678
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008679
8680
8681 <!-- end of kind -->
8682 </tbody>
8683
8684 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008685 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008686
8687
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008688 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008689
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008690 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008691 <tr>
8692 <th class="th_name">Property Name</th>
8693 <th class="th_type">Type</th>
8694 <th class="th_description">Description</th>
8695 <th class="th_units">Units</th>
8696 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008697 <th class="th_tags">Tags</th>
8698 </tr>
8699 </thead>
8700
8701 <tbody>
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008713 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008714 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008715 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008716 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008717 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008718
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008719 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008720
8721
8722 </td> <!-- entry_type -->
8723
8724 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008725 <p>A frame counter set by the framework.<wbr/> Must
8726be maintained unchanged in output frame.<wbr/> This value monotonically
8727increases with every new result (that is,<wbr/> each new result has a unique
8728frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008729 </td>
8730
8731 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008732 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008733 </td>
8734
8735 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008736 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008737 </td>
8738
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008739 <td class="entry_tags">
8740 </td>
8741
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008742 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008743
8744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008745 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8746 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008747
8748
8749 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008750 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008751 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008752 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008753 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008754 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008755
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008756 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008757
8758
8759 </td> <!-- entry_type -->
8760
8761 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008762 <p>An application-specified ID for the current
8763request.<wbr/> Must be maintained unchanged in output
8764frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008765 </td>
8766
8767 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008768 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008769 </td>
8770
8771 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008772 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008773 </td>
8774
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008775 <td class="entry_tags">
8776 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008777 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008778 </ul>
8779 </td>
8780
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008781 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008782
8783
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008784 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8785 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008786
8787
8788 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008789 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008790 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008791 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008792 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008793 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008794 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008795
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008796 <span class="entry_type_array">
8797 n
8798 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008799 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008800
8801
8802 </td> <!-- entry_type -->
8803
8804 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008805 <p>List which camera reprocess stream is used
8806for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008807 </td>
8808
8809 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008810 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008811 </td>
8812
8813 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008814 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid
8815reprocess stream ID.<wbr/></p>
8816<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8817reprocess streams may be included in a single request; they
8818must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008819 </td>
8820
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008821 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008822 <ul class="entry_tags">
8823 <li><a href="#tag_HAL2">HAL2</a></li>
8824 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008825 </td>
8826
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008827 </tr>
8828 <tr class="entries_header">
8829 <th class="th_details" colspan="5">Details</th>
8830 </tr>
8831 <tr class="entry_cont">
8832 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008833 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008834REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008835 </td>
8836 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008837
8838
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008839 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8840 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008841
8842
8843 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008844 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008845 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008846 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008847 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008848 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008849
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008850 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008851
8852 <ul class="entry_type_enum">
8853 <li>
8854 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008855 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8856for application-bound buffer data.<wbr/> If no
8857application-bound streams exist,<wbr/> no frame should be
8858placed in the output frame queue.<wbr/> If such streams
8859exist,<wbr/> a frame should be placed on the output queue
8860with null metadata but with the necessary output buffer
8861information.<wbr/> Timestamp information should still be
8862included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008863 </li>
8864 <li>
8865 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008866 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8867only be produced if they are separately
8868enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008869 </li>
8870 </ul>
8871
8872 </td> <!-- entry_type -->
8873
8874 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008875 <p>How much metadata to produce on
8876output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008877 </td>
8878
8879 <td class="entry_units">
8880 </td>
8881
8882 <td class="entry_range">
8883 </td>
8884
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008885 <td class="entry_tags">
8886 </td>
8887
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008888 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008889
8890
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008891 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8892 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008893
8894
8895 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008896 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008897 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008898 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008899 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008900 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008901 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008902
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008903 <span class="entry_type_array">
8904 n
8905 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008906 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008907
8908
8909 </td> <!-- entry_type -->
8910
8911 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008912 <p>Lists which camera output streams image data
8913from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008914 </td>
8915
8916 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008917 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008918 </td>
8919
8920 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008921 <p>List must only include streams that have been
8922created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008923 </td>
8924
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008925 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008926 <ul class="entry_tags">
8927 <li><a href="#tag_HAL2">HAL2</a></li>
8928 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008929 </td>
8930
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008931 </tr>
8932 <tr class="entries_header">
8933 <th class="th_details" colspan="5">Details</th>
8934 </tr>
8935 <tr class="entry_cont">
8936 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008937 <p>If no output streams are listed,<wbr/> then the image
8938data should simply be discarded.<wbr/> The image data must
8939still be captured for metadata and statistics production,<wbr/>
8940and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008941 </td>
8942 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008943
8944
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008945 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8946 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008947
8948
8949 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008950 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008951 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008952 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008953 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008954 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008955
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008956 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008957
8958 <ul class="entry_type_enum">
8959 <li>
8960 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008961 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
8962and process it according to the
8963settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008964 </li>
8965 <li>
8966 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008967 <span class="entry_type_enum_notes"><p>Process previously captured data; the
8968android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
8969source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
8970needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008971 </li>
8972 </ul>
8973
8974 </td> <!-- entry_type -->
8975
8976 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008977 <p>The type of the request; either CAPTURE or
8978REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008979 </td>
8980
8981 <td class="entry_units">
8982 </td>
8983
8984 <td class="entry_range">
8985 </td>
8986
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008987 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008988 <ul class="entry_tags">
8989 <li><a href="#tag_HAL2">HAL2</a></li>
8990 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008991 </td>
8992
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008993 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008994
8995
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008996 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8997 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008998
8999
9000
9001 <!-- end of kind -->
9002 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009003 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009004
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009005 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009006 <tr>
9007 <th class="th_name">Property Name</th>
9008 <th class="th_type">Type</th>
9009 <th class="th_description">Description</th>
9010 <th class="th_units">Units</th>
9011 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009012 <th class="th_tags">Tags</th>
9013 </tr>
9014 </thead>
9015
9016 <tbody>
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009028 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009029 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009030 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009031 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009032 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009033 <span class="entry_type_container">x</span>
9034
9035 <span class="entry_type_array">
9036 3
9037 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009038 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009039
9040
9041 </td> <!-- entry_type -->
9042
9043 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009044 <p>How many output streams can be allocated at
9045the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009046 </td>
9047
9048 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009049 The number of raw sensor streams; the number of
9050 processed,<wbr/> uncompressed streams; and the number of
9051 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009052 </td>
9053
9054 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009055 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009056for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009057 </td>
9058
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009059 <td class="entry_tags">
9060 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009061 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009062 </ul>
9063 </td>
9064
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009065 </tr>
9066 <tr class="entries_header">
9067 <th class="th_details" colspan="5">Details</th>
9068 </tr>
9069 <tr class="entry_cont">
9070 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009071 <p>Video snapshot with preview callbacks requires 3
9072processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9073one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009074 </td>
9075 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009076
9077
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009078 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9079 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009080
9081
9082 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009083 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009084 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009085 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009086 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009087 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009088 <span class="entry_type_container">x</span>
9089
9090 <span class="entry_type_array">
9091 1
9092 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009093 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009094
9095
9096 </td> <!-- entry_type -->
9097
9098 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009099 <p>How many reprocessing streams of any type
9100can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009101 </td>
9102
9103 <td class="entry_units">
9104 </td>
9105
9106 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009107 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009108 </td>
9109
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009110 <td class="entry_tags">
9111 </td>
9112
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009113 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009114
9115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009116 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9117 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009118
Igor Murashkina46e02f2014-01-09 17:43:38 -08009119
9120 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9121 <td class="entry_name" rowspan="5">
9122 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9123 </td>
9124 <td class="entry_type">
9125 <span class="entry_type_name">byte</span>
9126
9127 <span class="entry_type_visibility"> [public]</span>
9128
9129
9130 </td> <!-- entry_type -->
9131
9132 <td class="entry_description">
9133 <p>Specifies the number of maximum pipeline stages a frame
9134has to go through from when it's exposed to when it's available
9135to the framework.<wbr/></p>
9136 </td>
9137
9138 <td class="entry_units">
9139 </td>
9140
9141 <td class="entry_range">
9142 </td>
9143
9144 <td class="entry_tags">
9145 </td>
9146
9147 </tr>
9148 <tr class="entries_header">
9149 <th class="th_details" colspan="5">Details</th>
9150 </tr>
9151 <tr class="entry_cont">
9152 <td class="entry_details" colspan="5">
9153 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9154one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9155its own stages to do custom HW processing.<wbr/> Further stages may be
9156added by SW processing.<wbr/></p>
9157<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9158processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9159depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9160the max pipeline depth.<wbr/></p>
9161<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9162X frame intervals.<wbr/></p>
9163<p>This value will be 8 or less.<wbr/></p>
9164 </td>
9165 </tr>
9166
9167 <tr class="entries_header">
9168 <th class="th_details" colspan="5">HAL Implementation Details</th>
9169 </tr>
9170 <tr class="entry_cont">
9171 <td class="entry_details" colspan="5">
9172 <p>This value should be 4 or less.<wbr/></p>
9173 </td>
9174 </tr>
9175
9176 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9177 <!-- end of entry -->
9178
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009179
9180
9181 <!-- end of kind -->
9182 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009183 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009184
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009185 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009186 <tr>
9187 <th class="th_name">Property Name</th>
9188 <th class="th_type">Type</th>
9189 <th class="th_description">Description</th>
9190 <th class="th_units">Units</th>
9191 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009192 <th class="th_tags">Tags</th>
9193 </tr>
9194 </thead>
9195
9196 <tbody>
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009208 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009209 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009210 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009211 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009212 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009213
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009214 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009215
9216
9217 </td> <!-- entry_type -->
9218
9219 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009220 <p>A frame counter set by the framework.<wbr/> This value monotonically
9221increases with every new result (that is,<wbr/> each new result has a unique
9222frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009223 </td>
9224
9225 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009226 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009227 </td>
9228
9229 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009230 <p>&gt; 0</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>
9237 <tr class="entries_header">
9238 <th class="th_details" colspan="5">Details</th>
9239 </tr>
9240 <tr class="entry_cont">
9241 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009242 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009243 </td>
9244 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009245
9246
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009247 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9248 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009249
9250
9251 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009252 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009253 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009254 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009255 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009256 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009257
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009258 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009259
9260
9261 </td> <!-- entry_type -->
9262
9263 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009264 <p>An application-specified ID for the current
9265request.<wbr/> Must be maintained unchanged in output
9266frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009267 </td>
9268
9269 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009270 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009271 </td>
9272
9273 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009274 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009275 </td>
9276
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009277 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009278 <ul class="entry_tags">
9279 <li><a href="#tag_V1">V1</a></li>
9280 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009281 </td>
9282
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009283 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009284
9285
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009286 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9287 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009288
9289
9290 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009291 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009292 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009293 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009294 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009295 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009296
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009297 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009298
9299 <ul class="entry_type_enum">
9300 <li>
9301 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009302 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9303for application-bound buffer data.<wbr/> If no
9304application-bound streams exist,<wbr/> no frame should be
9305placed in the output frame queue.<wbr/> If such streams
9306exist,<wbr/> a frame should be placed on the output queue
9307with null metadata but with the necessary output buffer
9308information.<wbr/> Timestamp information should still be
9309included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009310 </li>
9311 <li>
9312 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009313 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9314only be produced if they are separately
9315enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009316 </li>
9317 </ul>
9318
9319 </td> <!-- entry_type -->
9320
9321 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009322 <p>How much metadata to produce on
9323output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009324 </td>
9325
9326 <td class="entry_units">
9327 </td>
9328
9329 <td class="entry_range">
9330 </td>
9331
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009332 <td class="entry_tags">
9333 </td>
9334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009335 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009336
9337
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009338 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9339 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009340
9341
9342 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009343 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009344 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009345 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009346 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009347 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009348 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009349
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009350 <span class="entry_type_array">
9351 n
9352 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009353 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009354
9355
9356 </td> <!-- entry_type -->
9357
9358 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009359 <p>Lists which camera output streams image data
9360from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009361 </td>
9362
9363 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009364 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009365 </td>
9366
9367 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009368 <p>List must only include streams that have been
9369created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009370 </td>
9371
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009372 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009373 <ul class="entry_tags">
9374 <li><a href="#tag_HAL2">HAL2</a></li>
9375 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009376 </td>
9377
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009378 </tr>
9379 <tr class="entries_header">
9380 <th class="th_details" colspan="5">Details</th>
9381 </tr>
9382 <tr class="entry_cont">
9383 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009384 <p>If no output streams are listed,<wbr/> then the image
9385data should simply be discarded.<wbr/> The image data must
9386still be captured for metadata and statistics production,<wbr/>
9387and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009388 </td>
9389 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009390
9391
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009392 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9393 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009394
Igor Murashkina46e02f2014-01-09 17:43:38 -08009395
9396 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9397 <td class="entry_name" rowspan="5">
9398 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9399 </td>
9400 <td class="entry_type">
9401 <span class="entry_type_name">byte</span>
9402
9403 <span class="entry_type_visibility"> [public]</span>
9404
9405
9406 </td> <!-- entry_type -->
9407
9408 <td class="entry_description">
9409 <p>Specifies the number of pipeline stages the frame went
9410through from when it was exposed to when the final completed result
9411was available to the framework.<wbr/></p>
9412 </td>
9413
9414 <td class="entry_units">
9415 </td>
9416
9417 <td class="entry_range">
9418 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9419 </td>
9420
9421 <td class="entry_tags">
9422 </td>
9423
9424 </tr>
9425 <tr class="entries_header">
9426 <th class="th_details" colspan="5">Details</th>
9427 </tr>
9428 <tr class="entry_cont">
9429 <td class="entry_details" colspan="5">
9430 <p>Depending on what settings are used in the request,<wbr/> and
9431what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9432and some pipeline stages skipped.<wbr/></p>
9433<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9434 </td>
9435 </tr>
9436
9437 <tr class="entries_header">
9438 <th class="th_details" colspan="5">HAL Implementation Details</th>
9439 </tr>
9440 <tr class="entry_cont">
9441 <td class="entry_details" colspan="5">
9442 <p>This value must always represent the accurate count of how many
9443pipeline stages were actually used.<wbr/></p>
9444 </td>
9445 </tr>
9446
9447 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9448 <!-- end of entry -->
9449
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009450
9451
9452 <!-- end of kind -->
9453 </tbody>
9454
9455 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009456 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009457
9458
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009459 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009460
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009461 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009462 <tr>
9463 <th class="th_name">Property Name</th>
9464 <th class="th_type">Type</th>
9465 <th class="th_description">Description</th>
9466 <th class="th_units">Units</th>
9467 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009468 <th class="th_tags">Tags</th>
9469 </tr>
9470 </thead>
9471
9472 <tbody>
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009484 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009485 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009486 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009487 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009488 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009489 <span class="entry_type_container">x</span>
9490
9491 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009492 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009493 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009494 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009495
9496
9497 </td> <!-- entry_type -->
9498
9499 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009500 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9501<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9502(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9503output.<wbr/> Each stream must use this rectangle to produce its
9504output,<wbr/> cropping to a smaller region if necessary to
9505maintain the stream's aspect ratio.<wbr/></p>
9506<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009507 </td>
9508
9509 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009510 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9511 in pixels; (0,<wbr/>0) is top-left corner of
9512 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009513 </td>
9514
9515 <td class="entry_range">
9516 </td>
9517
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009518 <td class="entry_tags">
9519 <ul class="entry_tags">
9520 <li><a href="#tag_BC">BC</a></li>
9521 </ul>
9522 </td>
9523
9524 </tr>
9525 <tr class="entries_header">
9526 <th class="th_details" colspan="5">Details</th>
9527 </tr>
9528 <tr class="entry_cont">
9529 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009530 <p>Any additional per-stream cropping must be done to
9531maximize the final pixel area of the stream.<wbr/></p>
9532<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9533ratio,<wbr/> then 4:3 streams should use the exact crop
9534region.<wbr/> 16:9 streams should further crop vertically
9535(letterbox).<wbr/></p>
9536<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9537outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9538streams should match exactly.<wbr/> These additional crops must
9539be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009540<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009541times,<wbr/> no matter what the relative aspect ratios of the
9542crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009543corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009544larger than active pixel array.<wbr/> Width and height may be
9545rounded to nearest larger supportable width,<wbr/> especially
9546for raw output,<wbr/> where only a few fixed scales may be
9547possible.<wbr/> The width and height of the crop region cannot
9548be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9549android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9550activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9551respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009552 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009553 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009554
9555
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009556 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9557 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009558
9559
9560
9561 <!-- end of kind -->
9562 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009563 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009564
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009565 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009566 <tr>
9567 <th class="th_name">Property Name</th>
9568 <th class="th_type">Type</th>
9569 <th class="th_description">Description</th>
9570 <th class="th_units">Units</th>
9571 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009572 <th class="th_tags">Tags</th>
9573 </tr>
9574 </thead>
9575
9576 <tbody>
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009588 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009589 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009590 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009591 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009592 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009593 <span class="entry_type_container">x</span>
9594
9595 <span class="entry_type_array">
9596 n
9597 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009598 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009599
9600 <ul class="entry_type_enum">
9601 <li>
9602 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009603 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009604 <span class="entry_type_enum_value">0x20</span>
9605 </li>
9606 <li>
9607 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009608 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009609 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009610 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009611 </li>
9612 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009613 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009614 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009615 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009616 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009617 </li>
9618 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009619 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9620 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009621 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009622 </li>
9623 <li>
9624 <span class="entry_type_enum_name">YCbCr_420_888</span>
9625 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009626 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009627 </li>
9628 <li>
9629 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009630 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009631 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009632 </li>
9633 </ul>
9634
9635 </td> <!-- entry_type -->
9636
9637 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009638 <p>The list of image formats that are supported by this
9639camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009640 </td>
9641
9642 <td class="entry_units">
9643 </td>
9644
9645 <td class="entry_range">
9646 </td>
9647
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009648 <td class="entry_tags">
9649 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009650 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009651 </ul>
9652 </td>
9653
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009654 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009655 <tr class="entries_header">
9656 <th class="th_details" colspan="5">Details</th>
9657 </tr>
9658 <tr class="entry_cont">
9659 <td class="entry_details" colspan="5">
9660 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9661<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9662 </td>
9663 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009664
Zhijun Heb8317e22014-01-16 09:47:07 -08009665 <tr class="entries_header">
9666 <th class="th_details" colspan="5">HAL Implementation Details</th>
9667 </tr>
9668 <tr class="entry_cont">
9669 <td class="entry_details" colspan="5">
9670 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9671system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9672<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9673gralloc module will select a format based on the usage flags provided
9674by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9675usually used by preview and recording streams,<wbr/> where the application doesn't
9676need access the image data.<wbr/></p>
9677<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9678needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9679<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9680 </td>
9681 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009683 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9684 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009685
9686
9687 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009688 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009689 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009690 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009691 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009692 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009693 <span class="entry_type_container">x</span>
9694
9695 <span class="entry_type_array">
9696 n
9697 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009698 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009699
9700
9701 </td> <!-- entry_type -->
9702
9703 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009704 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009705for 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 -08009706 </td>
9707
9708 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009709 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009710 </td>
9711
9712 <td class="entry_range">
9713 </td>
9714
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009715 <td class="entry_tags">
9716 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009717 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009718 </ul>
9719 </td>
9720
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009721 </tr>
9722 <tr class="entries_header">
9723 <th class="th_details" colspan="5">Details</th>
9724 </tr>
9725 <tr class="entry_cont">
9726 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009727 <p>This corresponds to the minimum steady-state frame duration when only
9728that JPEG stream is active and captured in a burst,<wbr/> with all
9729processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9730<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009731frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009732durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009733 </td>
9734 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009735
9736
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009737 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9738 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009739
9740
9741 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009742 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009743 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009744 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009745 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009746 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009747 <span class="entry_type_container">x</span>
9748
9749 <span class="entry_type_array">
9750 n x 2
9751 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009752 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009753
9754
9755 </td> <!-- entry_type -->
9756
9757 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009758 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009759 </td>
9760
9761 <td class="entry_units">
9762 </td>
9763
9764 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009765 </td>
9766
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009767 <td class="entry_tags">
9768 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009769 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009770 </ul>
9771 </td>
9772
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009773 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009774 <tr class="entries_header">
9775 <th class="th_details" colspan="5">Details</th>
9776 </tr>
9777 <tr class="entry_cont">
9778 <td class="entry_details" colspan="5">
9779 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9780sensor 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>
9781 </td>
9782 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009783
Zhijun Heb8317e22014-01-16 09:47:07 -08009784 <tr class="entries_header">
9785 <th class="th_details" colspan="5">HAL Implementation Details</th>
9786 </tr>
9787 <tr class="entry_cont">
9788 <td class="entry_details" colspan="5">
9789 <p>The HAL must include sensor maximum resolution
9790(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9791and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9792 </td>
9793 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009795 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9796 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009797
9798
9799 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009800 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009801 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009802 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009803 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009804 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009805
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009806 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009807
9808
9809 </td> <!-- entry_type -->
9810
9811 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009812 <p>The maximum ratio between active area width
9813and crop region width,<wbr/> or between active area height and
9814crop region height,<wbr/> if the crop region height is larger
9815than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009816 </td>
9817
9818 <td class="entry_units">
9819 </td>
9820
9821 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009822 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009823 </td>
9824
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009825 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009826 <ul class="entry_tags">
9827 <li><a href="#tag_BC">BC</a></li>
9828 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009829 </td>
9830
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009831 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009832
9833
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009834 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9835 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009836
9837
9838 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009839 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009840 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009841 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009842 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009843 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009844 <span class="entry_type_container">x</span>
9845
9846 <span class="entry_type_array">
9847 n
9848 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009849 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009850
9851
9852 </td> <!-- entry_type -->
9853
9854 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009855 <p>For each available processed output size (defined in
9856<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
9857minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009858 </td>
9859
9860 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009861 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009862 </td>
9863
9864 <td class="entry_range">
9865 </td>
9866
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009867 <td class="entry_tags">
9868 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009869 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009870 </ul>
9871 </td>
9872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009873 </tr>
9874 <tr class="entries_header">
9875 <th class="th_details" colspan="5">Details</th>
9876 </tr>
9877 <tr class="entry_cont">
9878 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009879 <p>This should correspond to the frame duration when only that processed
9880stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
9881set to FAST.<wbr/></p>
9882<p>When multiple streams are configured,<wbr/> the minimum frame duration will
9883be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009884 </td>
9885 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009886
9887
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009888 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9889 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009890
9891
9892 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009893 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009894 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009895 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009896 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009897 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009898 <span class="entry_type_container">x</span>
9899
9900 <span class="entry_type_array">
9901 n x 2
9902 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009903 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009904
9905
9906 </td> <!-- entry_type -->
9907
9908 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009909 <p>The resolutions available for use with
9910processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
9911platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -08009912encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009913 </td>
9914
9915 <td class="entry_units">
9916 </td>
9917
9918 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009919 </td>
9920
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009921 <td class="entry_tags">
9922 <ul class="entry_tags">
9923 <li><a href="#tag_BC">BC</a></li>
9924 </ul>
9925 </td>
9926
9927 </tr>
9928 <tr class="entries_header">
9929 <th class="th_details" colspan="5">Details</th>
9930 </tr>
9931 <tr class="entry_cont">
9932 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -08009933 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
9934<p>For a given use case,<wbr/> the actual maximum supported resolution
9935may be lower than what is listed here,<wbr/> depending on the destination
9936Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
9937the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
9938smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
9939can provide.<wbr/></p>
9940<p>Please reference the documentation for the image data destination to
9941check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009942 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009943 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009944
Zhijun Heb8317e22014-01-16 09:47:07 -08009945 <tr class="entries_header">
9946 <th class="th_details" colspan="5">HAL Implementation Details</th>
9947 </tr>
9948 <tr class="entry_cont">
9949 <td class="entry_details" colspan="5">
9950 <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/>
9951the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
9952and each below resolution if it is smaller than or equal to the sensor
9953maximum resolution (if they are not listed in JPEG sizes already):</p>
9954<ul>
9955<li>240p (320 x 240)</li>
9956<li>480p (640 x 480)</li>
9957<li>720p (1280 x 720)</li>
9958<li>1080p (1920 x 1080)</li>
9959</ul>
9960<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/>
9961the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
9962 </td>
9963 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009964
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009965 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9966 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009967
9968
9969 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009970 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009971 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009972 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009973 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009974 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009975 <span class="entry_type_container">x</span>
9976
9977 <span class="entry_type_array">
9978 n
9979 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009980 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009981
9982
9983 </td> <!-- entry_type -->
9984
9985 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009986 <p>For each available processed output size (defined in
9987<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
9988supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009989 </td>
9990
9991 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009992 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009993 </td>
9994
9995 <td class="entry_range">
9996 </td>
9997
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009998 <td class="entry_tags">
9999 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010000 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010001 </ul>
10002 </td>
10003
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010004 </tr>
10005 <tr class="entries_header">
10006 <th class="th_details" colspan="5">Details</th>
10007 </tr>
10008 <tr class="entry_cont">
10009 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010010 <p>Should correspond to the frame duration when only the raw stream is
10011active.<wbr/></p>
10012<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010013frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010014durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010015 </td>
10016 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010017
10018
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010019 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10020 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010021
10022
10023 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010024 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010025 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010026 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010027 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010028 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010029 <span class="entry_type_container">x</span>
10030
10031 <span class="entry_type_array">
10032 n x 2
10033 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010034 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010035
10036
10037 </td> <!-- entry_type -->
10038
10039 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010040 <p>The resolutions available for use with raw
10041sensor output streams,<wbr/> listed as width,<wbr/>
10042height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010043 </td>
10044
10045 <td class="entry_units">
10046 </td>
10047
10048 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010049 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010050 </td>
10051
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010052 <td class="entry_tags">
10053 </td>
10054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010055 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010056
10057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010058 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10059 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010060
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010061
10062
10063 <!-- end of kind -->
10064 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010065 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010066
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010067 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010068 <tr>
10069 <th class="th_name">Property Name</th>
10070 <th class="th_type">Type</th>
10071 <th class="th_description">Description</th>
10072 <th class="th_units">Units</th>
10073 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010074 <th class="th_tags">Tags</th>
10075 </tr>
10076 </thead>
10077
10078 <tbody>
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010090 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010091 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010092 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010093 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010094 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010095 <span class="entry_type_container">x</span>
10096
10097 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010098 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010099 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010100 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010101
10102
10103 </td> <!-- entry_type -->
10104
10105 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010106 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10107<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10108(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10109output.<wbr/> Each stream must use this rectangle to produce its
10110output,<wbr/> cropping to a smaller region if necessary to
10111maintain the stream's aspect ratio.<wbr/></p>
10112<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010113 </td>
10114
10115 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010116 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10117 in pixels; (0,<wbr/>0) is top-left corner of
10118 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010119 </td>
10120
10121 <td class="entry_range">
10122 </td>
10123
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010124 <td class="entry_tags">
10125 <ul class="entry_tags">
10126 <li><a href="#tag_BC">BC</a></li>
10127 </ul>
10128 </td>
10129
10130 </tr>
10131 <tr class="entries_header">
10132 <th class="th_details" colspan="5">Details</th>
10133 </tr>
10134 <tr class="entry_cont">
10135 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010136 <p>Any additional per-stream cropping must be done to
10137maximize the final pixel area of the stream.<wbr/></p>
10138<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10139ratio,<wbr/> then 4:3 streams should use the exact crop
10140region.<wbr/> 16:9 streams should further crop vertically
10141(letterbox).<wbr/></p>
10142<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10143outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10144streams should match exactly.<wbr/> These additional crops must
10145be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010146<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010147times,<wbr/> no matter what the relative aspect ratios of the
10148crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010149corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010150larger than active pixel array.<wbr/> Width and height may be
10151rounded to nearest larger supportable width,<wbr/> especially
10152for raw output,<wbr/> where only a few fixed scales may be
10153possible.<wbr/> The width and height of the crop region cannot
10154be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10155android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10156activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10157respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010158 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010159 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010160
10161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010162 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10163 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010164
10165
10166
10167 <!-- end of kind -->
10168 </tbody>
10169
10170 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010171 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010172
10173
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010174 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010175
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010176 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010177 <tr>
10178 <th class="th_name">Property Name</th>
10179 <th class="th_type">Type</th>
10180 <th class="th_description">Description</th>
10181 <th class="th_units">Units</th>
10182 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010183 <th class="th_tags">Tags</th>
10184 </tr>
10185 </thead>
10186
10187 <tbody>
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010199 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010200 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010201 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010202 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010203 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010204
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010205 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010206
10207
10208 </td> <!-- entry_type -->
10209
10210 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010211 <p>Duration each pixel is exposed to
10212light.<wbr/></p>
10213<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10214duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010215 </td>
10216
10217 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010218 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010219 </td>
10220
10221 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010222 <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 -080010223 </td>
10224
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010225 <td class="entry_tags">
10226 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010227 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010228 </ul>
10229 </td>
10230
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010231 </tr>
10232 <tr class="entries_header">
10233 <th class="th_details" colspan="5">Details</th>
10234 </tr>
10235 <tr class="entry_cont">
10236 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010237 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010238 </td>
10239 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010240
10241
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010242 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10243 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010244
10245
10246 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010247 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010248 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010249 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010250 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010251 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010252
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010253 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010254
10255
10256 </td> <!-- entry_type -->
10257
10258 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010259 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010260start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010261 </td>
10262
10263 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010264 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010265 </td>
10266
10267 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010268 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10269android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10270is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010271 </td>
10272
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010273 <td class="entry_tags">
10274 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010275 <li><a href="#tag_V1">V1</a></li>
10276 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010277 </ul>
10278 </td>
10279
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010280 </tr>
10281 <tr class="entries_header">
10282 <th class="th_details" colspan="5">Details</th>
10283 </tr>
10284 <tr class="entry_cont">
10285 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010286 <p>The maximum frame rate that can be supported by a camera subsystem is
10287a function of many factors:</p>
10288<ul>
10289<li>Requested resolutions of output image streams</li>
10290<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10291<li>The bandwidth of the imager interface</li>
10292<li>The bandwidth of the various ISP processing blocks</li>
10293</ul>
10294<p>Since these factors can vary greatly between different ISPs and
10295sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10296restrictions with as simple a model as possible.<wbr/></p>
10297<p>The model presented has the following characteristics:</p>
10298<ul>
10299<li>The image sensor is always configured to output the smallest
10300resolution possible given the application's requested output stream
10301sizes.<wbr/> The smallest resolution is defined as being at least as large
10302as the largest requested output stream size; the camera pipeline must
10303never digitally upsample sensor data when the crop region covers the
10304whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10305resolutions are configured,<wbr/> the sensor can provide a higher frame
10306rate.<wbr/></li>
10307<li>Since any request may use any or all the currently configured
10308output streams,<wbr/> the sensor and ISP must be configured to support
10309scaling a single capture to all the streams at the same time.<wbr/> This
10310means the camera pipeline must be ready to produce the largest
10311requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10312frame rate of a given configured stream set is governed only by the
10313largest requested stream resolution.<wbr/></li>
10314<li>Using more than one output stream in a request does not affect the
10315frame duration.<wbr/></li>
10316<li>JPEG streams act like processed YUV streams in requests for which
10317they are not included; in requests in which they are directly
10318referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10319JPEG stream requires the underlying YUV data to always be ready for
10320use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10321frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10322<li>The JPEG processor can run concurrently to the rest of the camera
10323pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10324</ul>
10325<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10326is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10327These are used to determine the maximum frame rate /<wbr/> minimum frame
10328duration that is possible for a given stream configuration.<wbr/></p>
10329<p>Specifically,<wbr/> the application can use the following rules to
10330determine the minimum frame duration it can request from the HAL
10331device:</p>
10332<ol>
10333<li>Given the application's currently configured set of output
10334streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10335<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10336<code>SP</code>.<wbr/></li>
10337<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10338count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10339<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10340<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
10341no exact match for <code>RP == RJ</code> (in particular there isn't an available
10342processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10343to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10344there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10345the processed resolution closest to <code>RJ</code>.<wbr/></li>
10346<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
10347no exact match for <code>RR == RP</code> (in particular there isn't an available
10348raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10349or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10350there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10351the raw resolution closest to <code>RP</code>.<wbr/></li>
10352<li>Look up the matching minimum frame durations in the property lists
10353<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10354<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10355<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10356minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10357<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10358supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10359<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10360supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10361<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10362the application,<wbr/> then the HAL will have to delay JPEG-using requests
10363whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10364This will happen whenever a JPEG-using request starts capture less
10365than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10366supported frame duration will vary between the values calculated in
10367#6 and #7.<wbr/></li>
10368</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010369 </td>
10370 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010371
10372
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010373 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10374 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010375
10376
10377 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010378 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010379 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010380 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010381 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010382 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010383
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010384 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010385
10386
10387 </td> <!-- entry_type -->
10388
10389 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010390 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010391implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010392below 'maximum analog sensitivity'.<wbr/></p>
10393<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10394gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010395 </td>
10396
10397 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010398 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010399 </td>
10400
10401 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010402 <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 -080010403 </td>
10404
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010405 <td class="entry_tags">
10406 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010407 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010408 </ul>
10409 </td>
10410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010411 </tr>
10412 <tr class="entries_header">
10413 <th class="th_details" colspan="5">Details</th>
10414 </tr>
10415 <tr class="entry_cont">
10416 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010417 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010418 </td>
10419 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010420
10421
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010422 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10423 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010424
Igor Murashkina46e02f2014-01-09 17:43:38 -080010425
10426 <tr class="entry" id="controls_android.sensor.testPatternData">
10427 <td class="entry_name" rowspan="5">
10428 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10429 </td>
10430 <td class="entry_type">
10431 <span class="entry_type_name">int32</span>
10432 <span class="entry_type_container">x</span>
10433
10434 <span class="entry_type_array">
10435 4
10436 </span>
10437 <span class="entry_type_visibility"> [public]</span>
10438
10439
10440 </td> <!-- entry_type -->
10441
10442 <td class="entry_description">
10443 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10444when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10445 </td>
10446
10447 <td class="entry_units">
10448 </td>
10449
10450 <td class="entry_range">
10451 <p>Optional.<wbr/>
10452Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10453SOLID_<wbr/>COLOR.<wbr/></p>
10454 </td>
10455
10456 <td class="entry_tags">
10457 </td>
10458
10459 </tr>
10460 <tr class="entries_header">
10461 <th class="th_details" colspan="5">Details</th>
10462 </tr>
10463 <tr class="entry_cont">
10464 <td class="entry_details" colspan="5">
10465 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10466The camera device then uses the most significant X bits
10467that correspond to how many bits are in its Bayer raw sensor
10468output.<wbr/></p>
10469<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1047010 most significant bits from each color channel.<wbr/></p>
10471 </td>
10472 </tr>
10473
10474 <tr class="entries_header">
10475 <th class="th_details" colspan="5">HAL Implementation Details</th>
10476 </tr>
10477 <tr class="entry_cont">
10478 <td class="entry_details" colspan="5">
10479
10480 </td>
10481 </tr>
10482
10483 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10484 <!-- end of entry -->
10485
10486
10487 <tr class="entry" id="controls_android.sensor.testPatternMode">
10488 <td class="entry_name" rowspan="5">
10489 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10490 </td>
10491 <td class="entry_type">
10492 <span class="entry_type_name entry_type_name_enum">int32</span>
10493
10494 <span class="entry_type_visibility"> [public]</span>
10495
10496 <ul class="entry_type_enum">
10497 <li>
10498 <span class="entry_type_enum_name">OFF</span>
10499 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10500device returns captures from the image sensor.<wbr/></p></span>
10501 </li>
10502 <li>
10503 <span class="entry_type_enum_name">SOLID_COLOR</span>
10504 <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
10505respective color channel provided in
10506<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10507<p>For example:</p>
10508<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10509</code></pre>
10510<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10511<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10512</code></pre>
10513<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10514are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10515 </li>
10516 <li>
10517 <span class="entry_type_enum_name">COLOR_BARS</span>
10518 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10519<p>The vertical bars (left-to-right) are as follows:</p>
10520<ul>
10521<li>100% white</li>
10522<li>yellow</li>
10523<li>cyan</li>
10524<li>green</li>
10525<li>magenta</li>
10526<li>red</li>
10527<li>blue</li>
10528<li>black</li>
10529</ul>
10530<p>In general the image would look like the following:</p>
10531<pre><code>W Y C G M R B K
10532W Y C G M R B K
10533W Y C G M R B K
10534W Y C G M R B K
10535W Y C G M R B K
10536.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10537.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10538.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10539
10540(B = Blue,<wbr/> K = Black)
10541</code></pre>
10542<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10543When this is not possible,<wbr/> the bar size should be rounded
10544down to the nearest integer and the pattern can repeat
10545on the right side.<wbr/></p>
10546<p>Each bar's height must always take up the full sensor
10547pixel array height.<wbr/></p>
10548<p>Each pixel in this test pattern must be set to either
105490% intensity or 100% intensity.<wbr/></p></span>
10550 </li>
10551 <li>
10552 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10553 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10554each bar should start at its specified color at the top,<wbr/>
10555and fade to gray at the bottom.<wbr/></p>
10556<p>Furthermore each bar is further subdivided into a left and
10557right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10558and the right half should have a quantized gradient.<wbr/></p>
10559<p>In particular,<wbr/> the right half's should consist of blocks of the
10560same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10561<p>The least significant bits in the quantized gradient should
10562be copied from the most significant bits of the smooth gradient.<wbr/></p>
10563<p>The height of each bar should always be a multiple of 128.<wbr/>
10564When this is not the case,<wbr/> the pattern should repeat at the bottom
10565of the image.<wbr/></p></span>
10566 </li>
10567 <li>
10568 <span class="entry_type_enum_name">PN9</span>
10569 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10570generated from a PN9 512-bit sequence (typically implemented
10571in hardware with a linear feedback shift register).<wbr/></p>
10572<p>The generator should be reset at the beginning of each frame,<wbr/>
10573and thus each subsequent raw frame with this test pattern should
10574be exactly the same as the last.<wbr/></p></span>
10575 </li>
10576 <li>
10577 <span class="entry_type_enum_name">CUSTOM1</span>
10578 <span class="entry_type_enum_value">256</span>
10579 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10580available only on this camera device are at least this numeric
10581value.<wbr/></p>
10582<p>All of the custom test patterns will be static
10583(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10584 </li>
10585 </ul>
10586
10587 </td> <!-- entry_type -->
10588
10589 <td class="entry_description">
10590 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10591doing a real exposure from the camera.<wbr/></p>
10592 </td>
10593
10594 <td class="entry_units">
10595 </td>
10596
10597 <td class="entry_range">
10598 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10599<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10600 </td>
10601
10602 <td class="entry_tags">
10603 </td>
10604
10605 </tr>
10606 <tr class="entries_header">
10607 <th class="th_details" colspan="5">Details</th>
10608 </tr>
10609 <tr class="entry_cont">
10610 <td class="entry_details" colspan="5">
10611 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10612by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10613work as normal.<wbr/></p>
10614<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10615occur (and that the test pattern remain unmodified,<wbr/> since the flash
10616would not actually affect it).<wbr/></p>
10617 </td>
10618 </tr>
10619
10620 <tr class="entries_header">
10621 <th class="th_details" colspan="5">HAL Implementation Details</th>
10622 </tr>
10623 <tr class="entry_cont">
10624 <td class="entry_details" colspan="5">
10625 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10626<p>The HAL may choose to substitute test patterns from the sensor
10627with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10628indistinguishable to the ISP whether the data came from the
10629sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10630 </td>
10631 </tr>
10632
10633 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10634 <!-- end of entry -->
10635
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010636
10637
10638 <!-- end of kind -->
10639 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010640 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010641
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010642 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010643 <tr>
10644 <th class="th_name">Property Name</th>
10645 <th class="th_type">Type</th>
10646 <th class="th_description">Description</th>
10647 <th class="th_units">Units</th>
10648 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010649 <th class="th_tags">Tags</th>
10650 </tr>
10651 </thead>
10652
10653 <tbody>
10654
10655
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010667 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010668 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010669 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010670 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010671 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010672 <span class="entry_type_container">x</span>
10673
10674 <span class="entry_type_array">
10675 4
10676 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010677 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010678 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010679
10680
10681 </td> <!-- entry_type -->
10682
10683 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010684 <p>Area of raw data which corresponds to only
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010685active pixels; smaller or equal to
Igor Murashkin0b080452013-12-27 15:30:25 -080010686pixelArraySize.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010687 </td>
10688
10689 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010690 xmin,<wbr/> ymin,<wbr/> width,<wbr/> height.<wbr/> Top left of full
10691 pixel array is (0,<wbr/>0)
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010692 </td>
10693
10694 <td class="entry_range">
10695 </td>
10696
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010697 <td class="entry_tags">
10698 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010699 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010700 </ul>
10701 </td>
10702
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010703 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010704
10705
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010706 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10707 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010708
10709
Zhijun He69fc0ea2013-07-17 09:42:58 -070010710 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010711 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010712 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010713 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010714 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010715 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010716 <span class="entry_type_container">x</span>
10717
10718 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010719 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010720 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010721 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010722 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010723
10724
10725 </td> <!-- entry_type -->
10726
10727 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010728 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010729 </td>
10730
10731 <td class="entry_units">
10732 </td>
10733
10734 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010735 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010736 </td>
10737
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010738 <td class="entry_tags">
10739 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010740 <li><a href="#tag_BC">BC</a></li>
10741 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010742 </ul>
10743 </td>
10744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010745 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010746
10747
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010748 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10749 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010750
10751
10752 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010753 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010754 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010755 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010756 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010757 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010758
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010759 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010760
10761 <ul class="entry_type_enum">
10762 <li>
10763 <span class="entry_type_enum_name">RGGB</span>
10764 </li>
10765 <li>
10766 <span class="entry_type_enum_name">GRBG</span>
10767 </li>
10768 <li>
10769 <span class="entry_type_enum_name">GBRG</span>
10770 </li>
10771 <li>
10772 <span class="entry_type_enum_name">BGGR</span>
10773 </li>
10774 <li>
10775 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010776 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10777values for each pixel,<wbr/> instead of just 1 16-bit value
10778per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010779 </li>
10780 </ul>
10781
10782 </td> <!-- entry_type -->
10783
10784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010785 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010786represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010787the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010788 </td>
10789
10790 <td class="entry_units">
10791 </td>
10792
10793 <td class="entry_range">
10794 </td>
10795
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010796 <td class="entry_tags">
10797 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010798 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010799 </ul>
10800 </td>
10801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010802 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010803
10804
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010805 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10806 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010807
10808
10809 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010810 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010811 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010812 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010813 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010814 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010815 <span class="entry_type_container">x</span>
10816
10817 <span class="entry_type_array">
10818 2
10819 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010820 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010821 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010822
10823
10824 </td> <!-- entry_type -->
10825
10826 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010827 <p>Range of valid exposure
10828times</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010829 </td>
10830
10831 <td class="entry_units">
10832 </td>
10833
10834 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010835 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 30e9 (30
10836sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010837 </td>
10838
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010839 <td class="entry_tags">
10840 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010841 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010842 </ul>
10843 </td>
10844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010845 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010846
10847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010848 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10849 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010850
10851
10852 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010853 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010854 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010855 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010856 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010857 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010858
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010859 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010860
10861
10862 </td> <!-- entry_type -->
10863
10864 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010865 <p>Maximum possible frame duration (minimum frame
10866rate)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010867 </td>
10868
10869 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010870 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010871 </td>
10872
10873 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010874 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010875 </td>
10876
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010877 <td class="entry_tags">
10878 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010879 <li><a href="#tag_BC">BC</a></li>
10880 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010881 </ul>
10882 </td>
10883
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010884 </tr>
10885 <tr class="entries_header">
10886 <th class="th_details" colspan="5">Details</th>
10887 </tr>
10888 <tr class="entry_cont">
10889 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010890 <p>Minimum duration is a function of resolution,<wbr/>
10891processing settings.<wbr/> See
10892android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
10893android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010894<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010895 </td>
10896 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010897
10898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010899 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10900 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010901
10902
10903 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010904 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010905 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010906 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010907 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010908 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010909 <span class="entry_type_container">x</span>
10910
10911 <span class="entry_type_array">
10912 2
10913 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070010914 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010915 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010916
10917
10918 </td> <!-- entry_type -->
10919
10920 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010921 <p>The physical dimensions of the full pixel
10922array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010923 </td>
10924
10925 <td class="entry_units">
10926 </td>
10927
10928 <td class="entry_range">
10929 </td>
10930
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010931 <td class="entry_tags">
10932 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010933 <li><a href="#tag_V1">V1</a></li>
10934 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010935 </ul>
10936 </td>
10937
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010938 </tr>
10939 <tr class="entries_header">
10940 <th class="th_details" colspan="5">Details</th>
10941 </tr>
10942 <tr class="entry_cont">
10943 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010944 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010945 </td>
10946 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010947
10948
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010949 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10950 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010951
10952
10953 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010954 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010955 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010956 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010957 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010958 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010959 <span class="entry_type_container">x</span>
10960
10961 <span class="entry_type_array">
10962 2
10963 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010964 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010965
10966
10967 </td> <!-- entry_type -->
10968
10969 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010970 <p>Dimensions of full pixel array,<wbr/> possibly
10971including black calibration pixels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010972 </td>
10973
10974 <td class="entry_units">
10975 </td>
10976
10977 <td class="entry_range">
10978 </td>
10979
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010980 <td class="entry_tags">
10981 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010982 <li><a href="#tag_DNG">DNG</a></li>
10983 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010984 </ul>
10985 </td>
10986
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010987 </tr>
10988 <tr class="entries_header">
10989 <th class="th_details" colspan="5">Details</th>
10990 </tr>
10991 <tr class="entry_cont">
10992 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010993 <p>Maximum output resolution for raw format must
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010994match this in
Igor Murashkin0b080452013-12-27 15:30:25 -080010995android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Sizes<wbr/>Per<wbr/>Format</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010996 </td>
10997 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010998
10999
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011000 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11001 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011002
11003
11004 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011005 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011006 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011007 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011008 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011009 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011010
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011011 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011012
11013
11014 </td> <!-- entry_type -->
11015
11016 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011017 <p>Maximum raw value output by
11018sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011019 </td>
11020
11021 <td class="entry_units">
11022 </td>
11023
11024 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011025 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011026 </td>
11027
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011028 <td class="entry_tags">
11029 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011030 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011031 </ul>
11032 </td>
11033
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011034 </tr>
11035 <tr class="entries_header">
11036 <th class="th_details" colspan="5">Details</th>
11037 </tr>
11038 <tr class="entry_cont">
11039 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011040 <p>Defines sensor bit depth (10-14 bits is
11041expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011042 </td>
11043 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011044
11045
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011046 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11047 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011048
11049
11050
11051
11052
11053 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011054 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011055 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011058 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011059
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011060 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011061
11062
11063 </td> <!-- entry_type -->
11064
11065 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011066 <p>Gain factor from electrons to raw units when
11067ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011068 </td>
11069
11070 <td class="entry_units">
11071 </td>
11072
11073 <td class="entry_range">
11074 </td>
11075
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011076 <td class="entry_tags">
11077 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011078 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011079 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011080 </ul>
11081 </td>
11082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011083 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011084
11085
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011086 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11087 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011088
11089
11090 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011091 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011092 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011093 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011094 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011095 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011096 <span class="entry_type_container">x</span>
11097
11098 <span class="entry_type_array">
11099 4
11100 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011101 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011102 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011103
11104
11105 </td> <!-- entry_type -->
11106
11107 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011108 <p>A fixed black level offset for each of the
11109Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011110 </td>
11111
11112 <td class="entry_units">
11113 </td>
11114
11115 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011116 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011117 </td>
11118
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011119 <td class="entry_tags">
11120 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011121 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011122 </ul>
11123 </td>
11124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011125 </tr>
11126 <tr class="entries_header">
11127 <th class="th_details" colspan="5">Details</th>
11128 </tr>
11129 <tr class="entry_cont">
11130 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011131 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11132tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011133 </td>
11134 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011135
11136
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011137 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11138 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011139
11140
11141 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011142 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011143 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011144 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011145 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011146 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011147 <span class="entry_type_container">x</span>
11148
11149 <span class="entry_type_array">
11150 9
11151 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011152 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011153 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011154
11155
11156 </td> <!-- entry_type -->
11157
11158 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011159 <p>Per-device calibration on top of color space
11160transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011161 </td>
11162
11163 <td class="entry_units">
11164 </td>
11165
11166 <td class="entry_range">
11167 </td>
11168
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011169 <td class="entry_tags">
11170 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011171 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011172 </ul>
11173 </td>
11174
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011175 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011176
11177
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011178 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11179 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011180
11181
11182 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011183 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011184 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011185 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011186 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011187 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011188 <span class="entry_type_container">x</span>
11189
11190 <span class="entry_type_array">
11191 9
11192 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011193 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011194 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011195
11196
11197 </td> <!-- entry_type -->
11198
11199 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011200 <p>Per-device calibration on top of color space
11201transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011202 </td>
11203
11204 <td class="entry_units">
11205 </td>
11206
11207 <td class="entry_range">
11208 </td>
11209
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011210 <td class="entry_tags">
11211 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011212 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011213 </ul>
11214 </td>
11215
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011216 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011217
11218
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011219 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11220 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011221
11222
11223 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011224 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011225 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011226 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011227 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011228 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011229 <span class="entry_type_container">x</span>
11230
11231 <span class="entry_type_array">
11232 9
11233 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011234 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011235 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011236
11237
11238 </td> <!-- entry_type -->
11239
11240 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011241 <p>Linear mapping from XYZ (D50) color space to
11242reference linear sensor color,<wbr/> for first reference
11243illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011244 </td>
11245
11246 <td class="entry_units">
11247 </td>
11248
11249 <td class="entry_range">
11250 </td>
11251
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011252 <td class="entry_tags">
11253 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011254 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011255 </ul>
11256 </td>
11257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011258 </tr>
11259 <tr class="entries_header">
11260 <th class="th_details" colspan="5">Details</th>
11261 </tr>
11262 <tr class="entry_cont">
11263 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011264 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11265black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11266At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011267 </td>
11268 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011269
11270
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011271 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11272 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011273
11274
11275 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011276 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011277 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011278 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011279 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011280 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011281 <span class="entry_type_container">x</span>
11282
11283 <span class="entry_type_array">
11284 9
11285 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011286 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011287 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011288
11289
11290 </td> <!-- entry_type -->
11291
11292 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011293 <p>Linear mapping from XYZ (D50) color space to
11294reference linear sensor color,<wbr/> for second reference
11295illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011296 </td>
11297
11298 <td class="entry_units">
11299 </td>
11300
11301 <td class="entry_range">
11302 </td>
11303
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011304 <td class="entry_tags">
11305 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011306 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011307 </ul>
11308 </td>
11309
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011310 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011311
11312
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011313 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11314 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011315
11316
11317 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011318 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011319 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011320 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011321 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011322 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011323 <span class="entry_type_container">x</span>
11324
11325 <span class="entry_type_array">
11326 9
11327 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011328 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011329 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011330
11331
11332 </td> <!-- entry_type -->
11333
11334 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011335 <p>Used by DNG for better WB
11336adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011337 </td>
11338
11339 <td class="entry_units">
11340 </td>
11341
11342 <td class="entry_range">
11343 </td>
11344
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011345 <td class="entry_tags">
11346 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011347 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011348 </ul>
11349 </td>
11350
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011351 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011352
11353
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011354 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11355 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011356
11357
11358 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011359 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011360 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011361 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011362 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011363 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011364 <span class="entry_type_container">x</span>
11365
11366 <span class="entry_type_array">
11367 9
11368 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011369 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011370 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011371
11372
11373 </td> <!-- entry_type -->
11374
11375 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011376 <p>Used by DNG for better WB
11377adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011378 </td>
11379
11380 <td class="entry_units">
11381 </td>
11382
11383 <td class="entry_range">
11384 </td>
11385
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011386 <td class="entry_tags">
11387 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011388 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011389 </ul>
11390 </td>
11391
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011392 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011393
11394
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011395 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11396 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011397
11398
11399 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011400 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011401 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011402 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011403 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011404 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011405
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011406 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011407
11408
11409 </td> <!-- entry_type -->
11410
11411 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011412 <p>Maximum sensitivity that is implemented
11413purely through analog gain</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011414 </td>
11415
11416 <td class="entry_units">
11417 </td>
11418
11419 <td class="entry_range">
11420 </td>
11421
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011422 <td class="entry_tags">
11423 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011424 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011425 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011426 </ul>
11427 </td>
11428
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011429 </tr>
11430 <tr class="entries_header">
11431 <th class="th_details" colspan="5">Details</th>
11432 </tr>
11433 <tr class="entry_cont">
11434 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011435 <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 -080011436equal to this,<wbr/> all applied gain must be analog.<wbr/> For
11437values above this,<wbr/> it can be a mix of analog and
11438digital</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011439 </td>
11440 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011441
11442
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011443 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11444 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011445
11446
11447 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011448 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011449 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011450 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011451 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011452 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011453 <span class="entry_type_container">x</span>
11454
11455 <span class="entry_type_array">
11456 2
11457 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011458 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011459 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011460
11461
11462 </td> <!-- entry_type -->
11463
11464 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011465 <p>Estimation of sensor noise
11466characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011467 </td>
11468
11469 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011470 var(raw pixel value) = electrons * (baseGainFactor
11471 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11472 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011473 </td>
11474
11475 <td class="entry_range">
11476 </td>
11477
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011478 <td class="entry_tags">
11479 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011480 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011481 </ul>
11482 </td>
11483
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011484 </tr>
11485 <tr class="entries_header">
11486 <th class="th_details" colspan="5">Details</th>
11487 </tr>
11488 <tr class="entry_cont">
11489 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011490 <p>A represents sensor read noise before analog
11491amplification; B represents noise from A/<wbr/>D conversion and
11492other circuits after amplification.<wbr/> Both noise sources
11493are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11494across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011495 </td>
11496 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011497
11498
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011499 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11500 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011501
11502
11503 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011504 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011505 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011506 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011507 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011508 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011509
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011510 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011511
11512
11513 </td> <!-- entry_type -->
11514
11515 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011516 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011517image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011518screen in its native orientation.<wbr/> Also defines the
11519direction of rolling shutter readout,<wbr/> which is from top
11520to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011521 </td>
11522
11523 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011524 degrees clockwise rotation,<wbr/> only multiples of
11525 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011526 </td>
11527
11528 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011529 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011530 </td>
11531
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011532 <td class="entry_tags">
11533 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011534 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011535 </ul>
11536 </td>
11537
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011538 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011539
11540
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011541 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11542 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011543
11544
11545 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011546 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011547 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011548 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011549 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011550 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011551
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011552 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011553
11554 <ul class="entry_type_enum">
11555 <li>
11556 <span class="entry_type_enum_name">DAYLIGHT</span>
11557 <span class="entry_type_enum_value">1</span>
11558 </li>
11559 <li>
11560 <span class="entry_type_enum_name">FLUORESCENT</span>
11561 <span class="entry_type_enum_value">2</span>
11562 </li>
11563 <li>
11564 <span class="entry_type_enum_name">TUNGSTEN</span>
11565 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011566 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011567 </li>
11568 <li>
11569 <span class="entry_type_enum_name">FLASH</span>
11570 <span class="entry_type_enum_value">4</span>
11571 </li>
11572 <li>
11573 <span class="entry_type_enum_name">FINE_WEATHER</span>
11574 <span class="entry_type_enum_value">9</span>
11575 </li>
11576 <li>
11577 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11578 <span class="entry_type_enum_value">10</span>
11579 </li>
11580 <li>
11581 <span class="entry_type_enum_name">SHADE</span>
11582 <span class="entry_type_enum_value">11</span>
11583 </li>
11584 <li>
11585 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11586 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011587 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011588 </li>
11589 <li>
11590 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11591 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011592 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011593 </li>
11594 <li>
11595 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11596 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011597 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011598 </li>
11599 <li>
11600 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11601 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011602 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011603 </li>
11604 <li>
11605 <span class="entry_type_enum_name">STANDARD_A</span>
11606 <span class="entry_type_enum_value">17</span>
11607 </li>
11608 <li>
11609 <span class="entry_type_enum_name">STANDARD_B</span>
11610 <span class="entry_type_enum_value">18</span>
11611 </li>
11612 <li>
11613 <span class="entry_type_enum_name">STANDARD_C</span>
11614 <span class="entry_type_enum_value">19</span>
11615 </li>
11616 <li>
11617 <span class="entry_type_enum_name">D55</span>
11618 <span class="entry_type_enum_value">20</span>
11619 </li>
11620 <li>
11621 <span class="entry_type_enum_name">D65</span>
11622 <span class="entry_type_enum_value">21</span>
11623 </li>
11624 <li>
11625 <span class="entry_type_enum_name">D75</span>
11626 <span class="entry_type_enum_value">22</span>
11627 </li>
11628 <li>
11629 <span class="entry_type_enum_name">D50</span>
11630 <span class="entry_type_enum_value">23</span>
11631 </li>
11632 <li>
11633 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11634 <span class="entry_type_enum_value">24</span>
11635 </li>
11636 </ul>
11637
11638 </td> <!-- entry_type -->
11639
11640 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011641 <p>Light source used to define transform
116421</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011643 </td>
11644
11645 <td class="entry_units">
11646 </td>
11647
11648 <td class="entry_range">
11649 </td>
11650
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011651 <td class="entry_tags">
11652 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011653 <li><a href="#tag_DNG">DNG</a></li>
11654 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011655 </ul>
11656 </td>
11657
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011658 </tr>
11659 <tr class="entries_header">
11660 <th class="th_details" colspan="5">Details</th>
11661 </tr>
11662 <tr class="entry_cont">
11663 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011664 <p>[EXIF LightSource tag] Must all these be
11665supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011666 </td>
11667 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011668
11669
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011670 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11671 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011672
11673
11674 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011675 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011676 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011677 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011678 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011679 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011680
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011681 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011682
11683
11684 </td> <!-- entry_type -->
11685
11686 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011687 <p>Light source used to define transform
116882</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011689 </td>
11690
11691 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011692 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011693 </td>
11694
11695 <td class="entry_range">
11696 </td>
11697
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011698 <td class="entry_tags">
11699 </td>
11700
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011701 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011702
11703
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011704 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11705 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011706
Igor Murashkina46e02f2014-01-09 17:43:38 -080011707
11708 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11709 <td class="entry_name" rowspan="1">
11710 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11711 </td>
11712 <td class="entry_type">
11713 <span class="entry_type_name">byte</span>
11714
11715 <span class="entry_type_visibility"> [public]</span>
11716
11717
11718 </td> <!-- entry_type -->
11719
11720 <td class="entry_description">
11721 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11722pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11723 </td>
11724
11725 <td class="entry_units">
11726 </td>
11727
11728 <td class="entry_range">
11729 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11730 </td>
11731
11732 <td class="entry_tags">
11733 </td>
11734
11735 </tr>
11736
11737
11738 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11739 <!-- end of entry -->
11740
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011741
11742
11743 <!-- end of kind -->
11744 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011745 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011746
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011747 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011748 <tr>
11749 <th class="th_name">Property Name</th>
11750 <th class="th_type">Type</th>
11751 <th class="th_description">Description</th>
11752 <th class="th_units">Units</th>
11753 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011754 <th class="th_tags">Tags</th>
11755 </tr>
11756 </thead>
11757
11758 <tbody>
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011770 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011771 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011772 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011773 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011774 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011775
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011776 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011777
11778
11779 </td> <!-- entry_type -->
11780
11781 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011782 <p>Duration each pixel is exposed to
11783light.<wbr/></p>
11784<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11785duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011786 </td>
11787
11788 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011789 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011790 </td>
11791
11792 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011793 <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 -080011794 </td>
11795
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011796 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011797 <ul class="entry_tags">
11798 <li><a href="#tag_V1">V1</a></li>
11799 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011800 </td>
11801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011802 </tr>
11803 <tr class="entries_header">
11804 <th class="th_details" colspan="5">Details</th>
11805 </tr>
11806 <tr class="entry_cont">
11807 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011808 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011809 </td>
11810 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011811
11812
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011813 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11814 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011815
11816
11817 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011818 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011819 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011820 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011821 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011822 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011823
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011824 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011825
11826
11827 </td> <!-- entry_type -->
11828
11829 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011830 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011831start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011832 </td>
11833
11834 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011835 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011836 </td>
11837
11838 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011839 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
11840android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
11841is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011842 </td>
11843
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011844 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011845 <ul class="entry_tags">
11846 <li><a href="#tag_V1">V1</a></li>
11847 <li><a href="#tag_BC">BC</a></li>
11848 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011849 </td>
11850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011851 </tr>
11852 <tr class="entries_header">
11853 <th class="th_details" colspan="5">Details</th>
11854 </tr>
11855 <tr class="entry_cont">
11856 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011857 <p>The maximum frame rate that can be supported by a camera subsystem is
11858a function of many factors:</p>
11859<ul>
11860<li>Requested resolutions of output image streams</li>
11861<li>Availability of binning /<wbr/> skipping modes on the imager</li>
11862<li>The bandwidth of the imager interface</li>
11863<li>The bandwidth of the various ISP processing blocks</li>
11864</ul>
11865<p>Since these factors can vary greatly between different ISPs and
11866sensors,<wbr/> the camera abstraction tries to represent the bandwidth
11867restrictions with as simple a model as possible.<wbr/></p>
11868<p>The model presented has the following characteristics:</p>
11869<ul>
11870<li>The image sensor is always configured to output the smallest
11871resolution possible given the application's requested output stream
11872sizes.<wbr/> The smallest resolution is defined as being at least as large
11873as the largest requested output stream size; the camera pipeline must
11874never digitally upsample sensor data when the crop region covers the
11875whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
11876resolutions are configured,<wbr/> the sensor can provide a higher frame
11877rate.<wbr/></li>
11878<li>Since any request may use any or all the currently configured
11879output streams,<wbr/> the sensor and ISP must be configured to support
11880scaling a single capture to all the streams at the same time.<wbr/> This
11881means the camera pipeline must be ready to produce the largest
11882requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
11883frame rate of a given configured stream set is governed only by the
11884largest requested stream resolution.<wbr/></li>
11885<li>Using more than one output stream in a request does not affect the
11886frame duration.<wbr/></li>
11887<li>JPEG streams act like processed YUV streams in requests for which
11888they are not included; in requests in which they are directly
11889referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
11890JPEG stream requires the underlying YUV data to always be ready for
11891use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
11892frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
11893<li>The JPEG processor can run concurrently to the rest of the camera
11894pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
11895</ul>
11896<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
11897is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
11898These are used to determine the maximum frame rate /<wbr/> minimum frame
11899duration that is possible for a given stream configuration.<wbr/></p>
11900<p>Specifically,<wbr/> the application can use the following rules to
11901determine the minimum frame duration it can request from the HAL
11902device:</p>
11903<ol>
11904<li>Given the application's currently configured set of output
11905streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
11906<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
11907<code>SP</code>.<wbr/></li>
11908<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
11909count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
11910<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
11911<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
11912no exact match for <code>RP == RJ</code> (in particular there isn't an available
11913processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
11914to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
11915there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
11916the processed resolution closest to <code>RJ</code>.<wbr/></li>
11917<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
11918no exact match for <code>RR == RP</code> (in particular there isn't an available
11919raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
11920or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
11921there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
11922the raw resolution closest to <code>RP</code>.<wbr/></li>
11923<li>Look up the matching minimum frame durations in the property lists
11924<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
11925<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11926<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
11927minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
11928<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
11929supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
11930<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
11931supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
11932<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
11933the application,<wbr/> then the HAL will have to delay JPEG-using requests
11934whenever the JPEG encoder is still busy processing an older capture.<wbr/>
11935This will happen whenever a JPEG-using request starts capture less
11936than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
11937supported frame duration will vary between the values calculated in
11938#6 and #7.<wbr/></li>
11939</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011940 </td>
11941 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011942
11943
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011944 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11945 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011946
11947
11948 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011949 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011950 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011951 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011952 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011953 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011954
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011955 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011956
11957
11958 </td> <!-- entry_type -->
11959
11960 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011961 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011962implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080011963below 'maximum analog sensitivity'.<wbr/></p>
11964<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
11965gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011966 </td>
11967
11968 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011969 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011970 </td>
11971
11972 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011973 <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 -080011974 </td>
11975
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011976 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011977 <ul class="entry_tags">
11978 <li><a href="#tag_V1">V1</a></li>
11979 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011980 </td>
11981
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011982 </tr>
11983 <tr class="entries_header">
11984 <th class="th_details" colspan="5">Details</th>
11985 </tr>
11986 <tr class="entry_cont">
11987 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011988 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011989 </td>
11990 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011991
11992
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011993 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11994 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011995
11996
11997 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011998 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011999 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012000 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012001 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012002 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012003
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012004 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012005
12006
12007 </td> <!-- entry_type -->
12008
12009 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012010 <p>Time at start of exposure of first
12011row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012012 </td>
12013
12014 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012015 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012016 </td>
12017
12018 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012019 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012020 </td>
12021
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012022 <td class="entry_tags">
12023 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012024 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012025 </ul>
12026 </td>
12027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012028 </tr>
12029 <tr class="entries_header">
12030 <th class="th_details" colspan="5">Details</th>
12031 </tr>
12032 <tr class="entry_cont">
12033 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012034 <p>Monotonic,<wbr/> should be synced to other timestamps in
12035system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012036 </td>
12037 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012038
12039
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012040 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12041 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012042
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012043
12044 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012045 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012046 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012047 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012048 <td class="entry_type">
12049 <span class="entry_type_name">float</span>
12050
12051 <span class="entry_type_visibility"> [public]</span>
12052
12053
12054 </td> <!-- entry_type -->
12055
12056 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012057 <p>The temperature of the sensor,<wbr/> sampled at the time
12058exposure began for this frame.<wbr/></p>
12059<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12060somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012061 </td>
12062
12063 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012064 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012065 </td>
12066
12067 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012068 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012069 </td>
12070
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012071 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012072 <ul class="entry_tags">
12073 <li><a href="#tag_FULL">FULL</a></li>
12074 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012075 </td>
12076
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012077 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012078
12079
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012080 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12081 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012082
Igor Murashkina46e02f2014-01-09 17:43:38 -080012083
12084 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12085 <td class="entry_name" rowspan="5">
12086 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12087 </td>
12088 <td class="entry_type">
12089 <span class="entry_type_name entry_type_name_enum">int32</span>
12090
12091 <span class="entry_type_visibility"> [public]</span>
12092
12093 <ul class="entry_type_enum">
12094 <li>
12095 <span class="entry_type_enum_name">OFF</span>
12096 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12097device returns captures from the image sensor.<wbr/></p></span>
12098 </li>
12099 <li>
12100 <span class="entry_type_enum_name">SOLID_COLOR</span>
12101 <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
12102respective color channel provided in
12103<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12104<p>For example:</p>
12105<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12106</code></pre>
12107<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12108<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12109</code></pre>
12110<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12111are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12112 </li>
12113 <li>
12114 <span class="entry_type_enum_name">COLOR_BARS</span>
12115 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12116<p>The vertical bars (left-to-right) are as follows:</p>
12117<ul>
12118<li>100% white</li>
12119<li>yellow</li>
12120<li>cyan</li>
12121<li>green</li>
12122<li>magenta</li>
12123<li>red</li>
12124<li>blue</li>
12125<li>black</li>
12126</ul>
12127<p>In general the image would look like the following:</p>
12128<pre><code>W Y C G M R B K
12129W Y C G M R B K
12130W Y C G M R B K
12131W Y C G M R B K
12132W Y C G M R B K
12133.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12134.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12135.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12136
12137(B = Blue,<wbr/> K = Black)
12138</code></pre>
12139<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12140When this is not possible,<wbr/> the bar size should be rounded
12141down to the nearest integer and the pattern can repeat
12142on the right side.<wbr/></p>
12143<p>Each bar's height must always take up the full sensor
12144pixel array height.<wbr/></p>
12145<p>Each pixel in this test pattern must be set to either
121460% intensity or 100% intensity.<wbr/></p></span>
12147 </li>
12148 <li>
12149 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12150 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12151each bar should start at its specified color at the top,<wbr/>
12152and fade to gray at the bottom.<wbr/></p>
12153<p>Furthermore each bar is further subdivided into a left and
12154right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12155and the right half should have a quantized gradient.<wbr/></p>
12156<p>In particular,<wbr/> the right half's should consist of blocks of the
12157same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12158<p>The least significant bits in the quantized gradient should
12159be copied from the most significant bits of the smooth gradient.<wbr/></p>
12160<p>The height of each bar should always be a multiple of 128.<wbr/>
12161When this is not the case,<wbr/> the pattern should repeat at the bottom
12162of the image.<wbr/></p></span>
12163 </li>
12164 <li>
12165 <span class="entry_type_enum_name">PN9</span>
12166 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12167generated from a PN9 512-bit sequence (typically implemented
12168in hardware with a linear feedback shift register).<wbr/></p>
12169<p>The generator should be reset at the beginning of each frame,<wbr/>
12170and thus each subsequent raw frame with this test pattern should
12171be exactly the same as the last.<wbr/></p></span>
12172 </li>
12173 <li>
12174 <span class="entry_type_enum_name">CUSTOM1</span>
12175 <span class="entry_type_enum_value">256</span>
12176 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12177available only on this camera device are at least this numeric
12178value.<wbr/></p>
12179<p>All of the custom test patterns will be static
12180(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12181 </li>
12182 </ul>
12183
12184 </td> <!-- entry_type -->
12185
12186 <td class="entry_description">
12187 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12188doing a real exposure from the camera.<wbr/></p>
12189 </td>
12190
12191 <td class="entry_units">
12192 </td>
12193
12194 <td class="entry_range">
12195 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12196<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12197 </td>
12198
12199 <td class="entry_tags">
12200 </td>
12201
12202 </tr>
12203 <tr class="entries_header">
12204 <th class="th_details" colspan="5">Details</th>
12205 </tr>
12206 <tr class="entry_cont">
12207 <td class="entry_details" colspan="5">
12208 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12209by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12210work as normal.<wbr/></p>
12211<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12212occur (and that the test pattern remain unmodified,<wbr/> since the flash
12213would not actually affect it).<wbr/></p>
12214 </td>
12215 </tr>
12216
12217 <tr class="entries_header">
12218 <th class="th_details" colspan="5">HAL Implementation Details</th>
12219 </tr>
12220 <tr class="entry_cont">
12221 <td class="entry_details" colspan="5">
12222 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12223<p>The HAL may choose to substitute test patterns from the sensor
12224with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12225indistinguishable to the ISP whether the data came from the
12226sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12227 </td>
12228 </tr>
12229
12230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12231 <!-- end of entry -->
12232
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012233
12234
12235 <!-- end of kind -->
12236 </tbody>
12237
12238 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012239 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012240
12241
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012242 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012243
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012244 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012245 <tr>
12246 <th class="th_name">Property Name</th>
12247 <th class="th_type">Type</th>
12248 <th class="th_description">Description</th>
12249 <th class="th_units">Units</th>
12250 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012251 <th class="th_tags">Tags</th>
12252 </tr>
12253 </thead>
12254
12255 <tbody>
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
12266 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012267 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012268 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012269 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012270 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012271 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012272
Zhijun He2f86a212014-01-15 10:34:02 -080012273 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012274
12275 <ul class="entry_type_enum">
12276 <li>
12277 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012278 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012279 </li>
12280 <li>
12281 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012282 <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 -080012283 </li>
12284 <li>
12285 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012286 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012287 </li>
12288 </ul>
12289
12290 </td> <!-- entry_type -->
12291
12292 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012293 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012294to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012295 </td>
12296
12297 <td class="entry_units">
12298 </td>
12299
12300 <td class="entry_range">
12301 </td>
12302
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012303 <td class="entry_tags">
12304 </td>
12305
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012306 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012307 <tr class="entries_header">
12308 <th class="th_details" colspan="5">Details</th>
12309 </tr>
12310 <tr class="entry_cont">
12311 <td class="entry_details" colspan="5">
12312 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12313camera device,<wbr/> and an identity lens shading map data will be provided
12314if <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
12315shading 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/>
12316the 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
12317shown below:</p>
12318<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/>
12319 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/>
12320 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/>
12321 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/>
12322 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/>
12323 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 ]
12324</code></pre>
12325<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12326camera device.<wbr/> Applications can request lens shading map data by setting
12327<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
12328lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12329by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12330 </td>
12331 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012332
12333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012334 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12335 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012336
12337
12338 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012339 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012340 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012341 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012342 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012343 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012344
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012345 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012346
12347
12348 </td> <!-- entry_type -->
12349
12350 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012351 <p>Control the amount of shading correction
12352applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012353 </td>
12354
12355 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012356 unitless: 1-10; 10 is full shading
12357 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012358 </td>
12359
12360 <td class="entry_range">
12361 </td>
12362
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012363 <td class="entry_tags">
12364 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012365 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012366 </ul>
12367 </td>
12368
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012369 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012370
12371
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012372 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12373 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012374
12375
12376
12377 <!-- end of kind -->
12378 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012379 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012380
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012381 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012382 <tr>
12383 <th class="th_name">Property Name</th>
12384 <th class="th_type">Type</th>
12385 <th class="th_description">Description</th>
12386 <th class="th_units">Units</th>
12387 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012388 <th class="th_tags">Tags</th>
12389 </tr>
12390 </thead>
12391
12392 <tbody>
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012404 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012405 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012406 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012407 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012408 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012409
Zhijun He2f86a212014-01-15 10:34:02 -080012410 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012411
12412 <ul class="entry_type_enum">
12413 <li>
12414 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012415 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012416 </li>
12417 <li>
12418 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012419 <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 -080012420 </li>
12421 <li>
12422 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012423 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012424 </li>
12425 </ul>
12426
12427 </td> <!-- entry_type -->
12428
12429 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012430 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012431to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012432 </td>
12433
12434 <td class="entry_units">
12435 </td>
12436
12437 <td class="entry_range">
12438 </td>
12439
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012440 <td class="entry_tags">
12441 </td>
12442
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012443 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012444 <tr class="entries_header">
12445 <th class="th_details" colspan="5">Details</th>
12446 </tr>
12447 <tr class="entry_cont">
12448 <td class="entry_details" colspan="5">
12449 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12450camera device,<wbr/> and an identity lens shading map data will be provided
12451if <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
12452shading 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/>
12453the 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
12454shown below:</p>
12455<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/>
12456 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/>
12457 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/>
12458 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/>
12459 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/>
12460 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 ]
12461</code></pre>
12462<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12463camera device.<wbr/> Applications can request lens shading map data by setting
12464<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
12465lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12466by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12467 </td>
12468 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012469
12470
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012471 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12472 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012473
12474
12475
12476 <!-- end of kind -->
12477 </tbody>
12478
12479 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012480 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012481
12482
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012483 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012484
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012485 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012486 <tr>
12487 <th class="th_name">Property Name</th>
12488 <th class="th_type">Type</th>
12489 <th class="th_description">Description</th>
12490 <th class="th_units">Units</th>
12491 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012492 <th class="th_tags">Tags</th>
12493 </tr>
12494 </thead>
12495
12496 <tbody>
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012508 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012509 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012510 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012511 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012512 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012513
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012514 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012515
12516 <ul class="entry_type_enum">
12517 <li>
12518 <span class="entry_type_enum_name">OFF</span>
12519 </li>
12520 <li>
12521 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012522 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12523only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012524 </li>
12525 <li>
12526 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012527 <span class="entry_type_enum_notes"><p>Optional Return all face
12528metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012529 </li>
12530 </ul>
12531
12532 </td> <!-- entry_type -->
12533
12534 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012535 <p>State of the face detector
12536unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012537 </td>
12538
12539 <td class="entry_units">
12540 </td>
12541
12542 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012543 <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 -080012544 </td>
12545
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012546 <td class="entry_tags">
12547 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012548 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012549 </ul>
12550 </td>
12551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012552 </tr>
12553 <tr class="entries_header">
12554 <th class="th_details" colspan="5">Details</th>
12555 </tr>
12556 <tr class="entry_cont">
12557 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012558 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012559should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012560fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012561<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 -080012562 </td>
12563 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012564
12565
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012566 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12567 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012568
12569
12570 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012571 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012572 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012573 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012574 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012575 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012576
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012577 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012578
12579 <ul class="entry_type_enum">
12580 <li>
12581 <span class="entry_type_enum_name">OFF</span>
12582 </li>
12583 <li>
12584 <span class="entry_type_enum_name">ON</span>
12585 </li>
12586 </ul>
12587
12588 </td> <!-- entry_type -->
12589
12590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012591 <p>Operating mode for histogram
12592generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012593 </td>
12594
12595 <td class="entry_units">
12596 </td>
12597
12598 <td class="entry_range">
12599 </td>
12600
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012601 <td class="entry_tags">
12602 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012603 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012604 </ul>
12605 </td>
12606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012607 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012608
12609
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012610 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12611 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012612
12613
12614 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012615 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012616 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012617 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012618 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012619 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012620
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012621 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012622
12623 <ul class="entry_type_enum">
12624 <li>
12625 <span class="entry_type_enum_name">OFF</span>
12626 </li>
12627 <li>
12628 <span class="entry_type_enum_name">ON</span>
12629 </li>
12630 </ul>
12631
12632 </td> <!-- entry_type -->
12633
12634 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012635 <p>Operating mode for sharpness map
12636generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012637 </td>
12638
12639 <td class="entry_units">
12640 </td>
12641
12642 <td class="entry_range">
12643 </td>
12644
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012645 <td class="entry_tags">
12646 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012647 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012648 </ul>
12649 </td>
12650
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012651 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012652
12653
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012654 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12655 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012656
Zhijun He69fc0ea2013-07-17 09:42:58 -070012657
12658 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012659 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012660 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012661 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012662 <td class="entry_type">
12663 <span class="entry_type_name entry_type_name_enum">byte</span>
12664
12665 <span class="entry_type_visibility"> [public]</span>
12666
12667 <ul class="entry_type_enum">
12668 <li>
12669 <span class="entry_type_enum_name">OFF</span>
12670 </li>
12671 <li>
12672 <span class="entry_type_enum_name">ON</span>
12673 </li>
12674 </ul>
12675
12676 </td> <!-- entry_type -->
12677
12678 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012679 <p>Whether the HAL needs to output the lens
12680shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012681 </td>
12682
12683 <td class="entry_units">
12684 </td>
12685
12686 <td class="entry_range">
12687 </td>
12688
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012689 <td class="entry_tags">
12690 </td>
12691
12692 </tr>
12693 <tr class="entries_header">
12694 <th class="th_details" colspan="5">Details</th>
12695 </tr>
12696 <tr class="entry_cont">
12697 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012698 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012699<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 -080012700the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012701 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012702 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012703
12704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012705 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12706 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012707
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012708
12709
12710 <!-- end of kind -->
12711 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012712 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012713
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012714 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012715 <tr>
12716 <th class="th_name">Property Name</th>
12717 <th class="th_type">Type</th>
12718 <th class="th_description">Description</th>
12719 <th class="th_units">Units</th>
12720 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012721 <th class="th_tags">Tags</th>
12722 </tr>
12723 </thead>
12724
12725 <tbody>
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012739 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012740 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012741 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012742 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012743 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012744 <span class="entry_type_container">x</span>
12745
12746 <span class="entry_type_array">
12747 n
12748 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012749 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012750 <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 -080012751
12752
12753 </td> <!-- entry_type -->
12754
12755 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012756 <p>Which face detection modes are available,<wbr/>
12757if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012758 </td>
12759
12760 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012761 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012762 OFF
12763 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012764 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012765 </td>
12766
12767 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012768 </td>
12769
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012770 <td class="entry_tags">
12771 </td>
12772
12773 </tr>
12774 <tr class="entries_header">
12775 <th class="th_details" colspan="5">Details</th>
12776 </tr>
12777 <tr class="entry_cont">
12778 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012779 <p>OFF means face detection is disabled,<wbr/> it must
12780be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012781<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012782<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12783<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012784<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012785<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12786<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012787 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012788 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012789
12790
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012791 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12792 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012793
12794
12795 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012796 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012797 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012798 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012799 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012800 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012801
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012802 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012803
12804
12805 </td> <!-- entry_type -->
12806
12807 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012808 <p>Number of histogram buckets
12809supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012810 </td>
12811
12812 <td class="entry_units">
12813 </td>
12814
12815 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012816 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012817 </td>
12818
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012819 <td class="entry_tags">
12820 </td>
12821
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012822 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012823
12824
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012825 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12826 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012827
12828
12829 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012830 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012831 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012832 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012833 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012834 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012835
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012836 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012837
12838
12839 </td> <!-- entry_type -->
12840
12841 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012842 <p>Maximum number of simultaneously detectable
12843faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012844 </td>
12845
12846 <td class="entry_units">
12847 </td>
12848
12849 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012850 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012851modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012852 </td>
12853
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012854 <td class="entry_tags">
12855 </td>
12856
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012857 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012858
12859
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012860 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12861 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012862
12863
12864 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012865 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012866 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012867 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012868 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012869 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012870
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012871 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012872
12873
12874 </td> <!-- entry_type -->
12875
12876 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012877 <p>Maximum value possible for a histogram
12878bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012879 </td>
12880
12881 <td class="entry_units">
12882 </td>
12883
12884 <td class="entry_range">
12885 </td>
12886
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012887 <td class="entry_tags">
12888 </td>
12889
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012890 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012891
12892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012893 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12894 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012895
12896
12897 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012898 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012899 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012900 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012901 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012902 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012903
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012904 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012905
12906
12907 </td> <!-- entry_type -->
12908
12909 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012910 <p>Maximum value possible for a sharpness map
12911region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012912 </td>
12913
12914 <td class="entry_units">
12915 </td>
12916
12917 <td class="entry_range">
12918 </td>
12919
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012920 <td class="entry_tags">
12921 </td>
12922
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012923 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012924
12925
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012926 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12927 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012928
12929
12930 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012931 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012932 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012933 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012934 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012935 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012936 <span class="entry_type_container">x</span>
12937
12938 <span class="entry_type_array">
12939 2
12940 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012941 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012942 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012943
12944
12945 </td> <!-- entry_type -->
12946
12947 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012948 <p>Dimensions of the sharpness
12949map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012950 </td>
12951
12952 <td class="entry_units">
12953 </td>
12954
12955 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012956 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012957 </td>
12958
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012959 <td class="entry_tags">
12960 </td>
12961
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012962 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012963
12964
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012965 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12966 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012967
12968
12969
12970
12971
12972
12973 <!-- end of kind -->
12974 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012975 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012976
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012977 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012978 <tr>
12979 <th class="th_name">Property Name</th>
12980 <th class="th_type">Type</th>
12981 <th class="th_description">Description</th>
12982 <th class="th_units">Units</th>
12983 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012984 <th class="th_tags">Tags</th>
12985 </tr>
12986 </thead>
12987
12988 <tbody>
12989
12990
12991
12992
12993
12994
12995
12996
12997
12998
12999 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013000 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013001 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013002 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013003 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013004 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013005
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013006 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013007
13008 <ul class="entry_type_enum">
13009 <li>
13010 <span class="entry_type_enum_name">OFF</span>
13011 </li>
13012 <li>
13013 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013014 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13015only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013016 </li>
13017 <li>
13018 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013019 <span class="entry_type_enum_notes"><p>Optional Return all face
13020metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013021 </li>
13022 </ul>
13023
13024 </td> <!-- entry_type -->
13025
13026 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013027 <p>State of the face detector
13028unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013029 </td>
13030
13031 <td class="entry_units">
13032 </td>
13033
13034 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013035 <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 -080013036 </td>
13037
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013038 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013039 <ul class="entry_tags">
13040 <li><a href="#tag_BC">BC</a></li>
13041 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013042 </td>
13043
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013044 </tr>
13045 <tr class="entries_header">
13046 <th class="th_details" colspan="5">Details</th>
13047 </tr>
13048 <tr class="entry_cont">
13049 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013050 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013051should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013052fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013053<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 -080013054 </td>
13055 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013056
13057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013058 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13059 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013060
13061
13062 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013063 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013064 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013065 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013066 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013067 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013068 <span class="entry_type_container">x</span>
13069
13070 <span class="entry_type_array">
13071 n
13072 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013073 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013074
13075
13076 </td> <!-- entry_type -->
13077
13078 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013079 <p>List of unique IDs for detected
13080faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013081 </td>
13082
13083 <td class="entry_units">
13084 </td>
13085
13086 <td class="entry_range">
13087 </td>
13088
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013089 <td class="entry_tags">
13090 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013091 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013092 </ul>
13093 </td>
13094
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013095 </tr>
13096 <tr class="entries_header">
13097 <th class="th_details" colspan="5">Details</th>
13098 </tr>
13099 <tr class="entry_cont">
13100 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013101 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013102 </td>
13103 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013104
13105
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013106 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13107 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013108
13109
13110 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013111 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013112 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013113 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013114 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013115 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013116 <span class="entry_type_container">x</span>
13117
13118 <span class="entry_type_array">
13119 n x 6
13120 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013121 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013122 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013123
13124
13125 </td> <!-- entry_type -->
13126
13127 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013128 <p>List of landmarks for detected
13129faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013130 </td>
13131
13132 <td class="entry_units">
13133 </td>
13134
13135 <td class="entry_range">
13136 </td>
13137
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013138 <td class="entry_tags">
13139 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013140 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013141 </ul>
13142 </td>
13143
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013144 </tr>
13145 <tr class="entries_header">
13146 <th class="th_details" colspan="5">Details</th>
13147 </tr>
13148 <tr class="entry_cont">
13149 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013150 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013151 </td>
13152 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013153
13154
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013155 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13156 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013157
13158
13159 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013160 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013161 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013162 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013163 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013164 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013165 <span class="entry_type_container">x</span>
13166
13167 <span class="entry_type_array">
13168 n x 4
13169 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013170 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013171 <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 -080013172
13173
13174 </td> <!-- entry_type -->
13175
13176 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013177 <p>List of the bounding rectangles for detected
13178faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013179 </td>
13180
13181 <td class="entry_units">
13182 </td>
13183
13184 <td class="entry_range">
13185 </td>
13186
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013187 <td class="entry_tags">
13188 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013189 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013190 </ul>
13191 </td>
13192
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013193 </tr>
13194 <tr class="entries_header">
13195 <th class="th_details" colspan="5">Details</th>
13196 </tr>
13197 <tr class="entry_cont">
13198 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013199 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013200 </td>
13201 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013202
13203
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013204 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13205 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013206
13207
13208 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013209 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013210 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013211 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013212 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013213 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013214 <span class="entry_type_container">x</span>
13215
13216 <span class="entry_type_array">
13217 n
13218 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013219 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013220
13221
13222 </td> <!-- entry_type -->
13223
13224 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013225 <p>List of the face confidence scores for
13226detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013227 </td>
13228
13229 <td class="entry_units">
13230 </td>
13231
13232 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013233 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013234 </td>
13235
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013236 <td class="entry_tags">
13237 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013238 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013239 </ul>
13240 </td>
13241
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013242 </tr>
13243 <tr class="entries_header">
13244 <th class="th_details" colspan="5">Details</th>
13245 </tr>
13246 <tr class="entry_cont">
13247 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013248 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13249meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013250 </td>
13251 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013252
13253
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013254 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13255 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013256
13257
13258 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013259 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013260 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013261 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013262 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013263 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013264 <span class="entry_type_container">x</span>
13265
13266 <span class="entry_type_array">
13267 n x 3
13268 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013269 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013270 <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 -080013271
13272
13273 </td> <!-- entry_type -->
13274
13275 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013276 <p>A 3-channel histogram based on the raw
13277sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013278 </td>
13279
13280 <td class="entry_units">
13281 </td>
13282
13283 <td class="entry_range">
13284 </td>
13285
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013286 <td class="entry_tags">
13287 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013288 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013289 </ul>
13290 </td>
13291
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013292 </tr>
13293 <tr class="entries_header">
13294 <th class="th_details" colspan="5">Details</th>
13295 </tr>
13296 <tr class="entry_cont">
13297 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013298 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013299(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 -080013300(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13301supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013302 </td>
13303 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013304
13305
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013306 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13307 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013308
13309
13310 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013311 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013312 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013313 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013314 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013315 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013316
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013317 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013318
13319 <ul class="entry_type_enum">
13320 <li>
13321 <span class="entry_type_enum_name">OFF</span>
13322 </li>
13323 <li>
13324 <span class="entry_type_enum_name">ON</span>
13325 </li>
13326 </ul>
13327
13328 </td> <!-- entry_type -->
13329
13330 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013331 <p>Operating mode for histogram
13332generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013333 </td>
13334
13335 <td class="entry_units">
13336 </td>
13337
13338 <td class="entry_range">
13339 </td>
13340
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013341 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013342 <ul class="entry_tags">
13343 <li><a href="#tag_V1">V1</a></li>
13344 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013345 </td>
13346
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013347 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013348
13349
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013350 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13351 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013352
13353
13354 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013355 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013356 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013357 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013358 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013359 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013360 <span class="entry_type_container">x</span>
13361
13362 <span class="entry_type_array">
13363 n x m x 3
13364 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013365 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013366 <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 -080013367
13368
13369 </td> <!-- entry_type -->
13370
13371 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013372 <p>A 3-channel sharpness map,<wbr/> based on the raw
13373sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013374 </td>
13375
13376 <td class="entry_units">
13377 </td>
13378
13379 <td class="entry_range">
13380 </td>
13381
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013382 <td class="entry_tags">
13383 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013384 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013385 </ul>
13386 </td>
13387
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013388 </tr>
13389 <tr class="entries_header">
13390 <th class="th_details" colspan="5">Details</th>
13391 </tr>
13392 <tr class="entry_cont">
13393 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013394 <p>If only a monochrome sharpness map is supported,<wbr/>
13395all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013396 </td>
13397 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013398
13399
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013400 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13401 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013402
13403
13404 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013405 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013406 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013407 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013408 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013409 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013410
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013411 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013412
13413 <ul class="entry_type_enum">
13414 <li>
13415 <span class="entry_type_enum_name">OFF</span>
13416 </li>
13417 <li>
13418 <span class="entry_type_enum_name">ON</span>
13419 </li>
13420 </ul>
13421
13422 </td> <!-- entry_type -->
13423
13424 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013425 <p>Operating mode for sharpness map
13426generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013427 </td>
13428
13429 <td class="entry_units">
13430 </td>
13431
13432 <td class="entry_range">
13433 </td>
13434
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013435 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013436 <ul class="entry_tags">
13437 <li><a href="#tag_V1">V1</a></li>
13438 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013439 </td>
13440
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013441 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013442
13443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013444 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13445 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013446
Zhijun He69fc0ea2013-07-17 09:42:58 -070013447
13448 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013449 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013450 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013451 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013452 <td class="entry_type">
13453 <span class="entry_type_name">float</span>
13454 <span class="entry_type_container">x</span>
13455
13456 <span class="entry_type_array">
13457 4 x n x m
13458 </span>
13459 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013460 <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 -070013461
13462
13463 </td> <!-- entry_type -->
13464
13465 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013466 <p>The shading map is a low-resolution floating-point map
13467that lists the coefficients used to correct for vignetting,<wbr/> for each
13468Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013469 </td>
13470
13471 <td class="entry_units">
13472 </td>
13473
13474 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013475 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013476 </td>
13477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013478 <td class="entry_tags">
13479 </td>
13480
13481 </tr>
13482 <tr class="entries_header">
13483 <th class="th_details" colspan="5">Details</th>
13484 </tr>
13485 <tr class="entry_cont">
13486 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013487 <p>The least shaded section of the image should have a gain factor
13488of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013489<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 -080013490must take into account the colorCorrection settings.<wbr/></p>
13491<p>The shading map is for the entire active pixel array,<wbr/> and is not
13492affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013493entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013494pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13495map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13496(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13497pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13498The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13499<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13500channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13501The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013502is 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 -080013503<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13504and must be smaller than 64x64.<wbr/></p>
13505<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013506<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13507<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013508[ 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/>
13509 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/>
13510 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/>
13511 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/>
13512 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/>
13513 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 -080013514</code></pre>
13515<p>The low-resolution scaling map images for each channel are
13516(displayed using nearest-neighbor interpolation):</p>
13517<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13518<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13519<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13520<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013521<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013522image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013523<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 -070013524 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013525 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013526
13527
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013528 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13529 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013530
13531
13532 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013533 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013534 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013535 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013536 <td class="entry_type">
13537 <span class="entry_type_name">float</span>
13538 <span class="entry_type_container">x</span>
13539
13540 <span class="entry_type_array">
13541 4
13542 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013543 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013544 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013545
13546
13547 </td> <!-- entry_type -->
13548
13549 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013550 <p>The best-fit color channel gains calculated
13551by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013552 </td>
13553
13554 <td class="entry_units">
13555 </td>
13556
13557 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013558 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013559 </td>
13560
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013561 <td class="entry_tags">
13562 </td>
13563
13564 </tr>
13565 <tr class="entries_header">
13566 <th class="th_details" colspan="5">Details</th>
13567 </tr>
13568 <tr class="entry_cont">
13569 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013570 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013571since statistics processing on data from a new frame
13572typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013573applied to that frame.<wbr/></p>
13574<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013575see <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 -080013576<p>This value should always be calculated by the AWB block,<wbr/>
13577regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013578 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013579 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013580
13581
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013582 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13583 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013584
13585
13586 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013587 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013588 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013589 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013590 <td class="entry_type">
13591 <span class="entry_type_name">rational</span>
13592 <span class="entry_type_container">x</span>
13593
13594 <span class="entry_type_array">
13595 3 x 3
13596 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013597 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013598 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013599
13600
13601 </td> <!-- entry_type -->
13602
13603 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013604 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013605calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013606output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013607 </td>
13608
13609 <td class="entry_units">
13610 </td>
13611
13612 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013613 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013614 </td>
13615
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013616 <td class="entry_tags">
13617 </td>
13618
13619 </tr>
13620 <tr class="entries_header">
13621 <th class="th_details" colspan="5">Details</th>
13622 </tr>
13623 <tr class="entry_cont">
13624 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013625 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013626statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013627for the next frame.<wbr/> These are the values the HAL believes
13628are the best fit for the current output frame.<wbr/> This may
13629be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013630statistics processing on data from a new frame typically
13631completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013632that frame.<wbr/></p>
13633<p>These estimates must be provided for all frames,<wbr/> even if
13634capture settings and color transforms are set by the application.<wbr/></p>
13635<p>This value should always be calculated by the AWB block,<wbr/>
13636regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013637 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013638 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013639
13640
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013641 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13642 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013643
13644
13645 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013646 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013647 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013648 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013649 <td class="entry_type">
13650 <span class="entry_type_name entry_type_name_enum">byte</span>
13651
13652 <span class="entry_type_visibility"> [public]</span>
13653
13654 <ul class="entry_type_enum">
13655 <li>
13656 <span class="entry_type_enum_name">NONE</span>
13657 </li>
13658 <li>
13659 <span class="entry_type_enum_name">50HZ</span>
13660 </li>
13661 <li>
13662 <span class="entry_type_enum_name">60HZ</span>
13663 </li>
13664 </ul>
13665
13666 </td> <!-- entry_type -->
13667
13668 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013669 <p>The HAL estimated scene illumination lighting
13670frequency</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013671 </td>
13672
13673 <td class="entry_units">
13674 </td>
13675
13676 <td class="entry_range">
13677 </td>
13678
Zhijun He69fc0ea2013-07-17 09:42:58 -070013679 <td class="entry_tags">
13680 </td>
13681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013682 </tr>
13683 <tr class="entries_header">
13684 <th class="th_details" colspan="5">Details</th>
13685 </tr>
13686 <tr class="entry_cont">
13687 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013688 <p>Report NONE if there doesn't appear to be flickering
13689illumination</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013690 </td>
13691 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013692
13693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13695 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013696
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013697
13698
13699 <!-- end of kind -->
13700 </tbody>
13701
13702 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013703 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013704
13705
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013706 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013707
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013708 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013709 <tr>
13710 <th class="th_name">Property Name</th>
13711 <th class="th_type">Type</th>
13712 <th class="th_description">Description</th>
13713 <th class="th_units">Units</th>
13714 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013715 <th class="th_tags">Tags</th>
13716 </tr>
13717 </thead>
13718
13719 <tbody>
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013731 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013732 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013733 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013734 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013735 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013736 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013737
Zhijun He704d1282013-08-19 15:26:33 -070013738 <span class="entry_type_array">
13739 n x 2
13740 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013741 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013742 <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 -080013743
13744
13745 </td> <!-- entry_type -->
13746
13747 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013748 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13749channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13750CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013751 </td>
13752
13753 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013754 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013755 </td>
13756
13757 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013758 <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 -080013759 </td>
13760
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013761 <td class="entry_tags">
13762 </td>
13763
13764 </tr>
13765 <tr class="entries_header">
13766 <th class="th_details" colspan="5">Details</th>
13767 </tr>
13768 <tr class="entry_cont">
13769 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013770 <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 -080013771 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013772 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013773
13774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013775 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13776 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013777
13778
13779 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013780 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013781 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013782 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013783 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013784 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013785 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013786
Zhijun He704d1282013-08-19 15:26:33 -070013787 <span class="entry_type_array">
13788 n x 2
13789 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013790 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013791 <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 -080013792
13793
13794 </td> <!-- entry_type -->
13795
13796 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013797 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
13798channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13799CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013800 </td>
13801
13802 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013803 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013804 </td>
13805
13806 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013807 <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 -080013808 </td>
13809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013810 <td class="entry_tags">
13811 </td>
13812
13813 </tr>
13814 <tr class="entries_header">
13815 <th class="th_details" colspan="5">Details</th>
13816 </tr>
13817 <tr class="entry_cont">
13818 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013819 <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 -080013820 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013821 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013822
13823
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013824 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13825 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013826
13827
13828 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013829 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013830 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013831 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013832 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013833 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013834 <span class="entry_type_container">x</span>
13835
13836 <span class="entry_type_array">
13837 n x 2
13838 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013839 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013840 <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 -080013841
13842
13843 </td> <!-- entry_type -->
13844
13845 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013846 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
13847channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13848CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013849 </td>
13850
13851 <td class="entry_units">
13852 </td>
13853
13854 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013855 <p>0-1 on both input and output coordinates,<wbr/> normalized
13856as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013857 </td>
13858
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013859 <td class="entry_tags">
13860 <ul class="entry_tags">
13861 <li><a href="#tag_DNG">DNG</a></li>
13862 </ul>
13863 </td>
13864
13865 </tr>
13866 <tr class="entries_header">
13867 <th class="th_details" colspan="5">Details</th>
13868 </tr>
13869 <tr class="entry_cont">
13870 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013871 <p>Each channel's curve is defined by an array of control points:</p>
13872<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
13873 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
138742 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
13875<p>These are sorted in order of increasing <code>Pin</code>; it is always
13876guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
13877define a complete mapping.<wbr/> For input values between control points,<wbr/>
13878the camera device must linearly interpolate between the control
13879points.<wbr/></p>
13880<p>Each curve can have an independent number of points,<wbr/> and the number
13881of points can be less than max (that is,<wbr/> the request doesn't have to
13882always provide a curve with number of points equivalent to
13883<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
13884<p>A few examples,<wbr/> and their corresponding graphical mappings; these
13885only specify the red channel and the precision is limited to 4
13886digits,<wbr/> for conciseness.<wbr/></p>
13887<p>Linear mapping:</p>
13888<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 ]
13889</code></pre>
13890<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
13891<p>Invert mapping:</p>
13892<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 ]
13893</code></pre>
13894<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
13895<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
13896<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13897 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/>
13898 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/>
13899 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/>
13900 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 ]
13901</code></pre>
13902<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
13903<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
13904<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13905 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/>
13906 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/>
13907 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/>
13908 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 ]
13909</code></pre>
13910<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013911 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013912 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013913
Igor Murashkin94e06c42014-01-13 16:51:17 -080013914 <tr class="entries_header">
13915 <th class="th_details" colspan="5">HAL Implementation Details</th>
13916 </tr>
13917 <tr class="entry_cont">
13918 <td class="entry_details" colspan="5">
13919 <p>For good quality of mapping,<wbr/> at least 128 control points are
13920preferred.<wbr/></p>
13921<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
13922control points used as are available.<wbr/></p>
13923 </td>
13924 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013925
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013926 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13927 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013928
13929
13930 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013931 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013932 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013933 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013934 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013935 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013936
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013937 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013938
13939 <ul class="entry_type_enum">
13940 <li>
13941 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013942 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080013943android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
13944<p>All color enhancement and tonemapping must be disabled,<wbr/> except
13945for applying the tonemapping curve specified by
13946<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
13947<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
13948<p>Must not slow down frame rate relative to raw
13949sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013950 </li>
13951 <li>
13952 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080013953 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
13954<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013955 </li>
13956 <li>
13957 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080013958 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
13959<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013960 </li>
13961 </ul>
13962
13963 </td> <!-- entry_type -->
13964
13965 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013966 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013967 </td>
13968
13969 <td class="entry_units">
13970 </td>
13971
13972 <td class="entry_range">
13973 </td>
13974
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013975 <td class="entry_tags">
13976 </td>
13977
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013978 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080013979 <tr class="entries_header">
13980 <th class="th_details" colspan="5">Details</th>
13981 </tr>
13982 <tr class="entry_cont">
13983 <td class="entry_details" colspan="5">
13984 <p>When switching to an application-defined contrast curve by setting
13985<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
13986per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
13987mapping from input high-bit-depth pixel value to the output
13988low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
13989and output may change depending on the camera pipeline,<wbr/> the values
13990are specified by normalized floating-point numbers.<wbr/></p>
13991<p>More-complex color mapping operations such as 3D color look-up
13992tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
13993transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13994CONTRAST_<wbr/>CURVE.<wbr/></p>
13995<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
13996emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
13997<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/>
13998These values are always available,<wbr/> and as close as possible to the
13999actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14000<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14001provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14002roughly the same.<wbr/></p>
14003 </td>
14004 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014005
14006
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014007 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14008 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014009
14010
14011
14012 <!-- end of kind -->
14013 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014014 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014015
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014016 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014017 <tr>
14018 <th class="th_name">Property Name</th>
14019 <th class="th_type">Type</th>
14020 <th class="th_description">Description</th>
14021 <th class="th_units">Units</th>
14022 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014023 <th class="th_tags">Tags</th>
14024 </tr>
14025 </thead>
14026
14027 <tbody>
14028
14029
14030
14031
14032
14033
14034
14035
14036
14037
14038 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014039 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014040 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014041 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014042 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014043 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014044
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014045 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014046
14047
14048 </td> <!-- entry_type -->
14049
14050 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014051 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014052tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14053<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 -080014054 </td>
14055
14056 <td class="entry_units">
14057 </td>
14058
14059 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014060 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014061 </td>
14062
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014063 <td class="entry_tags">
14064 </td>
14065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014066 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014067 <tr class="entries_header">
14068 <th class="th_details" colspan="5">Details</th>
14069 </tr>
14070 <tr class="entry_cont">
14071 <td class="entry_details" colspan="5">
14072 <p>If the actual number of points provided by the application (in
14073android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14074resample the curve to its internal representation,<wbr/> using linear
14075interpolation.<wbr/></p>
14076<p>The output curves in the result metadata may have a different number
14077of points than the input curves,<wbr/> and will represent the actual
14078hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14079 </td>
14080 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014081
Igor Murashkin94e06c42014-01-13 16:51:17 -080014082 <tr class="entries_header">
14083 <th class="th_details" colspan="5">HAL Implementation Details</th>
14084 </tr>
14085 <tr class="entry_cont">
14086 <td class="entry_details" colspan="5">
14087 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14088 </td>
14089 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014091 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14092 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014093
14094
14095
14096 <!-- end of kind -->
14097 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014098 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014099
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014100 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014101 <tr>
14102 <th class="th_name">Property Name</th>
14103 <th class="th_type">Type</th>
14104 <th class="th_description">Description</th>
14105 <th class="th_units">Units</th>
14106 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014107 <th class="th_tags">Tags</th>
14108 </tr>
14109 </thead>
14110
14111 <tbody>
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121
14122 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014123 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014124 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014125 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014126 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014127 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014128 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014129
Zhijun He704d1282013-08-19 15:26:33 -070014130 <span class="entry_type_array">
14131 n x 2
14132 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014133 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014134 <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 -080014135
14136
14137 </td> <!-- entry_type -->
14138
14139 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014140 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14141channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14142CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014143 </td>
14144
14145 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014146 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014147 </td>
14148
14149 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014150 <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 -080014151 </td>
14152
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014153 <td class="entry_tags">
14154 </td>
14155
14156 </tr>
14157 <tr class="entries_header">
14158 <th class="th_details" colspan="5">Details</th>
14159 </tr>
14160 <tr class="entry_cont">
14161 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014162 <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 -080014163 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014164 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014165
14166
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014167 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14168 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014169
14170
14171 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014172 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014173 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014174 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014175 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014176 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014177 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014178
Zhijun He704d1282013-08-19 15:26:33 -070014179 <span class="entry_type_array">
14180 n x 2
14181 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014182 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014183 <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 -080014184
14185
14186 </td> <!-- entry_type -->
14187
14188 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014189 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14190channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14191CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014192 </td>
14193
14194 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014195 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014196 </td>
14197
14198 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014199 <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 -080014200 </td>
14201
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014202 <td class="entry_tags">
14203 </td>
14204
14205 </tr>
14206 <tr class="entries_header">
14207 <th class="th_details" colspan="5">Details</th>
14208 </tr>
14209 <tr class="entry_cont">
14210 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014211 <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 -080014212 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014214
14215
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014216 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14217 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014218
14219
14220 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014221 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014222 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014223 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014224 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014225 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014226 <span class="entry_type_container">x</span>
14227
14228 <span class="entry_type_array">
14229 n x 2
14230 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014231 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014232 <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 -080014233
14234
14235 </td> <!-- entry_type -->
14236
14237 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014238 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14239channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14240CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014241 </td>
14242
14243 <td class="entry_units">
14244 </td>
14245
14246 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014247 <p>0-1 on both input and output coordinates,<wbr/> normalized
14248as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014249 </td>
14250
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014251 <td class="entry_tags">
14252 <ul class="entry_tags">
14253 <li><a href="#tag_DNG">DNG</a></li>
14254 </ul>
14255 </td>
14256
14257 </tr>
14258 <tr class="entries_header">
14259 <th class="th_details" colspan="5">Details</th>
14260 </tr>
14261 <tr class="entry_cont">
14262 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014263 <p>Each channel's curve is defined by an array of control points:</p>
14264<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14265 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
142662 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14267<p>These are sorted in order of increasing <code>Pin</code>; it is always
14268guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14269define a complete mapping.<wbr/> For input values between control points,<wbr/>
14270the camera device must linearly interpolate between the control
14271points.<wbr/></p>
14272<p>Each curve can have an independent number of points,<wbr/> and the number
14273of points can be less than max (that is,<wbr/> the request doesn't have to
14274always provide a curve with number of points equivalent to
14275<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14276<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14277only specify the red channel and the precision is limited to 4
14278digits,<wbr/> for conciseness.<wbr/></p>
14279<p>Linear mapping:</p>
14280<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 ]
14281</code></pre>
14282<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14283<p>Invert mapping:</p>
14284<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 ]
14285</code></pre>
14286<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14287<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14288<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14289 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/>
14290 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/>
14291 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/>
14292 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 ]
14293</code></pre>
14294<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14295<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14296<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14297 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/>
14298 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/>
14299 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/>
14300 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 ]
14301</code></pre>
14302<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014303 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014304 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014305
Igor Murashkin94e06c42014-01-13 16:51:17 -080014306 <tr class="entries_header">
14307 <th class="th_details" colspan="5">HAL Implementation Details</th>
14308 </tr>
14309 <tr class="entry_cont">
14310 <td class="entry_details" colspan="5">
14311 <p>For good quality of mapping,<wbr/> at least 128 control points are
14312preferred.<wbr/></p>
14313<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14314control points used as are available.<wbr/></p>
14315 </td>
14316 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014317
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014318 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14319 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014320
14321
14322 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014323 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014324 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014325 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014326 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014327 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014328
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014329 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014330
14331 <ul class="entry_type_enum">
14332 <li>
14333 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014334 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014335android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14336<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14337for applying the tonemapping curve specified by
14338<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
14339<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14340<p>Must not slow down frame rate relative to raw
14341sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014342 </li>
14343 <li>
14344 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014345 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14346<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014347 </li>
14348 <li>
14349 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014350 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14351<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014352 </li>
14353 </ul>
14354
14355 </td> <!-- entry_type -->
14356
14357 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014358 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014359 </td>
14360
14361 <td class="entry_units">
14362 </td>
14363
14364 <td class="entry_range">
14365 </td>
14366
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014367 <td class="entry_tags">
14368 </td>
14369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014370 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014371 <tr class="entries_header">
14372 <th class="th_details" colspan="5">Details</th>
14373 </tr>
14374 <tr class="entry_cont">
14375 <td class="entry_details" colspan="5">
14376 <p>When switching to an application-defined contrast curve by setting
14377<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14378per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14379mapping from input high-bit-depth pixel value to the output
14380low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14381and output may change depending on the camera pipeline,<wbr/> the values
14382are specified by normalized floating-point numbers.<wbr/></p>
14383<p>More-complex color mapping operations such as 3D color look-up
14384tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14385transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14386CONTRAST_<wbr/>CURVE.<wbr/></p>
14387<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14388emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14389<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/>
14390These values are always available,<wbr/> and as close as possible to the
14391actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14392<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14393provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14394roughly the same.<wbr/></p>
14395 </td>
14396 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014397
14398
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014399 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14400 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014401
14402
14403
14404 <!-- end of kind -->
14405 </tbody>
14406
14407 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014408 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014409
14410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014411 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014412
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014413 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014414 <tr>
14415 <th class="th_name">Property Name</th>
14416 <th class="th_type">Type</th>
14417 <th class="th_description">Description</th>
14418 <th class="th_units">Units</th>
14419 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014420 <th class="th_tags">Tags</th>
14421 </tr>
14422 </thead>
14423
14424 <tbody>
14425
14426
14427
14428
14429
14430
14431
14432
14433
14434
14435 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014436 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014437 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014438 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014439 <td class="entry_type">
14440 <span class="entry_type_name entry_type_name_enum">byte</span>
14441
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014442 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014443
14444 <ul class="entry_type_enum">
14445 <li>
14446 <span class="entry_type_enum_name">OFF</span>
14447 </li>
14448 <li>
14449 <span class="entry_type_enum_name">ON</span>
14450 </li>
14451 </ul>
14452
14453 </td> <!-- entry_type -->
14454
14455 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014456 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014457that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014458Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014459disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014460any untrusted applications.<wbr/></p>
14461<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14462transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14463data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014464<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014465doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014466 </td>
14467
14468 <td class="entry_units">
14469 </td>
14470
14471 <td class="entry_range">
14472 </td>
14473
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014474 <td class="entry_tags">
14475 </td>
14476
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014477 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014478
14479
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014480 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14481 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014482
14483
14484
14485 <!-- end of kind -->
14486 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014487 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014488
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014489 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014490 <tr>
14491 <th class="th_name">Property Name</th>
14492 <th class="th_type">Type</th>
14493 <th class="th_description">Description</th>
14494 <th class="th_units">Units</th>
14495 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014496 <th class="th_tags">Tags</th>
14497 </tr>
14498 </thead>
14499
14500 <tbody>
14501
14502
14503
14504
14505
14506
14507
14508
14509
14510
14511 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014512 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014513 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014514 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014515 <td class="entry_type">
14516 <span class="entry_type_name entry_type_name_enum">byte</span>
14517
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014518 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014519
14520 <ul class="entry_type_enum">
14521 <li>
14522 <span class="entry_type_enum_name">OFF</span>
14523 </li>
14524 <li>
14525 <span class="entry_type_enum_name">ON</span>
14526 </li>
14527 </ul>
14528
14529 </td> <!-- entry_type -->
14530
14531 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014532 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014533that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014534Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014535disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014536any untrusted applications.<wbr/></p>
14537<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14538transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14539data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014540<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014541doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014542 </td>
14543
14544 <td class="entry_units">
14545 </td>
14546
14547 <td class="entry_range">
14548 </td>
14549
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014550 <td class="entry_tags">
14551 </td>
14552
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014553 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014554
14555
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014556 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14557 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014558
14559
14560
14561 <!-- end of kind -->
14562 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014563 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014564
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014565 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014566 <tr>
14567 <th class="th_name">Property Name</th>
14568 <th class="th_type">Type</th>
14569 <th class="th_description">Description</th>
14570 <th class="th_units">Units</th>
14571 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014572 <th class="th_tags">Tags</th>
14573 </tr>
14574 </thead>
14575
14576 <tbody>
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014588 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014589 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014590 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014591 <td class="entry_type">
14592 <span class="entry_type_name entry_type_name_enum">byte</span>
14593 <span class="entry_type_container">x</span>
14594
14595 <span class="entry_type_array">
14596 n
14597 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014598 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014599
14600 <ul class="entry_type_enum">
14601 <li>
14602 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014603 <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 -070014604 </li>
14605 </ul>
14606
14607 </td> <!-- entry_type -->
14608
14609 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014610 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014611 </td>
14612
14613 <td class="entry_units">
14614 </td>
14615
14616 <td class="entry_range">
14617 </td>
14618
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014619 <td class="entry_tags">
14620 </td>
14621
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014622 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014623
14624
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014625 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14626 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014627
14628
14629
14630 <!-- end of kind -->
14631 </tbody>
14632
14633 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014634 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014635
14636
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014637 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014638
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014639 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014640 <tr>
14641 <th class="th_name">Property Name</th>
14642 <th class="th_type">Type</th>
14643 <th class="th_description">Description</th>
14644 <th class="th_units">Units</th>
14645 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014646 <th class="th_tags">Tags</th>
14647 </tr>
14648 </thead>
14649
14650 <tbody>
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014662 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014663 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014664 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014665 <td class="entry_type">
14666 <span class="entry_type_name entry_type_name_enum">byte</span>
14667
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014668 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014669
14670 <ul class="entry_type_enum">
14671 <li>
14672 <span class="entry_type_enum_name">LIMITED</span>
14673 </li>
14674 <li>
14675 <span class="entry_type_enum_name">FULL</span>
14676 </li>
14677 </ul>
14678
14679 </td> <!-- entry_type -->
14680
14681 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014682 <p>The camera 3 HAL device can implement one of two possible
14683operational modes; limited and full.<wbr/> Full support is
14684expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014685hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014686camera HAL device v1 implementation,<wbr/> and is expected from
14687older or inexpensive devices.<wbr/> Full is a strict superset of
14688limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14689<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014690 </td>
14691
14692 <td class="entry_units">
14693 </td>
14694
14695 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014696 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014697 </td>
14698
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014699 <td class="entry_tags">
14700 </td>
14701
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014702 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014703
14704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014705 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14706 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014707
14708
14709
14710 <!-- end of kind -->
14711 </tbody>
14712
14713 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014714 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014715
14716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014717 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014718
14719 <thead class="entries_header">
14720 <tr>
14721 <th class="th_name">Property Name</th>
14722 <th class="th_type">Type</th>
14723 <th class="th_description">Description</th>
14724 <th class="th_units">Units</th>
14725 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014726 <th class="th_tags">Tags</th>
14727 </tr>
14728 </thead>
14729
14730 <tbody>
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014742 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014743 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014744 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014745 <td class="entry_type">
14746 <span class="entry_type_name entry_type_name_enum">byte</span>
14747
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014748 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014749
14750 <ul class="entry_type_enum">
14751 <li>
14752 <span class="entry_type_enum_name">OFF</span>
14753 </li>
14754 <li>
14755 <span class="entry_type_enum_name">ON</span>
14756 </li>
14757 </ul>
14758
14759 </td> <!-- entry_type -->
14760
14761 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014762 <p>Whether black-level compensation is locked
14763to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014764 </td>
14765
14766 <td class="entry_units">
14767 </td>
14768
14769 <td class="entry_range">
14770 </td>
14771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014772 <td class="entry_tags">
14773 <ul class="entry_tags">
14774 <li><a href="#tag_HAL2">HAL2</a></li>
14775 </ul>
14776 </td>
14777
14778 </tr>
14779 <tr class="entries_header">
14780 <th class="th_details" colspan="5">Details</th>
14781 </tr>
14782 <tr class="entry_cont">
14783 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014784 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014785compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080014786OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014787<p>Since changes to certain capture parameters (such as
14788exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080014789compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014790the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080014791metadata.<wbr/></p>
14792<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014793<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014794<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14795<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14796<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14797<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14798<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14799<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014800</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014801<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080014802device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014803result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014804<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014805<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14806<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14807<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14808<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
14809<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14810<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014811</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014812<p>This indicates to the application that on frame 4,<wbr/> black
14813levels were reset due to exposure value changes,<wbr/> and pixel
14814values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014815<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080014816possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014817other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080014818or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014819 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014820 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014821
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014822 <tr class="entries_header">
14823 <th class="th_details" colspan="5">HAL Implementation Details</th>
14824 </tr>
14825 <tr class="entry_cont">
14826 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014827 <p>If for some reason black level locking is no longer possible
14828(for example,<wbr/> the analog gain has changed,<wbr/> which forces
14829black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014830override this request (and it must report 'OFF' when this
14831does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080014832possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014833 </td>
14834 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014835
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014836 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14837 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014838
14839
14840
14841 <!-- end of kind -->
14842 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014843 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014844
14845 <thead class="entries_header">
14846 <tr>
14847 <th class="th_name">Property Name</th>
14848 <th class="th_type">Type</th>
14849 <th class="th_description">Description</th>
14850 <th class="th_units">Units</th>
14851 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014852 <th class="th_tags">Tags</th>
14853 </tr>
14854 </thead>
14855
14856 <tbody>
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866
14867 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014868 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014869 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014870 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014871 <td class="entry_type">
14872 <span class="entry_type_name entry_type_name_enum">byte</span>
14873
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014874 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014875
14876 <ul class="entry_type_enum">
14877 <li>
14878 <span class="entry_type_enum_name">OFF</span>
14879 </li>
14880 <li>
14881 <span class="entry_type_enum_name">ON</span>
14882 </li>
14883 </ul>
14884
14885 </td> <!-- entry_type -->
14886
14887 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014888 <p>Whether black-level compensation is locked
14889to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014890 </td>
14891
14892 <td class="entry_units">
14893 </td>
14894
14895 <td class="entry_range">
14896 </td>
14897
Zhijun He69fc0ea2013-07-17 09:42:58 -070014898 <td class="entry_tags">
14899 <ul class="entry_tags">
14900 <li><a href="#tag_HAL2">HAL2</a></li>
14901 </ul>
14902 </td>
14903
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014904 </tr>
14905 <tr class="entries_header">
14906 <th class="th_details" colspan="5">Details</th>
14907 </tr>
14908 <tr class="entry_cont">
14909 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014910 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014911ON 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 -080014912a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080014913perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014914 </td>
14915 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014916
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014917 <tr class="entries_header">
14918 <th class="th_details" colspan="5">HAL Implementation Details</th>
14919 </tr>
14920 <tr class="entry_cont">
14921 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014922 <p>If for some reason black level locking is no longer possible
14923(for example,<wbr/> the analog gain has changed,<wbr/> which forces
14924black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014925override this request (and it must report 'OFF' when this
14926does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080014927possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014928 </td>
14929 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014930
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014931 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14932 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014933
14934
14935
14936 <!-- end of kind -->
14937 </tbody>
14938
14939 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080014940 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
14941
14942
14943 <tr><td colspan="6" class="kind">dynamic</td></tr>
14944
14945 <thead class="entries_header">
14946 <tr>
14947 <th class="th_name">Property Name</th>
14948 <th class="th_type">Type</th>
14949 <th class="th_description">Description</th>
14950 <th class="th_units">Units</th>
14951 <th class="th_range">Range</th>
14952 <th class="th_tags">Tags</th>
14953 </tr>
14954 </thead>
14955
14956 <tbody>
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966
14967 <tr class="entry" id="dynamic_android.sync.frameNumber">
14968 <td class="entry_name" rowspan="5">
14969 android.<wbr/>sync.<wbr/>frame<wbr/>Number
14970 </td>
14971 <td class="entry_type">
14972 <span class="entry_type_name entry_type_name_enum">int64</span>
14973
14974 <span class="entry_type_visibility"> [hidden]</span>
14975
14976 <ul class="entry_type_enum">
14977 <li>
14978 <span class="entry_type_enum_name">CONVERGING</span>
14979 <span class="entry_type_enum_value">-1</span>
14980 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
14981Synchronization is in progress,<wbr/> and reading metadata from this
14982result may include a mix of data that have taken effect since the
14983last synchronization time.<wbr/></p>
14984<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
14985this value will update to the actual frame number frame number
14986the result is guaranteed to be synchronized to (as long as the
14987request settings remain constant).<wbr/></p></span>
14988 </li>
14989 <li>
14990 <span class="entry_type_enum_name">UNKNOWN</span>
14991 <span class="entry_type_enum_value">-2</span>
14992 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
14993result may have already converged,<wbr/> or it may be in progress.<wbr/>
14994Reading from this result may include some mix of settings from
14995past requests.<wbr/></p>
14996<p>After a settings change,<wbr/> the new settings will eventually all
14997take effect for the output buffers and results.<wbr/> However,<wbr/> this
14998value will not change when that happens.<wbr/> Altering settings
14999rapidly may provide outcomes using mixes of settings from recent
15000requests.<wbr/></p>
15001<p>This value is intended primarily for backwards compatibility with
15002the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15003 </li>
15004 </ul>
15005
15006 </td> <!-- entry_type -->
15007
15008 <td class="entry_description">
15009 <p>The frame number corresponding to the last request
15010with which the output result (metadata + buffers) has been fully
15011synchronized.<wbr/></p>
15012 </td>
15013
15014 <td class="entry_units">
15015 </td>
15016
15017 <td class="entry_range">
15018 <p>Either a non-negative value corresponding to a
15019<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15020 </td>
15021
15022 <td class="entry_tags">
15023 <ul class="entry_tags">
15024 <li><a href="#tag_LIMITED">LIMITED</a></li>
15025 </ul>
15026 </td>
15027
15028 </tr>
15029 <tr class="entries_header">
15030 <th class="th_details" colspan="5">Details</th>
15031 </tr>
15032 <tr class="entry_cont">
15033 <td class="entry_details" colspan="5">
15034 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15035delay of several frames before the controls get applied.<wbr/> A camera
15036device may either choose to account for this delay by implementing a
15037pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15038it may start streaming control changes that span over several frame
15039boundaries.<wbr/></p>
15040<p>In the latter case,<wbr/> whenever a request's settings change relative to
15041the previous submitted request,<wbr/> the full set of changes may take
15042multiple frame durations to fully take effect.<wbr/> Some settings may
15043take effect sooner (in less frame durations) than others.<wbr/></p>
15044<p>While a set of control changes are being propagated,<wbr/> this value
15045will be CONVERGING.<wbr/></p>
15046<p>Once it is fully known that a set of control changes have been
15047finished propagating,<wbr/> and the resulting updated control settings
15048have been read back by the camera device,<wbr/> this value will be set
15049to a non-negative frame number (corresponding to the request to
15050which the results have synchronized to).<wbr/></p>
15051<p>Older camera device implementations may not have a way to detect
15052when all camera controls have been applied,<wbr/> and will always set this
15053value to UNKNOWN.<wbr/></p>
15054<p>FULL capability devices will always have this value set to the
15055frame number of the request corresponding to this result.<wbr/></p>
15056<p><em>Further details</em>:</p>
15057<ul>
15058<li>Whenever a request differs from the last request,<wbr/> any future
15059results not yet returned may have this value set to CONVERGING (this
15060could include any in-progress captures not yet returned by the camera
15061device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15062<li>Submitting a series of multiple requests that differ from the
15063previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15064moves the new synchronization frame to the last non-repeating
15065request (using the smallest frame number from the contiguous list of
15066repeating requests).<wbr/></li>
15067<li>Submitting the same request repeatedly will not change this value
15068to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15069<li>When this value changes to non-negative,<wbr/> that means that all of the
15070metadata controls from the request have been applied,<wbr/> all of the
15071metadata controls from the camera device have been read to the
15072updated values (into the result),<wbr/> and all of the graphics buffers
15073corresponding to this result are also synchronized to the request.<wbr/></li>
15074</ul>
15075<p><em>Pipeline considerations</em>:</p>
15076<p>Submitting a request with updated controls relative to the previously
15077submitted requests may also invalidate the synchronization state
15078of all the results corresponding to currently in-flight requests.<wbr/></p>
15079<p>In other words,<wbr/> results for this current request and up to
15080<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15081<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15082 </td>
15083 </tr>
15084
15085 <tr class="entries_header">
15086 <th class="th_details" colspan="5">HAL Implementation Details</th>
15087 </tr>
15088 <tr class="entry_cont">
15089 <td class="entry_details" colspan="5">
15090 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15091is also UNKNOWN.<wbr/></p>
15092<p>FULL capability devices should simply set this value to the
15093<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15094 </td>
15095 </tr>
15096
15097 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15098 <!-- end of entry -->
15099
15100
15101
15102 <!-- end of kind -->
15103 </tbody>
15104 <tr><td colspan="6" class="kind">static</td></tr>
15105
15106 <thead class="entries_header">
15107 <tr>
15108 <th class="th_name">Property Name</th>
15109 <th class="th_type">Type</th>
15110 <th class="th_description">Description</th>
15111 <th class="th_units">Units</th>
15112 <th class="th_range">Range</th>
15113 <th class="th_tags">Tags</th>
15114 </tr>
15115 </thead>
15116
15117 <tbody>
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127
15128 <tr class="entry" id="static_android.sync.maxLatency">
15129 <td class="entry_name" rowspan="5">
15130 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15131 </td>
15132 <td class="entry_type">
15133 <span class="entry_type_name entry_type_name_enum">int32</span>
15134
15135 <span class="entry_type_visibility"> [public]</span>
15136
15137 <ul class="entry_type_enum">
15138 <li>
15139 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15140 <span class="entry_type_enum_value">0</span>
15141 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15142(and furthermore for all results,<wbr/>
15143<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>
15144<p>Changing controls over multiple requests one after another will
15145produce results that have those controls applied atomically
15146each frame.<wbr/></p>
15147<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15148 </li>
15149 <li>
15150 <span class="entry_type_enum_name">UNKNOWN</span>
15151 <span class="entry_type_enum_value">-1</span>
15152 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15153of the past requests applied to the camera settings.<wbr/></p>
15154<p>By submitting a series of identical requests,<wbr/> the camera device
15155will eventually have the camera settings applied,<wbr/> but it is
15156unknown when that exact point will be.<wbr/></p></span>
15157 </li>
15158 </ul>
15159
15160 </td> <!-- entry_type -->
15161
15162 <td class="entry_description">
15163 <p>The maximum number of frames that can occur after a request
15164(different than the previous) has been submitted,<wbr/> and before the
15165result's state becomes synchronized (by setting
15166<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15167 </td>
15168
15169 <td class="entry_units">
15170 number of processed requests
15171 </td>
15172
15173 <td class="entry_range">
15174 <p>&gt;= -1</p>
15175 </td>
15176
15177 <td class="entry_tags">
15178 <ul class="entry_tags">
15179 <li><a href="#tag_LIMITED">LIMITED</a></li>
15180 </ul>
15181 </td>
15182
15183 </tr>
15184 <tr class="entries_header">
15185 <th class="th_details" colspan="5">Details</th>
15186 </tr>
15187 <tr class="entry_cont">
15188 <td class="entry_details" colspan="5">
15189 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15190between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15191<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15192<p>In other words this acts as an upper boundary for how many frames
15193must occur before the camera device knows for a fact that the new
15194submitted camera settings have been applied in outgoing frames.<wbr/></p>
15195<p>For example if the distance was 2,<wbr/></p>
15196<pre><code>initial request = X (repeating)
15197request1 = X
15198request2 = Y
15199request3 = Y
15200request4 = Y
15201
15202where requestN has frameNumber N,<wbr/> and the first of the repeating
15203initial request's has frameNumber F (and F &lt; 1).<wbr/>
15204
15205initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15206result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15207result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15208result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15209result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15210
15211where resultN has frameNumber N.<wbr/>
15212</code></pre>
15213<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15214<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15215<code>4 - 2 = 2</code>.<wbr/></p>
15216 </td>
15217 </tr>
15218
15219 <tr class="entries_header">
15220 <th class="th_details" colspan="5">HAL Implementation Details</th>
15221 </tr>
15222 <tr class="entry_cont">
15223 <td class="entry_details" colspan="5">
15224 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15225<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15226<p>LIMITED devices are strongly encouraged to use a non-negative
15227value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15228to know when sensor settings have been applied.<wbr/></p>
15229 </td>
15230 </tr>
15231
15232 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15233 <!-- end of entry -->
15234
15235
15236
15237 <!-- end of kind -->
15238 </tbody>
15239
15240 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015241<!-- </namespace> -->
15242 </table>
15243
15244 <div class="tags" id="tag_index">
15245 <h2>Tags</h2>
15246 <ul>
15247 <li id="tag_AWB">AWB -
15248 Needed for auto white balance
15249
15250 <ul class="tags_entries">
15251 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15252 </ul>
15253 </li> <!-- tag_AWB -->
15254 <li id="tag_BC">BC -
15255 Needed for backwards compatibility with old Java API
15256
15257 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015258 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015259 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15260 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15261 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15262 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15263 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015264 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015265 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15266 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015267 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015268 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15269 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15270 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15271 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15272 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15273 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15274 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15275 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015276 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015277 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15278 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15279 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15280 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15281 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15282 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15283 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15284 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15285 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15286 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15287 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15288 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15289 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15290 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15291 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15292 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15293 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15294 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15295 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15296 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15297 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15298 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15299 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15300 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15301 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15302 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15303 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15304 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015305 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015306 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15307 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15308 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015309 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015310 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015311 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15312 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15313 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15314 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15315 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15316 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15317 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15318 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15319 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15320 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15321 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15322 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15323 </ul>
15324 </li> <!-- tag_BC -->
15325 <li id="tag_V1">V1 -
15326 New features for first camera 2 release (API1)
15327
15328 <ul class="tags_entries">
15329 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15330 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15331 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15332 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15333 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15334 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15335 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15336 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15337 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15338 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15339 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15340 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15341 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15342 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15343 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15344 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15345 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15346 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15347 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15348 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15349 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15350 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15351 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15352 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015353 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015354 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15355 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15356 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15357 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15358 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15359 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15360 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15361 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15362 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15363 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15364 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15365 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15366 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15367 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15368 </ul>
15369 </li> <!-- tag_V1 -->
15370 <li id="tag_ADV">ADV - None
15371 <ul class="tags_entries">
15372 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15373 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15374 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15375 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15376 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15377 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15378 </ul>
15379 </li> <!-- tag_ADV -->
15380 <li id="tag_DNG">DNG -
15381 Needed for DNG file support
15382
15383 <ul class="tags_entries">
15384 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015385 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15386 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15387 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15388 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15389 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15390 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15391 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15392 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15393 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15394 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15395 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15396 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15397 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15398 </ul>
15399 </li> <!-- tag_DNG -->
15400 <li id="tag_EXIF">EXIF - None
15401 <ul class="tags_entries">
15402 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15403 </ul>
15404 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015405 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015406 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015407
15408 <ul class="tags_entries">
15409 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15410 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15411 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015412 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015413 </ul>
15414 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015415 <li id="tag_FULL">FULL -
15416 Entry is required for full hardware level devices, and optional for other hardware levels
15417
15418 <ul class="tags_entries">
15419 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15420 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15421 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15422 </ul>
15423 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015424 <li id="tag_LIMITED">LIMITED -
15425 Entry assists with LIMITED device implementation. LIMITED devices
15426 must implement all entries with this tag. Optional for FULL devices.
15427
15428 <ul class="tags_entries">
15429 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15430 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15431 </ul>
15432 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015433 </ul>
15434 </div>
15435
15436 [ <a href="#">top</a> ]
15437
15438</body>
15439</html>