blob: 178edc6c43b8b2f8f632380c5431f5e1f12d646e [file] [log] [blame]
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001<!DOCTYPE html>
2<html>
3<!-- Copyright (C) 2012 The Android Open Source Project
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16-->
17<head>
18 <!-- automatically generated from html.mako. do NOT edit directly -->
19 <meta charset="utf-8" />
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070020 <title>Android Camera HAL3.0 Properties</title>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021 <style type="text/css">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022 body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
23 h1 { color: #333333; }
24 h2 { color: #333333; }
25 a:link { color: #258aaf; text-decoration: none}
26 a:hover { color: #459aaf; text-decoration: underline }
27 a:visited { color: #154a5f; text-decoration: none}
28 .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777}
29 .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
30 .entry { background-color: #f0f0f0 }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080031 .entry_cont { background-color: #f0f0f0 }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070032 .entries_header { background-color: #dddddd; text-align: center}
33
34 /* toc style */
35 .toc_section_header { font-size:1.3em; }
36 .toc_kind_header { font-size:1.2em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080037
38 /* table column sizes */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070039 table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
40 td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080041 .th_name { width: 20% }
42 .th_units { width: 10% }
43 .th_tags { width: 5% }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080044 .th_details { width: 25% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080045 .th_type { width: 20% }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070046 .th_description { width: 20% }
47 .th_range { width: 10% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080048 td { font-size: 0.9em; }
49
50 /* hide the first thead, we need it there only to enforce column sizes */
51 .thead_dummy { visibility: hidden; }
52
53 /* Entry flair */
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080054 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080055
56 /* Entry type flair */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070057 .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
58 .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
59 .entry_type_visibility { font-weight: bolder; padding-left:1em}
Igor Murashkin08b8aad2012-11-29 15:23:03 -080060 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
61 .entry_type_enum_notes:before { content:" - " }
Igor Murashkina10351a2014-01-15 17:05:22 -080062 .entry_type_enum_notes>p:first-child { display:inline; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080063 .entry_type_enum_value:before { content:" = " }
64 .entry_type_enum_value { font-family: monospace; }
65 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
66 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
67
68 /* Entry tags flair */
69 .entry_tags ul { list-style-type: none; }
70
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080071 /* Entry details (full docs) flair */
72 .entry_details_header { font-weight: bold; background-color: #dddddd;
73 text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
74
75 /* Entry spacer flair */
76 .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080077
78 /* TODO: generate abbr element for each tag link? */
79 /* TODO for each x.y.z try to link it to the entry */
80
81 </style>
82
83 <style>
84
85 {
86 /* broken...
87 supposedly there is a bug in chrome that it lays out tables before
88 it knows its being printed, so the page-break-* styles are ignored
89 */
90 tr { page-break-after: always; page-break-inside: avoid; }
91 }
92
93 </style>
94</head>
95
96
97
Igor Murashkin08b8aad2012-11-29 15:23:03 -080098<body>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070099 <h1>Android Camera HAL3.0 Properties</h1>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800100
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700101
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800102 <h2>Table of Contents</h2>
103 <ul class="toc">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700104 <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
105 <li>
106 <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
107 <ul class="toc_section">
108 <li>
109 <span class="toc_kind_header">controls</span>
110 <ul class="toc_section">
111 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
112 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700113 <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700114 </ul>
115 </li>
116 <li>
117 <span class="toc_kind_header">dynamic</span>
118 <ul class="toc_section">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700119 <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
120 <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700121 </ul>
122 </li>
123 </ul> <!-- toc_section -->
124 </li>
125 <li>
126 <span class="toc_section_header"><a href="#section_control">control</a></span>
127 <ul class="toc_section">
128 <li>
129 <span class="toc_kind_header">controls</span>
130 <ul class="toc_section">
131 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
132 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
133 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
134 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
135 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
136 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
137 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
138 <li><a href="#controls_android.control.afMode">android.control.afMode</a></li>
139 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
140 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
141 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
142 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
143 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
144 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
145 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
146 <li><a href="#controls_android.control.mode">android.control.mode</a></li>
147 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
148 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
149 </ul>
150 </li>
151 <li>
152 <span class="toc_kind_header">static</span>
153 <ul class="toc_section">
154 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
155 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
156 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
157 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
158 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
159 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
160 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
161 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
162 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
163 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
164 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
165 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
166 </ul>
167 </li>
168 <li>
169 <span class="toc_kind_header">dynamic</span>
170 <ul class="toc_section">
171 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -0800172 <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700173 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
174 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
175 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
176 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
177 <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
178 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
179 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
180 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
181 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
182 <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
183 </ul>
184 </li>
185 </ul> <!-- toc_section -->
186 </li>
187 <li>
188 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
189 <ul class="toc_section">
190 <li>
191 <span class="toc_kind_header">controls</span>
192 <ul class="toc_section">
193 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
194 </ul>
195 </li>
196 </ul> <!-- toc_section -->
197 </li>
198 <li>
199 <span class="toc_section_header"><a href="#section_edge">edge</a></span>
200 <ul class="toc_section">
201 <li>
202 <span class="toc_kind_header">controls</span>
203 <ul class="toc_section">
204 <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
205 <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
206 </ul>
207 </li>
208 <li>
209 <span class="toc_kind_header">dynamic</span>
210 <ul class="toc_section">
211 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
212 </ul>
213 </li>
214 </ul> <!-- toc_section -->
215 </li>
216 <li>
217 <span class="toc_section_header"><a href="#section_flash">flash</a></span>
218 <ul class="toc_section">
219 <li>
220 <span class="toc_kind_header">controls</span>
221 <ul class="toc_section">
222 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
223 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
224 <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
225 </ul>
226 </li>
227 <li>
228 <span class="toc_kind_header">static</span>
229 <ul class="toc_section">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800230
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700231 <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
232 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700234 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
235 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
236 </ul>
237 </li>
238 <li>
239 <span class="toc_kind_header">dynamic</span>
240 <ul class="toc_section">
241 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
242 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
243 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
244 <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
245 </ul>
246 </li>
247 </ul> <!-- toc_section -->
248 </li>
249 <li>
250 <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
251 <ul class="toc_section">
252 <li>
253 <span class="toc_kind_header">controls</span>
254 <ul class="toc_section">
255 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
256 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
257 </ul>
258 </li>
259 </ul> <!-- toc_section -->
260 </li>
261 <li>
262 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
263 <ul class="toc_section">
264 <li>
265 <span class="toc_kind_header">controls</span>
266 <ul class="toc_section">
267 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
268 </ul>
269 </li>
270 <li>
271 <span class="toc_kind_header">static</span>
272 <ul class="toc_section">
273
274 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>
275
276 </ul>
277 </li>
278 <li>
279 <span class="toc_kind_header">dynamic</span>
280 <ul class="toc_section">
281 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
282 </ul>
283 </li>
284 </ul> <!-- toc_section -->
285 </li>
286 <li>
287 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
288 <ul class="toc_section">
289 <li>
290 <span class="toc_kind_header">controls</span>
291 <ul class="toc_section">
292 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
293 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
294 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
295 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
296 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
297 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
298 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
299 </ul>
300 </li>
301 <li>
302 <span class="toc_kind_header">static</span>
303 <ul class="toc_section">
304 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
305 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
306 </ul>
307 </li>
308 <li>
309 <span class="toc_kind_header">dynamic</span>
310 <ul class="toc_section">
311 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
312 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
313 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
314 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
315 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
316 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
317 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
318 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
319 </ul>
320 </li>
321 </ul> <!-- toc_section -->
322 </li>
323 <li>
324 <span class="toc_section_header"><a href="#section_lens">lens</a></span>
325 <ul class="toc_section">
326 <li>
327 <span class="toc_kind_header">controls</span>
328 <ul class="toc_section">
329 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
330 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
331 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
332 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
333 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
334 </ul>
335 </li>
336 <li>
337 <span class="toc_kind_header">static</span>
338 <ul class="toc_section">
339
340 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
341 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
342 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
343 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
344 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
345 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
346 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
347 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700348 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
349
350 <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
351 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
352 <li><a href="#static_android.lens.position">android.lens.position</a></li>
353 </ul>
354 </li>
355 <li>
356 <span class="toc_kind_header">dynamic</span>
357 <ul class="toc_section">
358 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
359 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
360 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
361 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
362 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
363 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
364 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
365 </ul>
366 </li>
367 </ul> <!-- toc_section -->
368 </li>
369 <li>
370 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
371 <ul class="toc_section">
372 <li>
373 <span class="toc_kind_header">controls</span>
374 <ul class="toc_section">
375 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
376 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
377 </ul>
378 </li>
379 <li>
380 <span class="toc_kind_header">dynamic</span>
381 <ul class="toc_section">
382 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
383 </ul>
384 </li>
385 </ul> <!-- toc_section -->
386 </li>
387 <li>
388 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
389 <ul class="toc_section">
390 <li>
391 <span class="toc_kind_header">static</span>
392 <ul class="toc_section">
393 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
394 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
395 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700396 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
397 </ul>
398 </li>
399 <li>
400 <span class="toc_kind_header">dynamic</span>
401 <ul class="toc_section">
402 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700403 </ul>
404 </li>
405 </ul> <!-- toc_section -->
406 </li>
407 <li>
408 <span class="toc_section_header"><a href="#section_request">request</a></span>
409 <ul class="toc_section">
410 <li>
411 <span class="toc_kind_header">controls</span>
412 <ul class="toc_section">
413 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
414 <li><a href="#controls_android.request.id">android.request.id</a></li>
415 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
416 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
417 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
418 <li><a href="#controls_android.request.type">android.request.type</a></li>
419 </ul>
420 </li>
421 <li>
422 <span class="toc_kind_header">static</span>
423 <ul class="toc_section">
424 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
425 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800426 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800427 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700428 </ul>
429 </li>
430 <li>
431 <span class="toc_kind_header">dynamic</span>
432 <ul class="toc_section">
433 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
434 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
435 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
436 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800437 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700438 </ul>
439 </li>
440 </ul> <!-- toc_section -->
441 </li>
442 <li>
443 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
444 <ul class="toc_section">
445 <li>
446 <span class="toc_kind_header">controls</span>
447 <ul class="toc_section">
448 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
449 </ul>
450 </li>
451 <li>
452 <span class="toc_kind_header">static</span>
453 <ul class="toc_section">
454 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
455 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
456 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
457 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
458 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
459 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
460 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
461 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
462 </ul>
463 </li>
464 <li>
465 <span class="toc_kind_header">dynamic</span>
466 <ul class="toc_section">
467 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
468 </ul>
469 </li>
470 </ul> <!-- toc_section -->
471 </li>
472 <li>
473 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
474 <ul class="toc_section">
475 <li>
476 <span class="toc_kind_header">controls</span>
477 <ul class="toc_section">
478 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
479 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
480 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800481 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
482 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700483 </ul>
484 </li>
485 <li>
486 <span class="toc_kind_header">static</span>
487 <ul class="toc_section">
488
489 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700490 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700491 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
492 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
493 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
494 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
495 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
496 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
497
498 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
499 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
500 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
501 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
502 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
503 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
504 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
505 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
506 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
507 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
508 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
509 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
510 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800511 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700512 </ul>
513 </li>
514 <li>
515 <span class="toc_kind_header">dynamic</span>
516 <ul class="toc_section">
517 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
518 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
519 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
520 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700521 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800522 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700523 </ul>
524 </li>
525 </ul> <!-- toc_section -->
526 </li>
527 <li>
528 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
529 <ul class="toc_section">
530 <li>
531 <span class="toc_kind_header">controls</span>
532 <ul class="toc_section">
533 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
534 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
535 </ul>
536 </li>
537 <li>
538 <span class="toc_kind_header">dynamic</span>
539 <ul class="toc_section">
540 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
541 </ul>
542 </li>
543 </ul> <!-- toc_section -->
544 </li>
545 <li>
546 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
547 <ul class="toc_section">
548 <li>
549 <span class="toc_kind_header">controls</span>
550 <ul class="toc_section">
551 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
552 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
553 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700554 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700555 </ul>
556 </li>
557 <li>
558 <span class="toc_kind_header">static</span>
559 <ul class="toc_section">
560
561 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
562 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
563 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
564 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
565 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
566 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
567
568 </ul>
569 </li>
570 <li>
571 <span class="toc_kind_header">dynamic</span>
572 <ul class="toc_section">
573 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
574 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
575 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
576 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
577 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
578 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
579 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
580 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
581 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700582 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
583 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
584 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
585 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700586 </ul>
587 </li>
588 </ul> <!-- toc_section -->
589 </li>
590 <li>
591 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
592 <ul class="toc_section">
593 <li>
594 <span class="toc_kind_header">controls</span>
595 <ul class="toc_section">
596 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
597 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
598 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
599 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
600 </ul>
601 </li>
602 <li>
603 <span class="toc_kind_header">static</span>
604 <ul class="toc_section">
605 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
606 </ul>
607 </li>
608 <li>
609 <span class="toc_kind_header">dynamic</span>
610 <ul class="toc_section">
611 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
612 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
613 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
614 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
615 </ul>
616 </li>
617 </ul> <!-- toc_section -->
618 </li>
619 <li>
620 <span class="toc_section_header"><a href="#section_led">led</a></span>
621 <ul class="toc_section">
622 <li>
623 <span class="toc_kind_header">controls</span>
624 <ul class="toc_section">
625 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
626 </ul>
627 </li>
628 <li>
629 <span class="toc_kind_header">dynamic</span>
630 <ul class="toc_section">
631 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
632 </ul>
633 </li>
634 <li>
635 <span class="toc_kind_header">static</span>
636 <ul class="toc_section">
637 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
638 </ul>
639 </li>
640 </ul> <!-- toc_section -->
641 </li>
642 <li>
643 <span class="toc_section_header"><a href="#section_info">info</a></span>
644 <ul class="toc_section">
645 <li>
646 <span class="toc_kind_header">static</span>
647 <ul class="toc_section">
648 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
649 </ul>
650 </li>
651 </ul> <!-- toc_section -->
652 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700653 <li>
654 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
655 <ul class="toc_section">
656 <li>
657 <span class="toc_kind_header">controls</span>
658 <ul class="toc_section">
659 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
660 </ul>
661 </li>
662 <li>
663 <span class="toc_kind_header">dynamic</span>
664 <ul class="toc_section">
665 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
666 </ul>
667 </li>
668 </ul> <!-- toc_section -->
669 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800670 <li>
671 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
672 <ul class="toc_section">
673 <li>
674 <span class="toc_kind_header">dynamic</span>
675 <ul class="toc_section">
676 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
677 </ul>
678 </li>
679 <li>
680 <span class="toc_kind_header">static</span>
681 <ul class="toc_section">
682 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
683 </ul>
684 </li>
685 </ul> <!-- toc_section -->
686 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800687 </ul>
688
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700689
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800690 <h1>Properties</h1>
691 <table class="properties">
692
693 <thead class="thead_dummy">
694 <tr>
695 <th class="th_name">Property Name</th>
696 <th class="th_type">Type</th>
697 <th class="th_description">Description</th>
698 <th class="th_units">Units</th>
699 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800700 <th class="th_tags">Tags</th>
701 </tr>
702 </thead> <!-- so that the first occurrence of thead is not
703 above the first occurrence of tr -->
704<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800705 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800706
707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800708 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800709
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700710 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800711 <tr>
712 <th class="th_name">Property Name</th>
713 <th class="th_type">Type</th>
714 <th class="th_description">Description</th>
715 <th class="th_units">Units</th>
716 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800717 <th class="th_tags">Tags</th>
718 </tr>
719 </thead>
720
721 <tbody>
722
723
724
725
726
727
728
729
730
731
732 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800733 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800734 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800737 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700739 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800740
741 <ul class="entry_type_enum">
742 <li>
743 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800744 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
Igor Murashkin43817ad2014-01-10 15:58:35 -0800745and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
746<p>All advanced white balance adjustments (not specified
747by our white balance pipeline) must be disabled.<wbr/></p>
748<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
749TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
750this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800751 </li>
752 <li>
753 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800754 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
755output.<wbr/></p>
756<p>Advanced white balance adjustments above and beyond
757the specified white balance pipeline may be applied.<wbr/></p>
758<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
759the camera device uses the last frame's AWB values
760(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800761 </li>
762 <li>
763 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800764 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
765may be reduced by high quality.<wbr/></p>
766<p>Advanced white balance adjustments above and beyond
767the specified white balance pipeline may be applied.<wbr/></p>
768<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
769the camera device uses the last frame's AWB values
770(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800771 </li>
772 </ul>
773
774 </td> <!-- entry_type -->
775
776 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800777 <p>The mode control selects how the image data is converted from the
778sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800779 </td>
780
781 <td class="entry_units">
782 </td>
783
784 <td class="entry_range">
785 </td>
786
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800787 <td class="entry_tags">
788 </td>
789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800790 </tr>
791 <tr class="entries_header">
792 <th class="th_details" colspan="5">Details</th>
793 </tr>
794 <tr class="entry_cont">
795 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800796 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
797control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
798application controls how the color mapping is performed.<wbr/></p>
799<p>We define the expected processing pipeline below.<wbr/> For consistency
800across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
801<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
802do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
803<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
804camera device (in the results) and be roughly correct.<wbr/></p>
805<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
806FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
807as what was produced by the camera device in the earlier frame.<wbr/></p>
808<p>The expected processing pipeline is as follows:</p>
809<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
810<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
811gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
812matrix (applied after demosaic).<wbr/></p>
813<p>The 4-channel white-balance gains are defined as:</p>
814<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
815</code></pre>
816<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
817output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
818These may be identical for a given camera device implementation; if
819the camera device does not support a separate gain for even/<wbr/>odd green
820channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
821<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
822<p>The matrices for color transforms are defined as a 9-entry vector:</p>
823<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
824</code></pre>
825<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
826to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
827<p>with colors as follows:</p>
828<pre><code>r' = I0r + I1g + I2b
829g' = I3r + I4g + I5b
830b' = I6r + I7g + I8b
831</code></pre>
832<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
833values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800834 </td>
835 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800836
837
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800838 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
839 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800840
841
842 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800843 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800844 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800845 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800846 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700847 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800848 <span class="entry_type_container">x</span>
849
850 <span class="entry_type_array">
851 3 x 3
852 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700853 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800854 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800855
856
857 </td> <!-- entry_type -->
858
859 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800860 <p>A color transform matrix to use to transform
861from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800862 </td>
863
864 <td class="entry_units">
865 </td>
866
867 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800868 <p>Output values are expected to be in the range
869(0,<wbr/>1)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800870 </td>
871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800872 <td class="entry_tags">
873 </td>
874
875 </tr>
876 <tr class="entries_header">
877 <th class="th_details" colspan="5">Details</th>
878 </tr>
879 <tr class="entry_cont">
880 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800881 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800882<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800883directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800884<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -0800885<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800886for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -0800887reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700888 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800890
891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
893 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700894
895
896 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800897 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800898 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800899 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700900 <td class="entry_type">
901 <span class="entry_type_name">float</span>
902 <span class="entry_type_container">x</span>
903
904 <span class="entry_type_array">
905 4
906 </span>
907 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800908 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700909
910
911 </td> <!-- entry_type -->
912
913 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800914 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800915white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700916 </td>
917
918 <td class="entry_units">
919 </td>
920
921 <td class="entry_range">
922 </td>
923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800924 <td class="entry_tags">
925 </td>
926
927 </tr>
928 <tr class="entries_header">
929 <th class="th_details" colspan="5">Details</th>
930 </tr>
931 <tr class="entry_cont">
932 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800933 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800934the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
935for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
936is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800937does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800938it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
939<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800940<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800941<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800942directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800943<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800944<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800945the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800946 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800948
949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800952
953
954
955 <!-- end of kind -->
956 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800957 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700959 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800960 <tr>
961 <th class="th_name">Property Name</th>
962 <th class="th_type">Type</th>
963 <th class="th_description">Description</th>
964 <th class="th_units">Units</th>
965 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800966 <th class="th_tags">Tags</th>
967 </tr>
968 </thead>
969
970 <tbody>
971
972
973
974
975
976
977
978
979
980
Zhijun He69fc0ea2013-07-17 09:42:58 -0700981 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800983 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800985 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700986 <span class="entry_type_name">rational</span>
987 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800988
Zhijun He69fc0ea2013-07-17 09:42:58 -0700989 <span class="entry_type_array">
990 3 x 3
991 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700992 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800993 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800994
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800995
996 </td> <!-- entry_type -->
997
998 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800999 <p>A color transform matrix to use to transform
1000from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001001 </td>
1002
1003 <td class="entry_units">
1004 </td>
1005
1006 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001007 <p>Output values are expected to be in the range
1008(0,<wbr/>1)</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001009 </td>
1010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001011 <td class="entry_tags">
1012 </td>
1013
1014 </tr>
1015 <tr class="entries_header">
1016 <th class="th_details" colspan="5">Details</th>
1017 </tr>
1018 <tr class="entry_cont">
1019 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001020 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001021<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001022directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001023<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08001024<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001025for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -08001026reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001027 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001029
1030
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001031 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1032 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001033
1034
1035 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001036 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001037 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001038 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001039 <td class="entry_type">
1040 <span class="entry_type_name">float</span>
1041 <span class="entry_type_container">x</span>
1042
1043 <span class="entry_type_array">
1044 4
1045 </span>
1046 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001047 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001048
1049
1050 </td> <!-- entry_type -->
1051
1052 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001053 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001054white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001055 </td>
1056
1057 <td class="entry_units">
1058 </td>
1059
1060 <td class="entry_range">
1061 </td>
1062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001063 <td class="entry_tags">
1064 </td>
1065
1066 </tr>
1067 <tr class="entries_header">
1068 <th class="th_details" colspan="5">Details</th>
1069 </tr>
1070 <tr class="entry_cont">
1071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001072 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001073the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1074for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1075is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001076does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001077it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1078<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001079<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001080<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001081directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001082<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001083<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001084the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001085 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001086 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001087
1088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001089 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1090 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001091
1092
1093
1094 <!-- end of kind -->
1095 </tbody>
1096
1097 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001098 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001099
1100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001101 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001103 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001104 <tr>
1105 <th class="th_name">Property Name</th>
1106 <th class="th_type">Type</th>
1107 <th class="th_description">Description</th>
1108 <th class="th_units">Units</th>
1109 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001110 <th class="th_tags">Tags</th>
1111 </tr>
1112 </thead>
1113
1114 <tbody>
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001126 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001127 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001130 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001133
1134 <ul class="entry_type_enum">
1135 <li>
1136 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001137 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1138avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001139 </li>
1140 <li>
1141 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001142 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1143avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001144 </li>
1145 <li>
1146 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001147 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1148avoid banding problems with 60Hz illumination
1149sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001150 </li>
1151 <li>
1152 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001153 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1154antibanding routine to the current illumination
1155conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001156 </li>
1157 </ul>
1158
1159 </td> <!-- entry_type -->
1160
1161 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001162 <p>The desired setting for the camera device's auto-exposure
1163algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001164 </td>
1165
1166 <td class="entry_units">
1167 </td>
1168
1169 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001170 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001171 </td>
1172
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001173 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001174 <ul class="entry_tags">
1175 <li><a href="#tag_BC">BC</a></li>
1176 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001177 </td>
1178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001179 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001180 <tr class="entries_header">
1181 <th class="th_details" colspan="5">Details</th>
1182 </tr>
1183 <tr class="entry_cont">
1184 <td class="entry_details" colspan="5">
1185 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1186lights,<wbr/> flicker at the rate of the power supply frequency
1187(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1188typically not noticeable to a person,<wbr/> it can be visible to
1189a camera device.<wbr/> If a camera sets its exposure time to the
1190wrong value,<wbr/> the flicker may become visible in the
1191viewfinder as flicker or in a final captured image,<wbr/> as a
1192set of variable-brightness bands across the image.<wbr/></p>
1193<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1194include antibanding routines that ensure that the chosen
1195exposure value will not cause such banding.<wbr/> The choice of
1196exposure time depends on the rate of flicker,<wbr/> which the
1197camera device can detect automatically,<wbr/> or the expected
1198rate can be selected by the application using this
1199control.<wbr/></p>
1200<p>A given camera device may not support all of the possible
1201options for the antibanding mode.<wbr/> The
1202<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1203the available modes for a given camera device.<wbr/></p>
1204<p>The default mode is AUTO,<wbr/> which must be supported by all
1205camera devices.<wbr/></p>
1206<p>If manual exposure control is enabled (by setting
1207<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1208then this setting has no effect,<wbr/> and the application must
1209ensure it selects exposure times that do not cause banding
1210issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1211the application in this.<wbr/></p>
1212 </td>
1213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001214
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001215 <tr class="entries_header">
1216 <th class="th_details" colspan="5">HAL Implementation Details</th>
1217 </tr>
1218 <tr class="entry_cont">
1219 <td class="entry_details" colspan="5">
1220 <p>For all capture request templates,<wbr/> this field must be set
1221to AUTO.<wbr/> AUTO is the only mode that must supported;
1222OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1223<p>If manual exposure control is enabled (by setting
1224<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1225then the exposure values provided by the application must not be
1226adjusted for antibanding.<wbr/></p>
1227 </td>
1228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001232
1233
1234 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001235 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001236 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001237 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001238 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001239 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001240
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001241 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001242
1243
1244 </td> <!-- entry_type -->
1245
1246 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001247 <p>Adjustment to AE target image
1248brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001249 </td>
1250
1251 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001252 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001253 </td>
1254
1255 <td class="entry_range">
1256 </td>
1257
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001258 <td class="entry_tags">
1259 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001260 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001261 </ul>
1262 </td>
1263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001264 </tr>
1265 <tr class="entries_header">
1266 <th class="th_details" colspan="5">Details</th>
1267 </tr>
1268 <tr class="entry_cont">
1269 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001270 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001271exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001272compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001273 </td>
1274 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001275
1276
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001277 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1278 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001279
1280
1281 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001282 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001283 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001284 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001285 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001286 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001287
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001288 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001289
1290 <ul class="entry_type_enum">
1291 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001292 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001293 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1294is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001295 </li>
1296 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001297 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001298 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1299must not update the exposure and sensitivity parameters
1300while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001301 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001302 </ul>
1303
1304 </td> <!-- entry_type -->
1305
1306 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001307 <p>Whether AE is currently locked to its latest
1308calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001309 </td>
1310
1311 <td class="entry_units">
1312 </td>
1313
1314 <td class="entry_range">
1315 </td>
1316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001317 <td class="entry_tags">
1318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001319 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001320 </ul>
1321 </td>
1322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001323 </tr>
1324 <tr class="entries_header">
1325 <th class="th_details" colspan="5">Details</th>
1326 </tr>
1327 <tr class="entry_cont">
1328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001329 <p>Note that even when AE is locked,<wbr/> the flash may be
1330fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1331ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001332 </td>
1333 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001334
1335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001338
1339
1340 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001341 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001342 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001343 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001344 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001345 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001346
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001347 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001348
1349 <ul class="entry_type_enum">
1350 <li>
1351 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001352 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1353the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1354<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1355<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1356device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1357a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001358 </li>
1359 <li>
1360 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001361 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1362with no flash control.<wbr/> The application's values for
1363<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1364<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1365<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1366application has control over the various
1367android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001368 </li>
1369 <li>
1370 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001371 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1372the camera's flash unit,<wbr/> firing it in low-light
1373conditions.<wbr/> The flash may be fired during a
1374precapture sequence (triggered by
1375<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1376for captures for which the
1377<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1378STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001379 </li>
1380 <li>
1381 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001382 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1383the camera's flash unit,<wbr/> always firing it for still
1384captures.<wbr/> The flash may be fired during a precapture
1385sequence (triggered by
1386<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1387be fired for captures for which the
1388<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1389STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001390 </li>
1391 <li>
1392 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001393 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1394reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1395a red eye reduction flash will fire during the
1396precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001397 </li>
1398 </ul>
1399
1400 </td> <!-- entry_type -->
1401
1402 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001403 <p>The desired mode for the camera device's
1404auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001405 </td>
1406
1407 <td class="entry_units">
1408 </td>
1409
1410 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001411 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001412 </td>
1413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001414 <td class="entry_tags">
1415 <ul class="entry_tags">
1416 <li><a href="#tag_BC">BC</a></li>
1417 </ul>
1418 </td>
1419
1420 </tr>
1421 <tr class="entries_header">
1422 <th class="th_details" colspan="5">Details</th>
1423 </tr>
1424 <tr class="entry_cont">
1425 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001426 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1427AUTO.<wbr/></p>
1428<p>When set to any of the ON modes,<wbr/> the camera device's
1429auto-exposure routine is enabled,<wbr/> overriding the
1430application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1431and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1432<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1433<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1434is selected,<wbr/> the camera device's flash unit controls are
1435also overridden.<wbr/></p>
1436<p>The FLASH modes are only available if the camera device
1437has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1438<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1439ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1440<p>When set to any of the ON modes,<wbr/> the values chosen by the
1441camera device auto-exposure routine for the overridden
1442fields for a given capture will be available in its
1443CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001444 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001446
1447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001450
1451
1452 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001454 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001458 <span class="entry_type_container">x</span>
1459
1460 <span class="entry_type_array">
1461 5 x area_count
1462 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001463 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001464
1465
1466 </td> <!-- entry_type -->
1467
1468 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001469 <p>List of areas to use for
1470metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001471 </td>
1472
1473 <td class="entry_units">
1474 </td>
1475
1476 <td class="entry_range">
1477 </td>
1478
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001479 <td class="entry_tags">
1480 <ul class="entry_tags">
1481 <li><a href="#tag_BC">BC</a></li>
1482 </ul>
1483 </td>
1484
1485 </tr>
1486 <tr class="entries_header">
1487 <th class="th_details" colspan="5">Details</th>
1488 </tr>
1489 <tr class="entry_cont">
1490 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001491 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1492xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1493specified coordinates.<wbr/></p>
1494<p>The coordinate system is based on the active pixel array,<wbr/>
1495with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001496(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1497<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 -08001498bottom-right pixel in the active pixel array.<wbr/> The weight
1499should be nonnegative.<wbr/></p>
1500<p>If all regions have 0 weight,<wbr/> then no specific metering area
1501needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001502outside 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 -08001503should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001504used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001505 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001506 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001507
1508
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001509 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1510 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001511
1512
1513 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001514 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001515 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001516 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001517 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001518 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001519 <span class="entry_type_container">x</span>
1520
1521 <span class="entry_type_array">
1522 2
1523 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001524 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001525
1526
1527 </td> <!-- entry_type -->
1528
1529 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001530 <p>Range over which fps can be adjusted to
1531maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001532 </td>
1533
1534 <td class="entry_units">
1535 </td>
1536
1537 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001538 <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 -08001539 </td>
1540
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001541 <td class="entry_tags">
1542 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001543 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001544 </ul>
1545 </td>
1546
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001547 </tr>
1548 <tr class="entries_header">
1549 <th class="th_details" colspan="5">Details</th>
1550 </tr>
1551 <tr class="entry_cont">
1552 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001553 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001554of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001555 </td>
1556 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001557
1558
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001559 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1560 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001561
1562
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001563 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001564 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001565 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001566 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001567 <td class="entry_type">
1568 <span class="entry_type_name entry_type_name_enum">byte</span>
1569
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001570 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001571
1572 <ul class="entry_type_enum">
1573 <li>
1574 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001575 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001576 </li>
1577 <li>
1578 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001579 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1580by the camera device.<wbr/> The exact effect of the precapture
1581trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001582 </li>
1583 </ul>
1584
1585 </td> <!-- entry_type -->
1586
1587 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001588 <p>Whether the camera device will trigger a precapture
1589metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001590 </td>
1591
1592 <td class="entry_units">
1593 </td>
1594
1595 <td class="entry_range">
1596 </td>
1597
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001598 <td class="entry_tags">
1599 <ul class="entry_tags">
1600 <li><a href="#tag_BC">BC</a></li>
1601 </ul>
1602 </td>
1603
1604 </tr>
1605 <tr class="entries_header">
1606 <th class="th_details" colspan="5">Details</th>
1607 </tr>
1608 <tr class="entry_cont">
1609 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001610 <p>This entry is normally set to IDLE,<wbr/> or is not
1611included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001612set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001613precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001614<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001615AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1616state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001617 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001618 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001619
1620
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001621 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1622 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001623
1624
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001625 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001626 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001627 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001628 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001629 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001630 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001631
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001632 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001633
1634 <ul class="entry_type_enum">
1635 <li>
1636 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001637 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1638<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1639application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001640 </li>
1641 <li>
1642 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001643 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1644<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
1645is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1646the autofocus trigger action is called.<wbr/> When that trigger
1647is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1648the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1649<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1650and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001651 </li>
1652 <li>
1653 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001654 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1655autofocus trigger action is called.<wbr/></p>
1656<p>When that trigger is activated,<wbr/> AF must transition to
1657ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1658NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1659position to default,<wbr/> and sets the AF state to
1660INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001661 </li>
1662 <li>
1663 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001664 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1665position continually to attempt to provide a
1666constantly-in-focus image stream.<wbr/></p>
1667<p>The focusing behavior should be suitable for good quality
1668video recording; typically this means slower focus
1669movement and no overshoots.<wbr/> When the AF trigger is not
1670involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1671and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1672states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1673the algorithm should immediately transition into
1674AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1675lens position until a cancel AF trigger is received.<wbr/></p>
1676<p>Once cancel is received,<wbr/> the algorithm should transition
1677back to INACTIVE and resume passive scan.<wbr/> Note that this
1678behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1679ongoing PASSIVE_<wbr/>SCAN must immediately be
1680canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001681 </li>
1682 <li>
1683 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001684 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1685position continually to attempt to provide a
1686constantly-in-focus image stream.<wbr/></p>
1687<p>The focusing behavior should be suitable for still image
1688capture; typically this means focusing as fast as
1689possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1690algorithm should start in INACTIVE state,<wbr/> and then
1691transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1692appropriate as it attempts to maintain focus.<wbr/> When the AF
1693trigger is activated,<wbr/> the algorithm should finish its
1694PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1695AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1696lens position until a cancel AF trigger is received.<wbr/></p>
1697<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1698should transition back to INACTIVE and then act as if it
1699has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001700 </li>
1701 <li>
1702 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001703 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1704trigger is ignored,<wbr/> AF state should always be
1705INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001706 </li>
1707 </ul>
1708
1709 </td> <!-- entry_type -->
1710
1711 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001712 <p>Whether AF is currently enabled,<wbr/> and what
1713mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001714 </td>
1715
1716 <td class="entry_units">
1717 </td>
1718
1719 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001720 <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 -08001721 </td>
1722
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001723 <td class="entry_tags">
1724 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001725 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001726 </ul>
1727 </td>
1728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001729 </tr>
1730 <tr class="entries_header">
1731 <th class="th_details" colspan="5">Details</th>
1732 </tr>
1733 <tr class="entry_cont">
1734 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001735 <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 -08001736<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1737the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1738in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001739 </td>
1740 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001741
1742
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001743 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1744 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001745
1746
1747 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001748 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001749 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001750 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001751 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001752 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001753 <span class="entry_type_container">x</span>
1754
1755 <span class="entry_type_array">
1756 5 x area_count
1757 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001758 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001759
1760
1761 </td> <!-- entry_type -->
1762
1763 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001764 <p>List of areas to use for focus
1765estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001766 </td>
1767
1768 <td class="entry_units">
1769 </td>
1770
1771 <td class="entry_range">
1772 </td>
1773
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001774 <td class="entry_tags">
1775 <ul class="entry_tags">
1776 <li><a href="#tag_BC">BC</a></li>
1777 </ul>
1778 </td>
1779
1780 </tr>
1781 <tr class="entries_header">
1782 <th class="th_details" colspan="5">Details</th>
1783 </tr>
1784 <tr class="entry_cont">
1785 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001786 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1787xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1788specified coordinates.<wbr/></p>
1789<p>The coordinate system is based on the active pixel array,<wbr/>
1790with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001791(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1792<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 -08001793bottom-right pixel in the active pixel array.<wbr/> The weight
1794should be nonnegative.<wbr/></p>
1795<p>If all regions have 0 weight,<wbr/> then no specific focus area
1796needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001797outside 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 -08001798should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001799used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001800 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001801 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001802
1803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001804 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1805 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001806
1807
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001808 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001809 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001810 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001811 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001812 <td class="entry_type">
1813 <span class="entry_type_name entry_type_name_enum">byte</span>
1814
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001815 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001816
1817 <ul class="entry_type_enum">
1818 <li>
1819 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001820 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001821 </li>
1822 <li>
1823 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001824 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001825 </li>
1826 <li>
1827 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001828 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1829state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001830 </li>
1831 </ul>
1832
1833 </td> <!-- entry_type -->
1834
1835 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001836 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001837 </td>
1838
1839 <td class="entry_units">
1840 </td>
1841
1842 <td class="entry_range">
1843 </td>
1844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001845 <td class="entry_tags">
1846 <ul class="entry_tags">
1847 <li><a href="#tag_BC">BC</a></li>
1848 </ul>
1849 </td>
1850
1851 </tr>
1852 <tr class="entries_header">
1853 <th class="th_details" colspan="5">Details</th>
1854 </tr>
1855 <tr class="entry_cont">
1856 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001857 <p>This entry is normally set to IDLE,<wbr/> or is not
1858included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001859<p>When included and set to START,<wbr/> the camera device will trigger the
1860autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1861<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1862and return to its initial AF state.<wbr/></p>
1863<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 -07001864 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001865 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001866
1867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001868 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1869 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001870
1871
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001872 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001873 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001874 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001875 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001877 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001878
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001879 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001880
1881 <ul class="entry_type_enum">
1882 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001883 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001884 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1885algorithm is free to update its parameters if in AUTO
1886mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001887 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001888 <li>
1889 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001890 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1891algorithm must not update the exposure and sensitivity
1892parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001893 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001894 </ul>
1895
1896 </td> <!-- entry_type -->
1897
1898 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001899 <p>Whether AWB is currently locked to its
1900latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001901 </td>
1902
1903 <td class="entry_units">
1904 </td>
1905
1906 <td class="entry_range">
1907 </td>
1908
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001909 <td class="entry_tags">
1910 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001911 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001912 </ul>
1913 </td>
1914
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001915 </tr>
1916 <tr class="entries_header">
1917 <th class="th_details" colspan="5">Details</th>
1918 </tr>
1919 <tr class="entry_cont">
1920 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001921 <p>Note that AWB lock is only meaningful for AUTO
1922mode; in other modes,<wbr/> AWB is already fixed to a specific
1923setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001924 </td>
1925 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001926
1927
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001928 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1929 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001930
1931
1932 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001933 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001934 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001935 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001936 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001937 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001938
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001939 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001940
1941 <ul class="entry_type_enum">
1942 <li>
1943 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001944 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1945the application-selected color transform matrix
1946(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1947(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1948device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001949 </li>
1950 <li>
1951 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001952 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1953the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1954and <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 -08001955 </li>
1956 <li>
1957 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001958 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1959the camera device uses incandescent light as the assumed scene
1960illumination for white balance.<wbr/> While the exact white balance
1961transforms are up to the camera device,<wbr/> they will approximately
1962match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001963 </li>
1964 <li>
1965 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001966 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1967the camera device uses fluorescent light as the assumed scene
1968illumination for white balance.<wbr/> While the exact white balance
1969transforms are up to the camera device,<wbr/> they will approximately
1970match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001971 </li>
1972 <li>
1973 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001974 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1975the camera device uses warm fluorescent light as the assumed scene
1976illumination for white balance.<wbr/> While the exact white balance
1977transforms are up to the camera device,<wbr/> they will approximately
1978match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001979 </li>
1980 <li>
1981 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001982 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1983the camera device uses daylight light as the assumed scene
1984illumination for white balance.<wbr/> While the exact white balance
1985transforms are up to the camera device,<wbr/> they will approximately
1986match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001987 </li>
1988 <li>
1989 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001990 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1991the camera device uses cloudy daylight light as the assumed scene
1992illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001993 </li>
1994 <li>
1995 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001996 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1997the camera device uses twilight light as the assumed scene
1998illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001999 </li>
2000 <li>
2001 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002002 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2003the camera device uses shade light as the assumed scene
2004illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002005 </li>
2006 </ul>
2007
2008 </td> <!-- entry_type -->
2009
2010 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002011 <p>Whether AWB is currently setting the color
2012transform fields,<wbr/> and what its illumination target
2013is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002014 </td>
2015
2016 <td class="entry_units">
2017 </td>
2018
2019 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002020 <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 -08002021 </td>
2022
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002023 <td class="entry_tags">
2024 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002025 <li><a href="#tag_BC">BC</a></li>
2026 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002027 </ul>
2028 </td>
2029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002030 </tr>
2031 <tr class="entries_header">
2032 <th class="th_details" colspan="5">Details</th>
2033 </tr>
2034 <tr class="entry_cont">
2035 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002036 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2037<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2038routine is enabled,<wbr/> overriding the application's selected
2039<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
2040<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2041<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2042routine is disabled.<wbr/> The applicantion manually controls the white
2043balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2044and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2045<p>When set to any other modes,<wbr/> the camera device's auto white balance
2046routine is disabled.<wbr/> The camera device uses each particular illumination
2047target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002048 </td>
2049 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002050
2051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002052 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2053 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002054
2055
2056 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002057 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002058 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002059 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002060 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002061 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002062 <span class="entry_type_container">x</span>
2063
2064 <span class="entry_type_array">
2065 5 x area_count
2066 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002067 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002068
2069
2070 </td> <!-- entry_type -->
2071
2072 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002073 <p>List of areas to use for illuminant
2074estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002075 </td>
2076
2077 <td class="entry_units">
2078 </td>
2079
2080 <td class="entry_range">
2081 </td>
2082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002083 <td class="entry_tags">
2084 <ul class="entry_tags">
2085 <li><a href="#tag_BC">BC</a></li>
2086 </ul>
2087 </td>
2088
2089 </tr>
2090 <tr class="entries_header">
2091 <th class="th_details" colspan="5">Details</th>
2092 </tr>
2093 <tr class="entry_cont">
2094 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002095 <p>Only used in AUTO mode.<wbr/></p>
2096<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
2097xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
2098specified coordinates.<wbr/></p>
2099<p>The coordinate system is based on the active pixel array,<wbr/>
2100with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002101(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2102<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 -08002103bottom-right pixel in the active pixel array.<wbr/> The weight
2104should be nonnegative.<wbr/></p>
2105<p>If all regions have 0 weight,<wbr/> then no specific metering area
2106needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002107outside 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 -08002108should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08002109used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002110 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002111 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002112
2113
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002114 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2115 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002116
2117
2118 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002119 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002120 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002121 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002122 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002123 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002124
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002125 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002126
2127 <ul class="entry_type_enum">
2128 <li>
2129 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002130 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2131categories.<wbr/> Default to preview-like
2132behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002133 </li>
2134 <li>
2135 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002136 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2137precapture trigger may be used to start off a metering
2138w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002139 </li>
2140 <li>
2141 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002142 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2143usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002144 </li>
2145 <li>
2146 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002147 <span class="entry_type_enum_notes"><p>This request is for a video recording
2148usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002149 </li>
2150 <li>
2151 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002152 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2153image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002154 </li>
2155 <li>
2156 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002157 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2158application will stream full-resolution images and
2159reprocess one or several later for a final
2160capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002161 </li>
2162 </ul>
2163
2164 </td> <!-- entry_type -->
2165
2166 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002167 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2168auto-focus,<wbr/> auto-white balance) routines about the purpose
2169of this capture,<wbr/> to help the camera device to decide optimal 3A
2170strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002171 </td>
2172
2173 <td class="entry_units">
2174 </td>
2175
2176 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002177 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002178 </td>
2179
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002180 <td class="entry_tags">
2181 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002182 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002183 </ul>
2184 </td>
2185
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002186 </tr>
2187 <tr class="entries_header">
2188 <th class="th_details" colspan="5">Details</th>
2189 </tr>
2190 <tr class="entry_cont">
2191 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002192 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2193and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002194 </td>
2195 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002196
2197
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002198 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2199 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002200
2201
2202 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002203 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002204 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002205 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002206 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002207 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002208
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002209 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002210
2211 <ul class="entry_type_enum">
2212 <li>
2213 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002214 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002215 </li>
2216 <li>
2217 <span class="entry_type_enum_name">MONO</span>
2218 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002219 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2220a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002221 </li>
2222 <li>
2223 <span class="entry_type_enum_name">NEGATIVE</span>
2224 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002225 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2226are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002227 </li>
2228 <li>
2229 <span class="entry_type_enum_name">SOLARIZE</span>
2230 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002231 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2232image is wholly or partially reversed in
2233tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002234 </li>
2235 <li>
2236 <span class="entry_type_enum_name">SEPIA</span>
2237 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002238 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2239gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002240 </li>
2241 <li>
2242 <span class="entry_type_enum_name">POSTERIZE</span>
2243 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002244 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2245discrete regions of tone rather than a continuous
2246gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002247 </li>
2248 <li>
2249 <span class="entry_type_enum_name">WHITEBOARD</span>
2250 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002251 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2252as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002253 </li>
2254 <li>
2255 <span class="entry_type_enum_name">BLACKBOARD</span>
2256 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002257 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2258as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002259 </li>
2260 <li>
2261 <span class="entry_type_enum_name">AQUA</span>
2262 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002263 <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 -08002264 </li>
2265 </ul>
2266
2267 </td> <!-- entry_type -->
2268
2269 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002270 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002271 </td>
2272
2273 <td class="entry_units">
2274 </td>
2275
2276 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002277 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002278 </td>
2279
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002280 <td class="entry_tags">
2281 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002282 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002283 </ul>
2284 </td>
2285
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002286 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002287 <tr class="entries_header">
2288 <th class="th_details" colspan="5">Details</th>
2289 </tr>
2290 <tr class="entry_cont">
2291 <td class="entry_details" colspan="5">
2292 <p>When this mode is set,<wbr/> a color effect will be applied
2293to images produced by the camera device.<wbr/> The interpretation
2294and implementation of these color effects is left to the
2295implementor of the camera device,<wbr/> and should not be
2296depended on to be consistent (or present) across all
2297devices.<wbr/></p>
2298<p>A color effect will only be applied if
2299<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2300 </td>
2301 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002302
2303
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002304 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2305 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002306
2307
2308 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002309 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002310 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002311 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002312 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002313 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002314
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002315 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002316
2317 <ul class="entry_type_enum">
2318 <li>
2319 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002320 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2321routines are disabled,<wbr/> no other settings in
2322android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002323 </li>
2324 <li>
2325 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002326 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2327Manual control of capture parameters is disabled.<wbr/> All
2328controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2329effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002330 </li>
2331 <li>
2332 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002333 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2334control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2335controls; the HAL must ignore those settings while
2336USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2337scene mode).<wbr/> Other control entries are still active.<wbr/>
2338This setting can only be used if availableSceneModes !=
2339UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002340 </li>
2341 </ul>
2342
2343 </td> <!-- entry_type -->
2344
2345 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002346 <p>Overall mode of 3A control
2347routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002348 </td>
2349
2350 <td class="entry_units">
2351 </td>
2352
2353 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002354 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002355 </td>
2356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002357 <td class="entry_tags">
2358 <ul class="entry_tags">
2359 <li><a href="#tag_BC">BC</a></li>
2360 </ul>
2361 </td>
2362
2363 </tr>
2364 <tr class="entries_header">
2365 <th class="th_details" colspan="5">Details</th>
2366 </tr>
2367 <tr class="entry_cont">
2368 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002369 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002370by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002371capture parameters itself.<wbr/></p>
2372<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002373android.<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 -08002374<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002375android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002376one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002377as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002378<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 -08002379 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002380 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002381
2382
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002383 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2384 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002385
2386
2387 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002388 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002389 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002390 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002391 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002392 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002393
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002394 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002395
2396 <ul class="entry_type_enum">
2397 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002398 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002399 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002400 <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 -08002401 </li>
2402 <li>
2403 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002404 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2405detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2406auto-exposure routines.<wbr/> If face detection statistics are
2407disabled (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/>
2408this should still operate correctly (but will not return
2409face detection statistics to the framework).<wbr/></p>
2410<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2411<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2412remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002413 </li>
2414 <li>
2415 <span class="entry_type_enum_name">ACTION</span>
2416 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002417 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2418Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002419 </li>
2420 <li>
2421 <span class="entry_type_enum_name">PORTRAIT</span>
2422 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002423 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002424 </li>
2425 <li>
2426 <span class="entry_type_enum_name">LANDSCAPE</span>
2427 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002428 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002429 </li>
2430 <li>
2431 <span class="entry_type_enum_name">NIGHT</span>
2432 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002433 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002434 </li>
2435 <li>
2436 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2437 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002438 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2439settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002440 </li>
2441 <li>
2442 <span class="entry_type_enum_name">THEATRE</span>
2443 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002444 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2445remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002446 </li>
2447 <li>
2448 <span class="entry_type_enum_name">BEACH</span>
2449 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002450 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002451 </li>
2452 <li>
2453 <span class="entry_type_enum_name">SNOW</span>
2454 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002455 <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 -08002456 </li>
2457 <li>
2458 <span class="entry_type_enum_name">SUNSET</span>
2459 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002460 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002461 </li>
2462 <li>
2463 <span class="entry_type_enum_name">STEADYPHOTO</span>
2464 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002465 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2466device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002467 </li>
2468 <li>
2469 <span class="entry_type_enum_name">FIREWORKS</span>
2470 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002471 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002472 </li>
2473 <li>
2474 <span class="entry_type_enum_name">SPORTS</span>
2475 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002476 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2477Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002478 </li>
2479 <li>
2480 <span class="entry_type_enum_name">PARTY</span>
2481 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002482 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2483people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002484 </li>
2485 <li>
2486 <span class="entry_type_enum_name">CANDLELIGHT</span>
2487 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002488 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2489is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002490 </li>
2491 <li>
2492 <span class="entry_type_enum_name">BARCODE</span>
2493 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002494 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2495for use by camera applications that wish to read the
2496barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002497 </li>
2498 </ul>
2499
2500 </td> <!-- entry_type -->
2501
2502 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002503 <p>A camera mode optimized for conditions typical in a particular
2504capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002505 </td>
2506
2507 <td class="entry_units">
2508 </td>
2509
2510 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002511 <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 -08002512 </td>
2513
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002514 <td class="entry_tags">
2515 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002516 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002517 </ul>
2518 </td>
2519
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002520 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002521 <tr class="entries_header">
2522 <th class="th_details" colspan="5">Details</th>
2523 </tr>
2524 <tr class="entry_cont">
2525 <td class="entry_details" colspan="5">
2526 <p>This is the mode that that is active when
2527<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/>
2528these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2529<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>
2530<p>The interpretation and implementation of these scene modes is left
2531to the implementor of the camera device.<wbr/> Their behavior will not be
2532consistent across all devices,<wbr/> and any given device may only implement
2533a subset of these modes.<wbr/></p>
2534 </td>
2535 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002536
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002537 <tr class="entries_header">
2538 <th class="th_details" colspan="5">HAL Implementation Details</th>
2539 </tr>
2540 <tr class="entry_cont">
2541 <td class="entry_details" colspan="5">
2542 <p>HAL implementations that include scene modes are expected to provide
2543the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2544<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
2545<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2546 </td>
2547 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002549 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2550 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002551
2552
2553 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002554 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002555 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002556 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002557 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002558 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002559
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002560 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002561
2562 <ul class="entry_type_enum">
2563 <li>
2564 <span class="entry_type_enum_name">OFF</span>
2565 </li>
2566 <li>
2567 <span class="entry_type_enum_name">ON</span>
2568 </li>
2569 </ul>
2570
2571 </td> <!-- entry_type -->
2572
2573 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002574 <p>Whether video stabilization is
2575active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002576 </td>
2577
2578 <td class="entry_units">
2579 </td>
2580
2581 <td class="entry_range">
2582 </td>
2583
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002584 <td class="entry_tags">
2585 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002586 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002587 </ul>
2588 </td>
2589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002590 </tr>
2591 <tr class="entries_header">
2592 <th class="th_details" colspan="5">Details</th>
2593 </tr>
2594 <tr class="entry_cont">
2595 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002596 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002597<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 -08002598stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002599 </td>
2600 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002601
2602
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002603 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2604 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002605
2606
2607
2608 <!-- end of kind -->
2609 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002610 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002611
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002612 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002613 <tr>
2614 <th class="th_name">Property Name</th>
2615 <th class="th_type">Type</th>
2616 <th class="th_description">Description</th>
2617 <th class="th_units">Units</th>
2618 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002619 <th class="th_tags">Tags</th>
2620 </tr>
2621 </thead>
2622
2623 <tbody>
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002635 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002636 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002637 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002638 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002639 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002640 <span class="entry_type_container">x</span>
2641
2642 <span class="entry_type_array">
2643 n
2644 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002645 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002646 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002647
2648
2649 </td> <!-- entry_type -->
2650
2651 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002652 <p>The set of auto-exposure antibanding modes that are
2653supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002654 </td>
2655
2656 <td class="entry_units">
2657 </td>
2658
2659 <td class="entry_range">
2660 </td>
2661
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002662 <td class="entry_tags">
2663 </td>
2664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002665 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002666 <tr class="entries_header">
2667 <th class="th_details" colspan="5">Details</th>
2668 </tr>
2669 <tr class="entry_cont">
2670 <td class="entry_details" colspan="5">
2671 <p>Not all of the auto-exposure anti-banding modes may be
2672supported by a given camera device.<wbr/> This field lists the
2673valid anti-banding modes that the application may request
2674for this camera device; they must include AUTO.<wbr/></p>
2675 </td>
2676 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002677
2678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002679 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2680 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002681
2682
2683 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002684 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002685 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002686 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002687 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002688 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002689 <span class="entry_type_container">x</span>
2690
2691 <span class="entry_type_array">
2692 n
2693 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002694 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002695 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002696
2697
2698 </td> <!-- entry_type -->
2699
2700 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002701 <p>The set of auto-exposure modes that are supported by this
2702camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002703 </td>
2704
2705 <td class="entry_units">
2706 </td>
2707
2708 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002709 </td>
2710
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002711 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002712 <ul class="entry_tags">
2713 <li><a href="#tag_BC">BC</a></li>
2714 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002715 </td>
2716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002717 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002718 <tr class="entries_header">
2719 <th class="th_details" colspan="5">Details</th>
2720 </tr>
2721 <tr class="entry_cont">
2722 <td class="entry_details" colspan="5">
2723 <p>Not all the auto-exposure modes may be supported by a
2724given camera device,<wbr/> especially if no flash unit is
2725available.<wbr/> This entry lists the valid modes for
2726<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2727<p>All camera devices support ON,<wbr/> and all camera devices with
2728flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2729ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2730<p>Full-capability camera devices always support OFF mode,<wbr/>
2731which enables application control of camera exposure time,<wbr/>
2732sensitivity,<wbr/> and frame duration.<wbr/></p>
2733 </td>
2734 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002735
2736
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002737 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2738 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002739
2740
2741 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002742 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002743 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002744 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002745 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002746 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002747 <span class="entry_type_container">x</span>
2748
2749 <span class="entry_type_array">
2750 2 x n
2751 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002752 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002753 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002754
2755
2756 </td> <!-- entry_type -->
2757
2758 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002759 <p>List of frame rate ranges supported by the
2760AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002761 </td>
2762
2763 <td class="entry_units">
2764 </td>
2765
2766 <td class="entry_range">
2767 </td>
2768
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002769 <td class="entry_tags">
2770 </td>
2771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002772 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002773
2774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002775 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2776 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002777
2778
2779 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002780 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002781 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002782 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002783 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002784 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002785 <span class="entry_type_container">x</span>
2786
2787 <span class="entry_type_array">
2788 2
2789 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002790 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002791
2792
2793 </td> <!-- entry_type -->
2794
2795 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002796 <p>Maximum and minimum exposure compensation
2797setting,<wbr/> in counts of
2798android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002799 </td>
2800
2801 <td class="entry_units">
2802 </td>
2803
2804 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002805 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2806size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002807 </td>
2808
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002809 <td class="entry_tags">
2810 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002811 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002812 </ul>
2813 </td>
2814
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002815 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002816
2817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002818 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2819 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002820
2821
2822 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002823 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002824 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002825 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002826 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002827 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002828
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002829 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002830
2831
2832 </td> <!-- entry_type -->
2833
2834 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002835 <p>Smallest step by which exposure compensation
2836can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002837 </td>
2838
2839 <td class="entry_units">
2840 </td>
2841
2842 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002843 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002844 </td>
2845
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002846 <td class="entry_tags">
2847 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002848 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002849 </ul>
2850 </td>
2851
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002852 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002853
2854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002855 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2856 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002857
2858
2859 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002860 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002861 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002862 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002863 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002864 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002865 <span class="entry_type_container">x</span>
2866
2867 <span class="entry_type_array">
2868 n
2869 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002870 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002871 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002872
2873
2874 </td> <!-- entry_type -->
2875
2876 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002877 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002878selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002879 </td>
2880
2881 <td class="entry_units">
2882 </td>
2883
2884 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002885 </td>
2886
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002887 <td class="entry_tags">
2888 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002889 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002890 </ul>
2891 </td>
2892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002893 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002894 <tr class="entries_header">
2895 <th class="th_details" colspan="5">Details</th>
2896 </tr>
2897 <tr class="entry_cont">
2898 <td class="entry_details" colspan="5">
2899 <p>Not all the auto-focus modes may be supported by a
2900given camera device.<wbr/> This entry lists the valid modes for
2901<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2902<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2903adjustable 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>)
2904will support AUTO mode.<wbr/></p>
2905 </td>
2906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002907
2908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002911
2912
2913 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002915 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002918 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002919 <span class="entry_type_container">x</span>
2920
2921 <span class="entry_type_array">
2922 n
2923 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002924 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002925 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002926
2927
2928 </td> <!-- entry_type -->
2929
2930 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002931 <p>List containing the subset of color effects
2932specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2933this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002934 </td>
2935
2936 <td class="entry_units">
2937 </td>
2938
2939 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002940 <p>Any subset of enums from those specified in
2941<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 -08002942 </td>
2943
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002944 <td class="entry_tags">
2945 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002946 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002947 </ul>
2948 </td>
2949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002950 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002951 <tr class="entries_header">
2952 <th class="th_details" colspan="5">Details</th>
2953 </tr>
2954 <tr class="entry_cont">
2955 <td class="entry_details" colspan="5">
2956 <p>This list contains the color effect modes that can be applied to
2957images produced by the camera device.<wbr/> Only modes that have
2958been fully implemented for the current device may be included here.<wbr/>
2959Implementations are not expected to be consistent across all devices.<wbr/>
2960If no color effect modes are available for a device,<wbr/> this should
2961simply be set to OFF.<wbr/></p>
2962<p>A color effect will only be applied if
2963<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2964 </td>
2965 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002966
2967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2969 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002970
2971
2972 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002973 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002974 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002975 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002976 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002977 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002978 <span class="entry_type_container">x</span>
2979
2980 <span class="entry_type_array">
2981 n
2982 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002983 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002984 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002985
2986
2987 </td> <!-- entry_type -->
2988
2989 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002990 <p>List containing a subset of scene modes
2991specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002992 </td>
2993
2994 <td class="entry_units">
2995 </td>
2996
2997 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002998 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
2999not including DISABLED,<wbr/> or solely DISABLED if no
3000scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3001if 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 -08003002 </td>
3003
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003004 <td class="entry_tags">
3005 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003006 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003007 </ul>
3008 </td>
3009
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003010 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003011 <tr class="entries_header">
3012 <th class="th_details" colspan="5">Details</th>
3013 </tr>
3014 <tr class="entry_cont">
3015 <td class="entry_details" colspan="5">
3016 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3017Only scene modes that have been fully implemented for the
3018camera device may be included here.<wbr/> Implementations are not expected
3019to be consistent across all devices.<wbr/> If no scene modes are supported
3020by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3021 </td>
3022 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003023
3024
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003025 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3026 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003027
3028
3029 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003030 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003031 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003032 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003033 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003034 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003035 <span class="entry_type_container">x</span>
3036
3037 <span class="entry_type_array">
3038 n
3039 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003040 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003041 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003042
3043
3044 </td> <!-- entry_type -->
3045
3046 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003047 <p>List of video stabilization modes that can
3048be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003049 </td>
3050
3051 <td class="entry_units">
3052 </td>
3053
3054 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003055 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003056 </td>
3057
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003058 <td class="entry_tags">
3059 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003060 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003061 </ul>
3062 </td>
3063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003064 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003065
3066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003067 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3068 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003069
3070
3071 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003072 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003073 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003074 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003075 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003076 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003077 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003078
Alex Raya4251d92013-04-30 16:43:44 -07003079 <span class="entry_type_array">
3080 n
3081 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003082 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003083 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003084
3085
3086 </td> <!-- entry_type -->
3087
3088 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003089 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3090that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003091 </td>
3092
3093 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003094 </td>
3095
3096 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003097 </td>
3098
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003099 <td class="entry_tags">
3100 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003101 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102 </ul>
3103 </td>
3104
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003105 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003106 <tr class="entries_header">
3107 <th class="th_details" colspan="5">Details</th>
3108 </tr>
3109 <tr class="entry_cont">
3110 <td class="entry_details" colspan="5">
3111 <p>Not all the auto-white-balance modes may be supported by a
3112given camera device.<wbr/> This entry lists the valid modes for
3113<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3114<p>All camera devices will support ON mode.<wbr/></p>
3115<p>Full-capability camera devices will always support OFF mode,<wbr/>
3116which enables application control of white balance,<wbr/> by using
3117<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>
3118 </td>
3119 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003120
3121
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003122 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3123 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003124
3125
3126 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003127 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003128 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003129 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003130 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003131 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003132
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003133 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003134
3135
3136 </td> <!-- entry_type -->
3137
3138 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003139 <p>For AE,<wbr/> AWB,<wbr/> and AF,<wbr/> how many individual
3140regions can be listed for metering?</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003141 </td>
3142
3143 <td class="entry_units">
3144 </td>
3145
3146 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08003147 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003148 </td>
3149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003150 <td class="entry_tags">
3151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003152 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003153 </ul>
3154 </td>
3155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003156 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003157
3158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003159 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3160 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003161
3162
3163 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003164 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003165 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003166 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003167 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003168 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003169 <span class="entry_type_container">x</span>
3170
3171 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003172 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003173 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003174 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003175
3176
3177 </td> <!-- entry_type -->
3178
3179 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003180 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3181settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003182 </td>
3183
3184 <td class="entry_units">
3185 </td>
3186
3187 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003188 <p>For each available scene mode,<wbr/> the list must contain three
3189entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3190<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
3191by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3192where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003193 </td>
3194
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003195 <td class="entry_tags">
3196 <ul class="entry_tags">
3197 <li><a href="#tag_BC">BC</a></li>
3198 </ul>
3199 </td>
3200
3201 </tr>
3202 <tr class="entries_header">
3203 <th class="th_details" colspan="5">Details</th>
3204 </tr>
3205 <tr class="entry_cont">
3206 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003207 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3208to 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/>
3209and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3210that scene mode.<wbr/></p>
3211<p>The order of this list matches that of availableSceneModes,<wbr/>
3212with 3 entries for each mode.<wbr/> The overrides listed
3213for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3214mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3215<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
3216used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3217is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3218overrides should be set to 0.<wbr/></p>
3219<p>For example,<wbr/> if availableSceneModes contains
3220<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3221expects sceneModeOverrides to have 9 entries formatted like:
3222<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3223ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003224 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003225 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003226
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003227 <tr class="entries_header">
3228 <th class="th_details" colspan="5">HAL Implementation Details</th>
3229 </tr>
3230 <tr class="entry_cont">
3231 <td class="entry_details" colspan="5">
3232 <p>To maintain backward compatibility,<wbr/> this list will be made available
3233in the static metadata of the camera service.<wbr/> The camera service will
3234use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3235<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
3236mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3237 </td>
3238 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003239
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003240 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3241 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003242
3243
3244
3245 <!-- end of kind -->
3246 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003247 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003248
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003249 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003250 <tr>
3251 <th class="th_name">Property Name</th>
3252 <th class="th_type">Type</th>
3253 <th class="th_description">Description</th>
3254 <th class="th_units">Units</th>
3255 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003256 <th class="th_tags">Tags</th>
3257 </tr>
3258 </thead>
3259
3260 <tbody>
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003272 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003273 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003274 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003275 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003276 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003277
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003278 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003279
3280
3281 </td> <!-- entry_type -->
3282
3283 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003284 <p>The ID sent with the latest
3285CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003286 </td>
3287
3288 <td class="entry_units">
3289 </td>
3290
3291 <td class="entry_range">
3292 </td>
3293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003294 <td class="entry_tags">
3295 </td>
3296
3297 </tr>
3298 <tr class="entries_header">
3299 <th class="th_details" colspan="5">Details</th>
3300 </tr>
3301 <tr class="entry_cont">
3302 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003303 <p>Must be 0 if no
3304CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3305by HAL.<wbr/> Always updated even if AE algorithm ignores the
3306trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003307 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003308 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003309
3310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3312 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003313
3314
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003315 <tr class="entry" id="dynamic_android.control.aeMode">
3316 <td class="entry_name" rowspan="3">
3317 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3318 </td>
3319 <td class="entry_type">
3320 <span class="entry_type_name entry_type_name_enum">byte</span>
3321
3322 <span class="entry_type_visibility"> [public]</span>
3323
3324 <ul class="entry_type_enum">
3325 <li>
3326 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003327 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3328the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3329<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3330<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3331device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3332a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003333 </li>
3334 <li>
3335 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003336 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3337with no flash control.<wbr/> The application's values for
3338<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3339<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3340<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3341application has control over the various
3342android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003343 </li>
3344 <li>
3345 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003346 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3347the camera's flash unit,<wbr/> firing it in low-light
3348conditions.<wbr/> The flash may be fired during a
3349precapture sequence (triggered by
3350<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3351for captures for which the
3352<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3353STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003354 </li>
3355 <li>
3356 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003357 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3358the camera's flash unit,<wbr/> always firing it for still
3359captures.<wbr/> The flash may be fired during a precapture
3360sequence (triggered by
3361<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3362be fired for captures for which the
3363<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3364STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003365 </li>
3366 <li>
3367 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003368 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3369reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3370a red eye reduction flash will fire during the
3371precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003372 </li>
3373 </ul>
3374
3375 </td> <!-- entry_type -->
3376
3377 <td class="entry_description">
3378 <p>The desired mode for the camera device's
3379auto-exposure routine.<wbr/></p>
3380 </td>
3381
3382 <td class="entry_units">
3383 </td>
3384
3385 <td class="entry_range">
3386 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3387 </td>
3388
3389 <td class="entry_tags">
3390 <ul class="entry_tags">
3391 <li><a href="#tag_BC">BC</a></li>
3392 </ul>
3393 </td>
3394
3395 </tr>
3396 <tr class="entries_header">
3397 <th class="th_details" colspan="5">Details</th>
3398 </tr>
3399 <tr class="entry_cont">
3400 <td class="entry_details" colspan="5">
3401 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3402AUTO.<wbr/></p>
3403<p>When set to any of the ON modes,<wbr/> the camera device's
3404auto-exposure routine is enabled,<wbr/> overriding the
3405application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3406and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3407<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3408<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3409is selected,<wbr/> the camera device's flash unit controls are
3410also overridden.<wbr/></p>
3411<p>The FLASH modes are only available if the camera device
3412has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3413<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3414ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3415<p>When set to any of the ON modes,<wbr/> the values chosen by the
3416camera device auto-exposure routine for the overridden
3417fields for a given capture will be available in its
3418CaptureResult.<wbr/></p>
3419 </td>
3420 </tr>
3421
3422
3423 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3424 <!-- end of entry -->
3425
3426
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003427 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003428 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003429 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003430 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003431 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003432 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003433 <span class="entry_type_container">x</span>
3434
3435 <span class="entry_type_array">
3436 5 x area_count
3437 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003438 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003439
3440
3441 </td> <!-- entry_type -->
3442
3443 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003444 <p>List of areas to use for
3445metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003446 </td>
3447
3448 <td class="entry_units">
3449 </td>
3450
3451 <td class="entry_range">
3452 </td>
3453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003454 <td class="entry_tags">
3455 <ul class="entry_tags">
3456 <li><a href="#tag_BC">BC</a></li>
3457 </ul>
3458 </td>
3459
3460 </tr>
3461 <tr class="entries_header">
3462 <th class="th_details" colspan="5">Details</th>
3463 </tr>
3464 <tr class="entry_cont">
3465 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003466 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3467xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3468specified coordinates.<wbr/></p>
3469<p>The coordinate system is based on the active pixel array,<wbr/>
3470with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003471(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3472<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 -08003473bottom-right pixel in the active pixel array.<wbr/> The weight
3474should be nonnegative.<wbr/></p>
3475<p>If all regions have 0 weight,<wbr/> then no specific metering area
3476needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003477outside 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 -08003478should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003479used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003480 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003481 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003482
3483
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003484 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3485 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003486
3487
3488 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003489 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003490 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003491 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003492 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003493 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003494
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003495 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003496
3497 <ul class="entry_type_enum">
3498 <li>
3499 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003500 <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 -08003501this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003502 </li>
3503 <li>
3504 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003505 <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 -08003506for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003507 </li>
3508 <li>
3509 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003510 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003511current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003512 </li>
3513 <li>
3514 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003515 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003516 </li>
3517 <li>
3518 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003519 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3520needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003521capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003522 </li>
3523 <li>
3524 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003525 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003526(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3527and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003528completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003529FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003530 </li>
3531 </ul>
3532
3533 </td> <!-- entry_type -->
3534
3535 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003536 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003537 </td>
3538
3539 <td class="entry_units">
3540 </td>
3541
3542 <td class="entry_range">
3543 </td>
3544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003545 <td class="entry_tags">
3546 </td>
3547
3548 </tr>
3549 <tr class="entries_header">
3550 <th class="th_details" colspan="5">Details</th>
3551 </tr>
3552 <tr class="entry_cont">
3553 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003554 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3555resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3556or <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
3557the algorithm states to INACTIVE.<wbr/></p>
3558<p>The camera device can do several state transitions between two results,<wbr/> if it is
3559allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3560seen in a result.<wbr/></p>
3561<p>The state in the result is the state for this image (in sync with this image): if
3562AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3563be good to use.<wbr/></p>
3564<p>Below are state transition tables for different AE modes.<wbr/></p>
3565<table>
3566<thead>
3567<tr>
3568<th align="center">State</th>
3569<th align="center">Transition Cause</th>
3570<th align="center">New State</th>
3571<th align="center">Notes</th>
3572</tr>
3573</thead>
3574<tbody>
3575<tr>
3576<td align="center">INACTIVE</td>
3577<td align="center"></td>
3578<td align="center">INACTIVE</td>
3579<td align="center">Camera device auto exposure algorithm is disabled</td>
3580</tr>
3581</tbody>
3582</table>
3583<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3584<table>
3585<thead>
3586<tr>
3587<th align="center">State</th>
3588<th align="center">Transition Cause</th>
3589<th align="center">New State</th>
3590<th align="center">Notes</th>
3591</tr>
3592</thead>
3593<tbody>
3594<tr>
3595<td align="center">INACTIVE</td>
3596<td align="center">Camera device initiates AE scan</td>
3597<td align="center">SEARCHING</td>
3598<td align="center">Values changing</td>
3599</tr>
3600<tr>
3601<td align="center">INACTIVE</td>
3602<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3603<td align="center">LOCKED</td>
3604<td align="center">Values locked</td>
3605</tr>
3606<tr>
3607<td align="center">SEARCHING</td>
3608<td align="center">Camera device finishes AE scan</td>
3609<td align="center">CONVERGED</td>
3610<td align="center">Good values,<wbr/> not changing</td>
3611</tr>
3612<tr>
3613<td align="center">SEARCHING</td>
3614<td align="center">Camera device finishes AE scan</td>
3615<td align="center">FLASH_<wbr/>REQUIRED</td>
3616<td align="center">Converged but too dark w/<wbr/>o flash</td>
3617</tr>
3618<tr>
3619<td align="center">SEARCHING</td>
3620<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3621<td align="center">LOCKED</td>
3622<td align="center">Values locked</td>
3623</tr>
3624<tr>
3625<td align="center">CONVERGED</td>
3626<td align="center">Camera device initiates AE scan</td>
3627<td align="center">SEARCHING</td>
3628<td align="center">Values changing</td>
3629</tr>
3630<tr>
3631<td align="center">CONVERGED</td>
3632<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3633<td align="center">LOCKED</td>
3634<td align="center">Values locked</td>
3635</tr>
3636<tr>
3637<td align="center">FLASH_<wbr/>REQUIRED</td>
3638<td align="center">Camera device initiates AE scan</td>
3639<td align="center">SEARCHING</td>
3640<td align="center">Values changing</td>
3641</tr>
3642<tr>
3643<td align="center">FLASH_<wbr/>REQUIRED</td>
3644<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3645<td align="center">LOCKED</td>
3646<td align="center">Values locked</td>
3647</tr>
3648<tr>
3649<td align="center">LOCKED</td>
3650<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3651<td align="center">SEARCHING</td>
3652<td align="center">Values not good after unlock</td>
3653</tr>
3654<tr>
3655<td align="center">LOCKED</td>
3656<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3657<td align="center">CONVERGED</td>
3658<td align="center">Values good after unlock</td>
3659</tr>
3660<tr>
3661<td align="center">LOCKED</td>
3662<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3663<td align="center">FLASH_<wbr/>REQUIRED</td>
3664<td align="center">Exposure good,<wbr/> but too dark</td>
3665</tr>
3666<tr>
3667<td align="center">PRECAPTURE</td>
3668<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3669<td align="center">CONVERGED</td>
3670<td align="center">Ready for high-quality capture</td>
3671</tr>
3672<tr>
3673<td align="center">PRECAPTURE</td>
3674<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3675<td align="center">LOCKED</td>
3676<td align="center">Ready for high-quality capture</td>
3677</tr>
3678<tr>
3679<td align="center">Any state</td>
3680<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3681<td align="center">PRECAPTURE</td>
3682<td align="center">Start AE precapture metering sequence</td>
3683</tr>
3684</tbody>
3685</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003686 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003687 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003688
3689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003690 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3691 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003692
3693
3694 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003695 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003696 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003697 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003698 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003699 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003700
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003701 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003702
3703 <ul class="entry_type_enum">
3704 <li>
3705 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003706 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3707<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3708application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003709 </li>
3710 <li>
3711 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003712 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3713<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
3714is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3715the autofocus trigger action is called.<wbr/> When that trigger
3716is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3717the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3718<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3719and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003720 </li>
3721 <li>
3722 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003723 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3724autofocus trigger action is called.<wbr/></p>
3725<p>When that trigger is activated,<wbr/> AF must transition to
3726ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3727NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3728position to default,<wbr/> and sets the AF state to
3729INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003730 </li>
3731 <li>
3732 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003733 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3734position continually to attempt to provide a
3735constantly-in-focus image stream.<wbr/></p>
3736<p>The focusing behavior should be suitable for good quality
3737video recording; typically this means slower focus
3738movement and no overshoots.<wbr/> When the AF trigger is not
3739involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3740and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3741states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3742the algorithm should immediately transition into
3743AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3744lens position until a cancel AF trigger is received.<wbr/></p>
3745<p>Once cancel is received,<wbr/> the algorithm should transition
3746back to INACTIVE and resume passive scan.<wbr/> Note that this
3747behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3748ongoing PASSIVE_<wbr/>SCAN must immediately be
3749canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003750 </li>
3751 <li>
3752 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003753 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3754position continually to attempt to provide a
3755constantly-in-focus image stream.<wbr/></p>
3756<p>The focusing behavior should be suitable for still image
3757capture; typically this means focusing as fast as
3758possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3759algorithm should start in INACTIVE state,<wbr/> and then
3760transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3761appropriate as it attempts to maintain focus.<wbr/> When the AF
3762trigger is activated,<wbr/> the algorithm should finish its
3763PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3764AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3765lens position until a cancel AF trigger is received.<wbr/></p>
3766<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3767should transition back to INACTIVE and then act as if it
3768has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003769 </li>
3770 <li>
3771 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003772 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3773trigger is ignored,<wbr/> AF state should always be
3774INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003775 </li>
3776 </ul>
3777
3778 </td> <!-- entry_type -->
3779
3780 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003781 <p>Whether AF is currently enabled,<wbr/> and what
3782mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003783 </td>
3784
3785 <td class="entry_units">
3786 </td>
3787
3788 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003789 <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 -08003790 </td>
3791
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003792 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003793 <ul class="entry_tags">
3794 <li><a href="#tag_BC">BC</a></li>
3795 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003796 </td>
3797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003798 </tr>
3799 <tr class="entries_header">
3800 <th class="th_details" colspan="5">Details</th>
3801 </tr>
3802 <tr class="entry_cont">
3803 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003804 <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 -08003805<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3806the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3807in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003808 </td>
3809 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003810
3811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003812 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3813 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003814
3815
3816 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003817 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003818 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003819 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003820 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003821 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003822 <span class="entry_type_container">x</span>
3823
3824 <span class="entry_type_array">
3825 5 x area_count
3826 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003827 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003828
3829
3830 </td> <!-- entry_type -->
3831
3832 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003833 <p>List of areas to use for focus
3834estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003835 </td>
3836
3837 <td class="entry_units">
3838 </td>
3839
3840 <td class="entry_range">
3841 </td>
3842
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003843 <td class="entry_tags">
3844 <ul class="entry_tags">
3845 <li><a href="#tag_BC">BC</a></li>
3846 </ul>
3847 </td>
3848
3849 </tr>
3850 <tr class="entries_header">
3851 <th class="th_details" colspan="5">Details</th>
3852 </tr>
3853 <tr class="entry_cont">
3854 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003855 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3856xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3857specified coordinates.<wbr/></p>
3858<p>The coordinate system is based on the active pixel array,<wbr/>
3859with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003860(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3861<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 -08003862bottom-right pixel in the active pixel array.<wbr/> The weight
3863should be nonnegative.<wbr/></p>
3864<p>If all regions have 0 weight,<wbr/> then no specific focus area
3865needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003866outside 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 -08003867should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003868used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003869 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003870 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003871
3872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003873 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3874 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003875
3876
3877 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003878 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003879 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003880 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003881 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003882 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003883
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003884 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003885
3886 <ul class="entry_type_enum">
3887 <li>
3888 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003889 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3890to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3891this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003892 </li>
3893 <li>
3894 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003895 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3896currently doing an AF scan initiated by a continuous
3897autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003898 </li>
3899 <li>
3900 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003901 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3902believes it is in focus,<wbr/> but may restart scanning at
3903any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003904 </li>
3905 <li>
3906 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003907 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3908an AF scan because it was triggered by AF
3909trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003910 </li>
3911 <li>
3912 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003913 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3914believes it is focused correctly and is
3915locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003916 </li>
3917 <li>
3918 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003919 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3920failed to focus successfully and is
3921locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003922 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003923 <li>
3924 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003925 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3926passive scan without finding focus,<wbr/> and may restart
3927scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003928 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003929 </ul>
3930
3931 </td> <!-- entry_type -->
3932
3933 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003934 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003935 </td>
3936
3937 <td class="entry_units">
3938 </td>
3939
3940 <td class="entry_range">
3941 </td>
3942
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003943 <td class="entry_tags">
3944 </td>
3945
3946 </tr>
3947 <tr class="entries_header">
3948 <th class="th_details" colspan="5">Details</th>
3949 </tr>
3950 <tr class="entry_cont">
3951 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003952 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3953resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3954or <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
3955the algorithm states to INACTIVE.<wbr/></p>
3956<p>The camera device can do several state transitions between two results,<wbr/> if it is
3957allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3958seen in a result.<wbr/></p>
3959<p>The state in the result is the state for this image (in sync with this image): if
3960AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3961be sharp.<wbr/></p>
3962<p>Below are state transition tables for different AF modes.<wbr/></p>
3963<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>
3964<table>
3965<thead>
3966<tr>
3967<th align="center">State</th>
3968<th align="center">Transition Cause</th>
3969<th align="center">New State</th>
3970<th align="center">Notes</th>
3971</tr>
3972</thead>
3973<tbody>
3974<tr>
3975<td align="center">INACTIVE</td>
3976<td align="center"></td>
3977<td align="center">INACTIVE</td>
3978<td align="center">Never changes</td>
3979</tr>
3980</tbody>
3981</table>
3982<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>
3983<table>
3984<thead>
3985<tr>
3986<th align="center">State</th>
3987<th align="center">Transition Cause</th>
3988<th align="center">New State</th>
3989<th align="center">Notes</th>
3990</tr>
3991</thead>
3992<tbody>
3993<tr>
3994<td align="center">INACTIVE</td>
3995<td align="center">AF_<wbr/>TRIGGER</td>
3996<td align="center">ACTIVE_<wbr/>SCAN</td>
3997<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
3998</tr>
3999<tr>
4000<td align="center">ACTIVE_<wbr/>SCAN</td>
4001<td align="center">AF sweep done</td>
4002<td align="center">FOCUSED_<wbr/>LOCKED</td>
4003<td align="center">Focused,<wbr/> Lens now locked</td>
4004</tr>
4005<tr>
4006<td align="center">ACTIVE_<wbr/>SCAN</td>
4007<td align="center">AF sweep done</td>
4008<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4009<td align="center">Not focused,<wbr/> Lens now locked</td>
4010</tr>
4011<tr>
4012<td align="center">ACTIVE_<wbr/>SCAN</td>
4013<td align="center">AF_<wbr/>CANCEL</td>
4014<td align="center">INACTIVE</td>
4015<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4016</tr>
4017<tr>
4018<td align="center">FOCUSED_<wbr/>LOCKED</td>
4019<td align="center">AF_<wbr/>CANCEL</td>
4020<td align="center">INACTIVE</td>
4021<td align="center">Cancel/<wbr/>reset AF</td>
4022</tr>
4023<tr>
4024<td align="center">FOCUSED_<wbr/>LOCKED</td>
4025<td align="center">AF_<wbr/>TRIGGER</td>
4026<td align="center">ACTIVE_<wbr/>SCAN</td>
4027<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4028</tr>
4029<tr>
4030<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4031<td align="center">AF_<wbr/>CANCEL</td>
4032<td align="center">INACTIVE</td>
4033<td align="center">Cancel/<wbr/>reset AF</td>
4034</tr>
4035<tr>
4036<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4037<td align="center">AF_<wbr/>TRIGGER</td>
4038<td align="center">ACTIVE_<wbr/>SCAN</td>
4039<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4040</tr>
4041<tr>
4042<td align="center">Any state</td>
4043<td align="center">Mode change</td>
4044<td align="center">INACTIVE</td>
4045<td align="center"></td>
4046</tr>
4047</tbody>
4048</table>
4049<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>
4050<table>
4051<thead>
4052<tr>
4053<th align="center">State</th>
4054<th align="center">Transition Cause</th>
4055<th align="center">New State</th>
4056<th align="center">Notes</th>
4057</tr>
4058</thead>
4059<tbody>
4060<tr>
4061<td align="center">INACTIVE</td>
4062<td align="center">Camera device initiates new scan</td>
4063<td align="center">PASSIVE_<wbr/>SCAN</td>
4064<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4065</tr>
4066<tr>
4067<td align="center">INACTIVE</td>
4068<td align="center">AF_<wbr/>TRIGGER</td>
4069<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4070<td align="center">AF state query,<wbr/> Lens now locked</td>
4071</tr>
4072<tr>
4073<td align="center">PASSIVE_<wbr/>SCAN</td>
4074<td align="center">Camera device completes current scan</td>
4075<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4076<td align="center">End AF scan,<wbr/> Lens now locked</td>
4077</tr>
4078<tr>
4079<td align="center">PASSIVE_<wbr/>SCAN</td>
4080<td align="center">Camera device fails current scan</td>
4081<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4082<td align="center">End AF scan,<wbr/> Lens now locked</td>
4083</tr>
4084<tr>
4085<td align="center">PASSIVE_<wbr/>SCAN</td>
4086<td align="center">AF_<wbr/>TRIGGER</td>
4087<td align="center">FOCUSED_<wbr/>LOCKED</td>
4088<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4089</tr>
4090<tr>
4091<td align="center">PASSIVE_<wbr/>SCAN</td>
4092<td align="center">AF_<wbr/>TRIGGER</td>
4093<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4094<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4095</tr>
4096<tr>
4097<td align="center">PASSIVE_<wbr/>SCAN</td>
4098<td align="center">AF_<wbr/>CANCEL</td>
4099<td align="center">INACTIVE</td>
4100<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4101</tr>
4102<tr>
4103<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4104<td align="center">Camera device initiates new scan</td>
4105<td align="center">PASSIVE_<wbr/>SCAN</td>
4106<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4107</tr>
4108<tr>
4109<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4110<td align="center">Camera device initiates new scan</td>
4111<td align="center">PASSIVE_<wbr/>SCAN</td>
4112<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4113</tr>
4114<tr>
4115<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4116<td align="center">AF_<wbr/>TRIGGER</td>
4117<td align="center">FOCUSED_<wbr/>LOCKED</td>
4118<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4119</tr>
4120<tr>
4121<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4122<td align="center">AF_<wbr/>TRIGGER</td>
4123<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4124<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4125</tr>
4126<tr>
4127<td align="center">FOCUSED_<wbr/>LOCKED</td>
4128<td align="center">AF_<wbr/>TRIGGER</td>
4129<td align="center">FOCUSED_<wbr/>LOCKED</td>
4130<td align="center">No effect</td>
4131</tr>
4132<tr>
4133<td align="center">FOCUSED_<wbr/>LOCKED</td>
4134<td align="center">AF_<wbr/>CANCEL</td>
4135<td align="center">INACTIVE</td>
4136<td align="center">Restart AF scan</td>
4137</tr>
4138<tr>
4139<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4140<td align="center">AF_<wbr/>TRIGGER</td>
4141<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4142<td align="center">No effect</td>
4143</tr>
4144<tr>
4145<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4146<td align="center">AF_<wbr/>CANCEL</td>
4147<td align="center">INACTIVE</td>
4148<td align="center">Restart AF scan</td>
4149</tr>
4150</tbody>
4151</table>
4152<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>
4153<table>
4154<thead>
4155<tr>
4156<th align="center">State</th>
4157<th align="center">Transition Cause</th>
4158<th align="center">New State</th>
4159<th align="center">Notes</th>
4160</tr>
4161</thead>
4162<tbody>
4163<tr>
4164<td align="center">INACTIVE</td>
4165<td align="center">Camera device initiates new scan</td>
4166<td align="center">PASSIVE_<wbr/>SCAN</td>
4167<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4168</tr>
4169<tr>
4170<td align="center">INACTIVE</td>
4171<td align="center">AF_<wbr/>TRIGGER</td>
4172<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4173<td align="center">AF state query,<wbr/> Lens now locked</td>
4174</tr>
4175<tr>
4176<td align="center">PASSIVE_<wbr/>SCAN</td>
4177<td align="center">Camera device completes current scan</td>
4178<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4179<td align="center">End AF scan,<wbr/> Lens now locked</td>
4180</tr>
4181<tr>
4182<td align="center">PASSIVE_<wbr/>SCAN</td>
4183<td align="center">Camera device fails current scan</td>
4184<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4185<td align="center">End AF scan,<wbr/> Lens now locked</td>
4186</tr>
4187<tr>
4188<td align="center">PASSIVE_<wbr/>SCAN</td>
4189<td align="center">AF_<wbr/>TRIGGER</td>
4190<td align="center">FOCUSED_<wbr/>LOCKED</td>
4191<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4192</tr>
4193<tr>
4194<td align="center">PASSIVE_<wbr/>SCAN</td>
4195<td align="center">AF_<wbr/>TRIGGER</td>
4196<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4197<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4198</tr>
4199<tr>
4200<td align="center">PASSIVE_<wbr/>SCAN</td>
4201<td align="center">AF_<wbr/>CANCEL</td>
4202<td align="center">INACTIVE</td>
4203<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4204</tr>
4205<tr>
4206<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4207<td align="center">Camera device initiates new scan</td>
4208<td align="center">PASSIVE_<wbr/>SCAN</td>
4209<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4210</tr>
4211<tr>
4212<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4213<td align="center">Camera device initiates new scan</td>
4214<td align="center">PASSIVE_<wbr/>SCAN</td>
4215<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4216</tr>
4217<tr>
4218<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4219<td align="center">AF_<wbr/>TRIGGER</td>
4220<td align="center">FOCUSED_<wbr/>LOCKED</td>
4221<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4222</tr>
4223<tr>
4224<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4225<td align="center">AF_<wbr/>TRIGGER</td>
4226<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4227<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4228</tr>
4229<tr>
4230<td align="center">FOCUSED_<wbr/>LOCKED</td>
4231<td align="center">AF_<wbr/>TRIGGER</td>
4232<td align="center">FOCUSED_<wbr/>LOCKED</td>
4233<td align="center">No effect</td>
4234</tr>
4235<tr>
4236<td align="center">FOCUSED_<wbr/>LOCKED</td>
4237<td align="center">AF_<wbr/>CANCEL</td>
4238<td align="center">INACTIVE</td>
4239<td align="center">Restart AF scan</td>
4240</tr>
4241<tr>
4242<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4243<td align="center">AF_<wbr/>TRIGGER</td>
4244<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4245<td align="center">No effect</td>
4246</tr>
4247<tr>
4248<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4249<td align="center">AF_<wbr/>CANCEL</td>
4250<td align="center">INACTIVE</td>
4251<td align="center">Restart AF scan</td>
4252</tr>
4253</tbody>
4254</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004255 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004256 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004257
4258
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004259 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4260 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004261
4262
4263 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004264 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004265 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004266 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004267 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004268 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004269
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004270 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004271
4272
4273 </td> <!-- entry_type -->
4274
4275 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004276 <p>The ID sent with the latest
4277CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004278 </td>
4279
4280 <td class="entry_units">
4281 </td>
4282
4283 <td class="entry_range">
4284 </td>
4285
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004286 <td class="entry_tags">
4287 </td>
4288
4289 </tr>
4290 <tr class="entries_header">
4291 <th class="th_details" colspan="5">Details</th>
4292 </tr>
4293 <tr class="entry_cont">
4294 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004295 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4296received yet by HAL.<wbr/> Always updated even if AF algorithm
4297ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004298 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004299 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004300
4301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004302 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4303 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004304
4305
4306 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004307 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004308 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004309 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004310 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004311 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004312
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004313 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004314
4315 <ul class="entry_type_enum">
4316 <li>
4317 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004318 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4319the application-selected color transform matrix
4320(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4321(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4322device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004323 </li>
4324 <li>
4325 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004326 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4327the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4328and <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 -08004329 </li>
4330 <li>
4331 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004332 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4333the camera device uses incandescent light as the assumed scene
4334illumination for white balance.<wbr/> While the exact white balance
4335transforms are up to the camera device,<wbr/> they will approximately
4336match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004337 </li>
4338 <li>
4339 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004340 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4341the camera device uses fluorescent light as the assumed scene
4342illumination for white balance.<wbr/> While the exact white balance
4343transforms are up to the camera device,<wbr/> they will approximately
4344match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004345 </li>
4346 <li>
4347 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004348 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4349the camera device uses warm fluorescent light as the assumed scene
4350illumination for white balance.<wbr/> While the exact white balance
4351transforms are up to the camera device,<wbr/> they will approximately
4352match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004353 </li>
4354 <li>
4355 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004356 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4357the camera device uses daylight light as the assumed scene
4358illumination for white balance.<wbr/> While the exact white balance
4359transforms are up to the camera device,<wbr/> they will approximately
4360match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004361 </li>
4362 <li>
4363 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004364 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4365the camera device uses cloudy daylight light as the assumed scene
4366illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004367 </li>
4368 <li>
4369 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004370 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4371the camera device uses twilight light as the assumed scene
4372illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004373 </li>
4374 <li>
4375 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004376 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4377the camera device uses shade light as the assumed scene
4378illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004379 </li>
4380 </ul>
4381
4382 </td> <!-- entry_type -->
4383
4384 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004385 <p>Whether AWB is currently setting the color
4386transform fields,<wbr/> and what its illumination target
4387is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004388 </td>
4389
4390 <td class="entry_units">
4391 </td>
4392
4393 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004394 <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 -08004395 </td>
4396
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004397 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004398 <ul class="entry_tags">
4399 <li><a href="#tag_BC">BC</a></li>
4400 <li><a href="#tag_AWB">AWB</a></li>
4401 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004402 </td>
4403
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004404 </tr>
4405 <tr class="entries_header">
4406 <th class="th_details" colspan="5">Details</th>
4407 </tr>
4408 <tr class="entry_cont">
4409 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004410 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4411<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4412routine is enabled,<wbr/> overriding the application's selected
4413<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
4414<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4415<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4416routine is disabled.<wbr/> The applicantion manually controls the white
4417balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4418and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4419<p>When set to any other modes,<wbr/> the camera device's auto white balance
4420routine is disabled.<wbr/> The camera device uses each particular illumination
4421target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004422 </td>
4423 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004424
4425
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004426 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4427 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004428
4429
4430 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004431 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004432 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004433 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004434 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004435 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004436 <span class="entry_type_container">x</span>
4437
4438 <span class="entry_type_array">
4439 5 x area_count
4440 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004441 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004442
4443
4444 </td> <!-- entry_type -->
4445
4446 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004447 <p>List of areas to use for illuminant
4448estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004449 </td>
4450
4451 <td class="entry_units">
4452 </td>
4453
4454 <td class="entry_range">
4455 </td>
4456
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004457 <td class="entry_tags">
4458 <ul class="entry_tags">
4459 <li><a href="#tag_BC">BC</a></li>
4460 </ul>
4461 </td>
4462
4463 </tr>
4464 <tr class="entries_header">
4465 <th class="th_details" colspan="5">Details</th>
4466 </tr>
4467 <tr class="entry_cont">
4468 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004469 <p>Only used in AUTO mode.<wbr/></p>
4470<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
4471xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
4472specified coordinates.<wbr/></p>
4473<p>The coordinate system is based on the active pixel array,<wbr/>
4474with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004475(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4476<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 -08004477bottom-right pixel in the active pixel array.<wbr/> The weight
4478should be nonnegative.<wbr/></p>
4479<p>If all regions have 0 weight,<wbr/> then no specific metering area
4480needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004481outside 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 -08004482should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08004483used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004484 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004485 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004486
4487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004488 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4489 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004490
4491
4492 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004493 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004494 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004495 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004496 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004497 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004498
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004499 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004500
4501 <ul class="entry_type_enum">
4502 <li>
4503 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004504 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4505starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004506 </li>
4507 <li>
4508 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004509 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004510values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004511 </li>
4512 <li>
4513 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004514 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004515current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004516 </li>
4517 <li>
4518 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004519 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004520 </li>
4521 </ul>
4522
4523 </td> <!-- entry_type -->
4524
4525 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004526 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004527 </td>
4528
4529 <td class="entry_units">
4530 </td>
4531
4532 <td class="entry_range">
4533 </td>
4534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004535 <td class="entry_tags">
4536 </td>
4537
4538 </tr>
4539 <tr class="entries_header">
4540 <th class="th_details" colspan="5">Details</th>
4541 </tr>
4542 <tr class="entry_cont">
4543 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004544 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4545resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4546or <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
4547the algorithm states to INACTIVE.<wbr/></p>
4548<p>The camera device can do several state transitions between two results,<wbr/> if it is
4549allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4550a result.<wbr/></p>
4551<p>The state in the result is the state for this image (in sync with this image): if
4552AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4553be good to use.<wbr/></p>
4554<p>Below are state transition tables for different AWB modes.<wbr/></p>
4555<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4556<table>
4557<thead>
4558<tr>
4559<th align="center">State</th>
4560<th align="center">Transition Cause</th>
4561<th align="center">New State</th>
4562<th align="center">Notes</th>
4563</tr>
4564</thead>
4565<tbody>
4566<tr>
4567<td align="center">INACTIVE</td>
4568<td align="center"></td>
4569<td align="center">INACTIVE</td>
4570<td align="center">Camera device auto white balance algorithm is disabled</td>
4571</tr>
4572</tbody>
4573</table>
4574<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4575<table>
4576<thead>
4577<tr>
4578<th align="center">State</th>
4579<th align="center">Transition Cause</th>
4580<th align="center">New State</th>
4581<th align="center">Notes</th>
4582</tr>
4583</thead>
4584<tbody>
4585<tr>
4586<td align="center">INACTIVE</td>
4587<td align="center">Camera device initiates AWB scan</td>
4588<td align="center">SEARCHING</td>
4589<td align="center">Values changing</td>
4590</tr>
4591<tr>
4592<td align="center">INACTIVE</td>
4593<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4594<td align="center">LOCKED</td>
4595<td align="center">Values locked</td>
4596</tr>
4597<tr>
4598<td align="center">SEARCHING</td>
4599<td align="center">Camera device finishes AWB scan</td>
4600<td align="center">CONVERGED</td>
4601<td align="center">Good values,<wbr/> not changing</td>
4602</tr>
4603<tr>
4604<td align="center">SEARCHING</td>
4605<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4606<td align="center">LOCKED</td>
4607<td align="center">Values locked</td>
4608</tr>
4609<tr>
4610<td align="center">CONVERGED</td>
4611<td align="center">Camera device initiates AWB scan</td>
4612<td align="center">SEARCHING</td>
4613<td align="center">Values changing</td>
4614</tr>
4615<tr>
4616<td align="center">CONVERGED</td>
4617<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4618<td align="center">LOCKED</td>
4619<td align="center">Values locked</td>
4620</tr>
4621<tr>
4622<td align="center">LOCKED</td>
4623<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4624<td align="center">SEARCHING</td>
4625<td align="center">Values not good after unlock</td>
4626</tr>
4627<tr>
4628<td align="center">LOCKED</td>
4629<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4630<td align="center">CONVERGED</td>
4631<td align="center">Values good after unlock</td>
4632</tr>
4633</tbody>
4634</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004635 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004636 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004637
4638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004639 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4640 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004641
4642
4643 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004644 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004645 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004646 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004647 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004648 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004649
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004650 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004651
4652 <ul class="entry_type_enum">
4653 <li>
4654 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004655 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4656routines are disabled,<wbr/> no other settings in
4657android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004658 </li>
4659 <li>
4660 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004661 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4662Manual control of capture parameters is disabled.<wbr/> All
4663controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4664effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004665 </li>
4666 <li>
4667 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004668 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4669control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4670controls; the HAL must ignore those settings while
4671USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4672scene mode).<wbr/> Other control entries are still active.<wbr/>
4673This setting can only be used if availableSceneModes !=
4674UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004675 </li>
4676 </ul>
4677
4678 </td> <!-- entry_type -->
4679
4680 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004681 <p>Overall mode of 3A control
4682routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004683 </td>
4684
4685 <td class="entry_units">
4686 </td>
4687
4688 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004689 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004690 </td>
4691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004692 <td class="entry_tags">
4693 <ul class="entry_tags">
4694 <li><a href="#tag_BC">BC</a></li>
4695 </ul>
4696 </td>
4697
4698 </tr>
4699 <tr class="entries_header">
4700 <th class="th_details" colspan="5">Details</th>
4701 </tr>
4702 <tr class="entry_cont">
4703 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004704 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004705by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004706capture parameters itself.<wbr/></p>
4707<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004708android.<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 -08004709<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004710android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004711one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004712as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004713<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 -08004714 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004715 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004716
4717
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004718 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4719 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004720
4721
4722
4723 <!-- end of kind -->
4724 </tbody>
4725
4726 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004727 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004728
4729
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004730 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004731
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004732 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004733 <tr>
4734 <th class="th_name">Property Name</th>
4735 <th class="th_type">Type</th>
4736 <th class="th_description">Description</th>
4737 <th class="th_units">Units</th>
4738 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004739 <th class="th_tags">Tags</th>
4740 </tr>
4741 </thead>
4742
4743 <tbody>
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004755 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004756 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004757 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004758 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004759 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004760
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004761 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004762
4763 <ul class="entry_type_enum">
4764 <li>
4765 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004766 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4767Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004768 </li>
4769 <li>
4770 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004771 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4772rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004773 </li>
4774 </ul>
4775
4776 </td> <!-- entry_type -->
4777
4778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004779 <p>Controls the quality of the demosaicing
4780processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004781 </td>
4782
4783 <td class="entry_units">
4784 </td>
4785
4786 <td class="entry_range">
4787 </td>
4788
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004789 <td class="entry_tags">
4790 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004791 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004792 </ul>
4793 </td>
4794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004795 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004796
4797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004798 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4799 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004800
4801
4802
4803 <!-- end of kind -->
4804 </tbody>
4805
4806 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004807 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004808
4809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004810 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004811
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004812 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004813 <tr>
4814 <th class="th_name">Property Name</th>
4815 <th class="th_type">Type</th>
4816 <th class="th_description">Description</th>
4817 <th class="th_units">Units</th>
4818 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004819 <th class="th_tags">Tags</th>
4820 </tr>
4821 </thead>
4822
4823 <tbody>
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004835 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004836 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004837 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004838 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004839 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004840
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004841 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004842
4843 <ul class="entry_type_enum">
4844 <li>
4845 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004846 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004847 </li>
4848 <li>
4849 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004850 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4851output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004852 </li>
4853 <li>
4854 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004855 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4856quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004857 </li>
4858 </ul>
4859
4860 </td> <!-- entry_type -->
4861
4862 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004863 <p>Operation mode for edge
4864enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004865 </td>
4866
4867 <td class="entry_units">
4868 </td>
4869
4870 <td class="entry_range">
4871 </td>
4872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004873 <td class="entry_tags">
4874 </td>
4875
4876 </tr>
4877 <tr class="entries_header">
4878 <th class="th_details" colspan="5">Details</th>
4879 </tr>
4880 <tr class="entry_cont">
4881 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004882 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4883enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004884<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004885will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004886camera device will use the highest-quality enhancement algorithms,<wbr/>
4887even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004888not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004889 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004890 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004891
4892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004893 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4894 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004895
4896
4897 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004898 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004899 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004900 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004901 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004902 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004903
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004904 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004905
4906
4907 </td> <!-- entry_type -->
4908
4909 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004910 <p>Control the amount of edge enhancement
4911applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004912 </td>
4913
4914 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004915 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004916 </td>
4917
4918 <td class="entry_range">
4919 </td>
4920
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004921 <td class="entry_tags">
4922 </td>
4923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004924 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004925
4926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004927 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4928 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004929
4930
4931
4932 <!-- end of kind -->
4933 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004934 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004935
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004936 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004937 <tr>
4938 <th class="th_name">Property Name</th>
4939 <th class="th_type">Type</th>
4940 <th class="th_description">Description</th>
4941 <th class="th_units">Units</th>
4942 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004943 <th class="th_tags">Tags</th>
4944 </tr>
4945 </thead>
4946
4947 <tbody>
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004959 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004960 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004961 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004962 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004963 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004964
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004965 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004966
4967 <ul class="entry_type_enum">
4968 <li>
4969 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004970 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004971 </li>
4972 <li>
4973 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004974 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4975output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004976 </li>
4977 <li>
4978 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004979 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4980quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004981 </li>
4982 </ul>
4983
4984 </td> <!-- entry_type -->
4985
4986 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004987 <p>Operation mode for edge
4988enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004989 </td>
4990
4991 <td class="entry_units">
4992 </td>
4993
4994 <td class="entry_range">
4995 </td>
4996
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004997 <td class="entry_tags">
4998 </td>
4999
5000 </tr>
5001 <tr class="entries_header">
5002 <th class="th_details" colspan="5">Details</th>
5003 </tr>
5004 <tr class="entry_cont">
5005 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005006 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5007enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005008<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005009will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005010camera device will use the highest-quality enhancement algorithms,<wbr/>
5011even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005012not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005013 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005015
5016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5018 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005019
5020
5021
5022 <!-- end of kind -->
5023 </tbody>
5024
5025 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005026 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005027
5028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005029 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005030
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005031 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005032 <tr>
5033 <th class="th_name">Property Name</th>
5034 <th class="th_type">Type</th>
5035 <th class="th_description">Description</th>
5036 <th class="th_units">Units</th>
5037 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005038 <th class="th_tags">Tags</th>
5039 </tr>
5040 </thead>
5041
5042 <tbody>
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005054 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005055 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005058 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005059
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005060 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005061
5062
5063 </td> <!-- entry_type -->
5064
5065 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005066 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005067 </td>
5068
5069 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005070 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005071 </td>
5072
5073 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005074 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005075 </td>
5076
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005077 <td class="entry_tags">
5078 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005079 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005080 </ul>
5081 </td>
5082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005083 </tr>
5084 <tr class="entries_header">
5085 <th class="th_details" colspan="5">Details</th>
5086 </tr>
5087 <tr class="entry_cont">
5088 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005089 <p>Power for snapshot may use a different scale than
5090for torch mode.<wbr/> Only one entry for torch mode will be
5091used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005092 </td>
5093 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005094
5095
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005096 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5097 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005098
5099
5100 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005101 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005102 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005103 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005104 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005105 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005106
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005107 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005108
5109
5110 </td> <!-- entry_type -->
5111
5112 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005113 <p>Firing time of flash relative to start of
5114exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005115 </td>
5116
5117 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005118 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005119 </td>
5120
5121 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005122 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005123 </td>
5124
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005125 <td class="entry_tags">
5126 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005127 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005128 </ul>
5129 </td>
5130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005131 </tr>
5132 <tr class="entries_header">
5133 <th class="th_details" colspan="5">Details</th>
5134 </tr>
5135 <tr class="entry_cont">
5136 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005137 <p>Clamped to (0,<wbr/> exposure time - flash
5138duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005139 </td>
5140 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005141
5142
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005143 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5144 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005145
5146
5147 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005148 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005149 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005150 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005151 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005152 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005153
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005154 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005155
5156 <ul class="entry_type_enum">
5157 <li>
5158 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005159 <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 -08005160 </li>
5161 <li>
5162 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005163 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5164for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5165<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005166 </li>
5167 <li>
5168 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005169 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005170 </li>
5171 </ul>
5172
5173 </td> <!-- entry_type -->
5174
5175 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005176 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005177 </td>
5178
5179 <td class="entry_units">
5180 </td>
5181
5182 <td class="entry_range">
5183 </td>
5184
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005185 <td class="entry_tags">
5186 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005187 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005188 </ul>
5189 </td>
5190
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005191 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005192 <tr class="entries_header">
5193 <th class="th_details" colspan="5">Details</th>
5194 </tr>
5195 <tr class="entry_cont">
5196 <td class="entry_details" colspan="5">
5197 <p>This control is only effective when flash unit is available
5198(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
5199<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/>
5200Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5201ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5202<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5203<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5204device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5205control should be used along with AE precapture metering sequence
5206(<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>
5207<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5208for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5209 </td>
5210 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005211
5212
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005213 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5214 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005215
5216
5217
5218 <!-- end of kind -->
5219 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005220 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005221
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005222 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005223 <tr>
5224 <th class="th_name">Property Name</th>
5225 <th class="th_type">Type</th>
5226 <th class="th_description">Description</th>
5227 <th class="th_units">Units</th>
5228 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005229 <th class="th_tags">Tags</th>
5230 </tr>
5231 </thead>
5232
5233 <tbody>
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005247 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005248 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005249 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005250 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005251 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005252
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005253 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005254
5255
5256 </td> <!-- entry_type -->
5257
5258 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005259 <p>Whether this camera has a
5260flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005261 </td>
5262
5263 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005264 boolean (0 = false,<wbr/> otherwise true)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005265 </td>
5266
5267 <td class="entry_range">
5268 </td>
5269
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005270 <td class="entry_tags">
5271 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005272 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005273 </ul>
5274 </td>
5275
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005276 </tr>
5277 <tr class="entries_header">
5278 <th class="th_details" colspan="5">Details</th>
5279 </tr>
5280 <tr class="entry_cont">
5281 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005282 <p>If no flash,<wbr/> none of the flash controls do
5283anything.<wbr/> All other metadata should return 0</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005284 </td>
5285 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005286
5287
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005288 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5289 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005290
5291
5292 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005293 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005294 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005295 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005296 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005297 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005298
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005299 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005300
5301
5302 </td> <!-- entry_type -->
5303
5304 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005305 <p>Time taken before flash can fire
5306again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005307 </td>
5308
5309 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005310 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005311 </td>
5312
5313 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005314 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005315 </td>
5316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005317 <td class="entry_tags">
5318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005319 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005320 </ul>
5321 </td>
5322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005323 </tr>
5324 <tr class="entries_header">
5325 <th class="th_details" colspan="5">Details</th>
5326 </tr>
5327 <tr class="entry_cont">
5328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005329 <p>1 second too long/<wbr/>too short for recharge? Should
5330this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005331 </td>
5332 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005333
5334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005335 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5336 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005337
5338
5339
5340
5341
5342 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005343 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005344 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005345 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005346 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005347 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005348
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005349 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005350
5351
5352 </td> <!-- entry_type -->
5353
5354 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005355 <p>The x,<wbr/>y whitepoint of the
5356flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005357 </td>
5358
5359 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005360 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005361 </td>
5362
5363 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005364 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005365 </td>
5366
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005367 <td class="entry_tags">
5368 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005369 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005370 </ul>
5371 </td>
5372
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005373 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005374
5375
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005376 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5377 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005378
5379
5380 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005381 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005382 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005383 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005384 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005385 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005386
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005387 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005388
5389
5390 </td> <!-- entry_type -->
5391
5392 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005393 <p>Max energy output of the flash for a full
5394power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005395 </td>
5396
5397 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005398 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005399 </td>
5400
5401 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005402 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005403 </td>
5404
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005405 <td class="entry_tags">
5406 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005407 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005408 </ul>
5409 </td>
5410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005411 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005412
5413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005414 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5415 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005416
5417
5418
5419 <!-- end of kind -->
5420 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005421 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005422
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005423 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005424 <tr>
5425 <th class="th_name">Property Name</th>
5426 <th class="th_type">Type</th>
5427 <th class="th_description">Description</th>
5428 <th class="th_units">Units</th>
5429 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005430 <th class="th_tags">Tags</th>
5431 </tr>
5432 </thead>
5433
5434 <tbody>
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005446 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005447 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005448 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005449 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005450 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005451
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005452 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005453
5454
5455 </td> <!-- entry_type -->
5456
5457 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005458 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005459 </td>
5460
5461 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005462 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005463 </td>
5464
5465 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005466 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005467 </td>
5468
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005469 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005470 <ul class="entry_tags">
5471 <li><a href="#tag_V1">V1</a></li>
5472 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005473 </td>
5474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005475 </tr>
5476 <tr class="entries_header">
5477 <th class="th_details" colspan="5">Details</th>
5478 </tr>
5479 <tr class="entry_cont">
5480 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005481 <p>Power for snapshot may use a different scale than
5482for torch mode.<wbr/> Only one entry for torch mode will be
5483used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005484 </td>
5485 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005486
5487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005488 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5489 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005490
5491
5492 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005493 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005494 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005495 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005496 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005497 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005498
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005499 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005500
5501
5502 </td> <!-- entry_type -->
5503
5504 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005505 <p>Firing time of flash relative to start of
5506exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005507 </td>
5508
5509 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005510 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005511 </td>
5512
5513 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005514 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005515 </td>
5516
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005517 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005518 <ul class="entry_tags">
5519 <li><a href="#tag_V1">V1</a></li>
5520 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005521 </td>
5522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005523 </tr>
5524 <tr class="entries_header">
5525 <th class="th_details" colspan="5">Details</th>
5526 </tr>
5527 <tr class="entry_cont">
5528 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005529 <p>Clamped to (0,<wbr/> exposure time - flash
5530duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005531 </td>
5532 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005533
5534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005535 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5536 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005537
5538
5539 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005540 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005541 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005542 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005543 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005544 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005545
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005546 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005547
5548 <ul class="entry_type_enum">
5549 <li>
5550 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005551 <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 -08005552 </li>
5553 <li>
5554 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005555 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5556for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5557<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005558 </li>
5559 <li>
5560 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005561 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005562 </li>
5563 </ul>
5564
5565 </td> <!-- entry_type -->
5566
5567 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005568 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005569 </td>
5570
5571 <td class="entry_units">
5572 </td>
5573
5574 <td class="entry_range">
5575 </td>
5576
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005577 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005578 <ul class="entry_tags">
5579 <li><a href="#tag_BC">BC</a></li>
5580 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005581 </td>
5582
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005583 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005584 <tr class="entries_header">
5585 <th class="th_details" colspan="5">Details</th>
5586 </tr>
5587 <tr class="entry_cont">
5588 <td class="entry_details" colspan="5">
5589 <p>This control is only effective when flash unit is available
5590(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
5591<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/>
5592Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5593ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5594<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5595<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5596device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5597control should be used along with AE precapture metering sequence
5598(<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>
5599<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5600for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5601 </td>
5602 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005603
5604
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005605 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5606 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005607
5608
5609 <tr class="entry" id="dynamic_android.flash.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005610 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005611 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005612 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005613 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005614 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005615
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005616 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005617
5618 <ul class="entry_type_enum">
5619 <li>
5620 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005621 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005622 </li>
5623 <li>
5624 <span class="entry_type_enum_name">CHARGING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005625 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5626charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005627 </li>
5628 <li>
5629 <span class="entry_type_enum_name">READY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005630 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5631ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005632 </li>
5633 <li>
5634 <span class="entry_type_enum_name">FIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005635 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash fired
5636for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005637 </li>
5638 </ul>
5639
5640 </td> <!-- entry_type -->
5641
5642 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005643 <p>Current state of the flash
5644unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005645 </td>
5646
5647 <td class="entry_units">
5648 </td>
5649
5650 <td class="entry_range">
5651 </td>
5652
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005653 <td class="entry_tags">
5654 </td>
5655
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005656 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005657
5658
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005659 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5660 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005661
5662
5663
5664 <!-- end of kind -->
5665 </tbody>
5666
5667 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005668 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005669
5670
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005671 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005672
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005673 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005674 <tr>
5675 <th class="th_name">Property Name</th>
5676 <th class="th_type">Type</th>
5677 <th class="th_description">Description</th>
5678 <th class="th_units">Units</th>
5679 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005680 <th class="th_tags">Tags</th>
5681 </tr>
5682 </thead>
5683
5684 <tbody>
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005696 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005697 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005698 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005699 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005700 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005701
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005702 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005703
5704 <ul class="entry_type_enum">
5705 <li>
5706 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005707 <span class="entry_type_enum_notes"><p>No geometric correction is
5708applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005709 </li>
5710 <li>
5711 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005712 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5713bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005714 </li>
5715 <li>
5716 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005717 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5718quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005719 </li>
5720 </ul>
5721
5722 </td> <!-- entry_type -->
5723
5724 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005725 <p>Operating mode of geometric
5726correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005727 </td>
5728
5729 <td class="entry_units">
5730 </td>
5731
5732 <td class="entry_range">
5733 </td>
5734
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005735 <td class="entry_tags">
5736 </td>
5737
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005738 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005739
5740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005741 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5742 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005743
5744
5745 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005746 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005747 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005748 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005749 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005750 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005751
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005752 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005753
5754
5755 </td> <!-- entry_type -->
5756
5757 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005758 <p>Control the amount of shading correction
5759applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005760 </td>
5761
5762 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005763 unitless: 1-10; 10 is full shading
5764 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005765 </td>
5766
5767 <td class="entry_range">
5768 </td>
5769
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005770 <td class="entry_tags">
5771 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005772 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005773 </ul>
5774 </td>
5775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005776 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005777
5778
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005779 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5780 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005781
5782
5783
5784 <!-- end of kind -->
5785 </tbody>
5786
5787 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005788 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005789
5790
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005791 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005792
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005793 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005794 <tr>
5795 <th class="th_name">Property Name</th>
5796 <th class="th_type">Type</th>
5797 <th class="th_description">Description</th>
5798 <th class="th_units">Units</th>
5799 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005800 <th class="th_tags">Tags</th>
5801 </tr>
5802 </thead>
5803
5804 <tbody>
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005816 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005817 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005818 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005819 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005820 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005821
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005822 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005823
5824 <ul class="entry_type_enum">
5825 <li>
5826 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005827 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5828applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005829 </li>
5830 <li>
5831 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005832 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5833Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005834 </li>
5835 <li>
5836 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005837 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5838quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005839 </li>
5840 </ul>
5841
5842 </td> <!-- entry_type -->
5843
5844 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005845 <p>Set operational mode for hot pixel
5846correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005847 </td>
5848
5849 <td class="entry_units">
5850 </td>
5851
5852 <td class="entry_range">
5853 </td>
5854
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005855 <td class="entry_tags">
5856 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005857 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005858 </ul>
5859 </td>
5860
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005861 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005862
5863
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005864 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5865 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005866
5867
5868
5869 <!-- end of kind -->
5870 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005871 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005872
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005873 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005874 <tr>
5875 <th class="th_name">Property Name</th>
5876 <th class="th_type">Type</th>
5877 <th class="th_description">Description</th>
5878 <th class="th_units">Units</th>
5879 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005880 <th class="th_tags">Tags</th>
5881 </tr>
5882 </thead>
5883
5884 <tbody>
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005898 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005899 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005900 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005901 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005902 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005903 <span class="entry_type_container">x</span>
5904
5905 <span class="entry_type_array">
5906 2 x n
5907 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005908 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005909 <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 -08005910
5911
5912 </td> <!-- entry_type -->
5913
5914 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005915 <p>Location of hot/<wbr/>defective pixels on
5916sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005917 </td>
5918
5919 <td class="entry_units">
5920 </td>
5921
5922 <td class="entry_range">
5923 </td>
5924
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005925 <td class="entry_tags">
5926 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005927 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005928 </ul>
5929 </td>
5930
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005931 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005932
5933
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005934 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5935 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005936
5937
5938
5939
5940
5941
5942 <!-- end of kind -->
5943 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005944 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005945
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005946 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005947 <tr>
5948 <th class="th_name">Property Name</th>
5949 <th class="th_type">Type</th>
5950 <th class="th_description">Description</th>
5951 <th class="th_units">Units</th>
5952 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005953 <th class="th_tags">Tags</th>
5954 </tr>
5955 </thead>
5956
5957 <tbody>
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005969 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005970 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005971 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005972 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005973 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005974
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005975 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005976
5977 <ul class="entry_type_enum">
5978 <li>
5979 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005980 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5981applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005982 </li>
5983 <li>
5984 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005985 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5986Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005987 </li>
5988 <li>
5989 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005990 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5991quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005992 </li>
5993 </ul>
5994
5995 </td> <!-- entry_type -->
5996
5997 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005998 <p>Set operational mode for hot pixel
5999correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006000 </td>
6001
6002 <td class="entry_units">
6003 </td>
6004
6005 <td class="entry_range">
6006 </td>
6007
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006008 <td class="entry_tags">
6009 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006010 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006011 </ul>
6012 </td>
6013
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006015
6016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6018 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006019
6020
6021
6022 <!-- end of kind -->
6023 </tbody>
6024
6025 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006026 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006027
6028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006029 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006030
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006031 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006032 <tr>
6033 <th class="th_name">Property Name</th>
6034 <th class="th_type">Type</th>
6035 <th class="th_description">Description</th>
6036 <th class="th_units">Units</th>
6037 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006038 <th class="th_tags">Tags</th>
6039 </tr>
6040 </thead>
6041
6042 <tbody>
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006054 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006055 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006058 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006059 <span class="entry_type_container">x</span>
6060
6061 <span class="entry_type_array">
6062 3
6063 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006064 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006065 <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 -08006066
6067
6068 </td> <!-- entry_type -->
6069
6070 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006071 <p>GPS coordinates to include in output JPEG
6072EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006073 </td>
6074
6075 <td class="entry_units">
6076 </td>
6077
6078 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006079 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006080 </td>
6081
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006082 <td class="entry_tags">
6083 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006084 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006085 </ul>
6086 </td>
6087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006088 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006089
6090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006091 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6092 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006093
6094
6095 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006096 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006097 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006098 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006099 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006100 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006101
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006102 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006103
6104
6105 </td> <!-- entry_type -->
6106
6107 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006108 <p>32 characters describing GPS algorithm to
6109include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006110 </td>
6111
6112 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006113 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006114 </td>
6115
6116 <td class="entry_range">
6117 </td>
6118
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006119 <td class="entry_tags">
6120 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006121 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006122 </ul>
6123 </td>
6124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006125 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006126
6127
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006128 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6129 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006130
6131
6132 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006133 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006134 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006135 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006136 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006137 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006138
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006139 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006140
6141
6142 </td> <!-- entry_type -->
6143
6144 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006145 <p>Time GPS fix was made to include in
6146EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006147 </td>
6148
6149 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006150 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006151 </td>
6152
6153 <td class="entry_range">
6154 </td>
6155
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006156 <td class="entry_tags">
6157 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006158 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006159 </ul>
6160 </td>
6161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006162 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006163
6164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006165 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6166 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006167
6168
6169 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006170 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006171 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006172 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006173 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006174 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006175
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006176 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006177
6178
6179 </td> <!-- entry_type -->
6180
6181 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006182 <p>Orientation of JPEG image to
6183write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006184 </td>
6185
6186 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006187 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006188 </td>
6189
6190 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006191 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006192 </td>
6193
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006194 <td class="entry_tags">
6195 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006196 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006197 </ul>
6198 </td>
6199
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006200 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006201
6202
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006203 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6204 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006205
6206
6207 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006208 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006209 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006210 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006211 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006212 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006213
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006214 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006215
6216
6217 </td> <!-- entry_type -->
6218
6219 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006220 <p>Compression quality of the final JPEG
6221image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006222 </td>
6223
6224 <td class="entry_units">
6225 </td>
6226
6227 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006228 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006229 </td>
6230
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006231 <td class="entry_tags">
6232 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006233 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006234 </ul>
6235 </td>
6236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006237 </tr>
6238 <tr class="entries_header">
6239 <th class="th_details" colspan="5">Details</th>
6240 </tr>
6241 <tr class="entry_cont">
6242 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006243 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006244 </td>
6245 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006246
6247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006248 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6249 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006250
6251
6252 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006253 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006254 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006255 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006256 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006257 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006258
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006259 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006260
6261
6262 </td> <!-- entry_type -->
6263
6264 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006265 <p>Compression quality of JPEG
6266thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006267 </td>
6268
6269 <td class="entry_units">
6270 </td>
6271
6272 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006273 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006274 </td>
6275
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006276 <td class="entry_tags">
6277 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006278 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006279 </ul>
6280 </td>
6281
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006282 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006283
6284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006285 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6286 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006287
6288
6289 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006290 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006291 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006292 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006293 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006294 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006295 <span class="entry_type_container">x</span>
6296
6297 <span class="entry_type_array">
6298 2
6299 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006300 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006301
6302
6303 </td> <!-- entry_type -->
6304
6305 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006306 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006307 </td>
6308
6309 <td class="entry_units">
6310 </td>
6311
6312 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006313 <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 -08006314 </td>
6315
6316 <td class="entry_tags">
6317 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006318 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006319 </ul>
6320 </td>
6321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006322 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006323 <tr class="entries_header">
6324 <th class="th_details" colspan="5">Details</th>
6325 </tr>
6326 <tr class="entry_cont">
6327 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006328 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6329but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006330<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6331the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006332 </td>
6333 </tr>
6334
6335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006338
6339
6340
6341 <!-- end of kind -->
6342 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006343 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006344
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006345 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006346 <tr>
6347 <th class="th_name">Property Name</th>
6348 <th class="th_type">Type</th>
6349 <th class="th_description">Description</th>
6350 <th class="th_units">Units</th>
6351 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006352 <th class="th_tags">Tags</th>
6353 </tr>
6354 </thead>
6355
6356 <tbody>
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006368 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006369 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006370 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006371 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006372 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006373 <span class="entry_type_container">x</span>
6374
6375 <span class="entry_type_array">
6376 2 x n
6377 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006378 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006379
6380
6381 </td> <!-- entry_type -->
6382
6383 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006384 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006385 </td>
6386
6387 <td class="entry_units">
6388 </td>
6389
6390 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006391 <p>Will include at least one valid resolution,<wbr/> plus
6392(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006393 </td>
6394
6395 <td class="entry_tags">
6396 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006397 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006398 </ul>
6399 </td>
6400
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006401 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006402 <tr class="entries_header">
6403 <th class="th_details" colspan="5">Details</th>
6404 </tr>
6405 <tr class="entry_cont">
6406 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006407 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006408<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006409<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6410If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6411<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006412aspect 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 -08006413The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006414in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006415<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 -08006416one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6417and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006418<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006419</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006420 </td>
6421 </tr>
6422
6423
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006424 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6425 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006426
6427
6428 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006429 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006430 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006431 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006432 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006433 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006434
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006435 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006436
6437
6438 </td> <!-- entry_type -->
6439
6440 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006441 <p>Maximum size in bytes for the compressed
6442JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006443 </td>
6444
6445 <td class="entry_units">
6446 </td>
6447
6448 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006449 <p>Must be large enough to fit any JPEG produced by
6450the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006451 </td>
6452
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006453 <td class="entry_tags">
6454 </td>
6455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006456 </tr>
6457 <tr class="entries_header">
6458 <th class="th_details" colspan="5">Details</th>
6459 </tr>
6460 <tr class="entry_cont">
6461 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006462 <p>This is used for sizing the gralloc buffers for
6463JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006464 </td>
6465 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006466
6467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006468 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6469 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006470
6471
6472
6473 <!-- end of kind -->
6474 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006475 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006476
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006477 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006478 <tr>
6479 <th class="th_name">Property Name</th>
6480 <th class="th_type">Type</th>
6481 <th class="th_description">Description</th>
6482 <th class="th_units">Units</th>
6483 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006484 <th class="th_tags">Tags</th>
6485 </tr>
6486 </thead>
6487
6488 <tbody>
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006500 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006501 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006502 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006503 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006504 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006505 <span class="entry_type_container">x</span>
6506
6507 <span class="entry_type_array">
6508 3
6509 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006510 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006511 <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 -08006512
6513
6514 </td> <!-- entry_type -->
6515
6516 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006517 <p>GPS coordinates to include in output JPEG
6518EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006519 </td>
6520
6521 <td class="entry_units">
6522 </td>
6523
6524 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006525 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006526 </td>
6527
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006528 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006529 <ul class="entry_tags">
6530 <li><a href="#tag_BC">BC</a></li>
6531 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006532 </td>
6533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006534 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006535
6536
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006537 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6538 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006539
6540
6541 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006542 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006543 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006544 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006545 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006546 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006547
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006548 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006549
6550
6551 </td> <!-- entry_type -->
6552
6553 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006554 <p>32 characters describing GPS algorithm to
6555include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006556 </td>
6557
6558 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006559 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006560 </td>
6561
6562 <td class="entry_range">
6563 </td>
6564
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006565 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006566 <ul class="entry_tags">
6567 <li><a href="#tag_BC">BC</a></li>
6568 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006569 </td>
6570
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006572
6573
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006574 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6575 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006576
6577
6578 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006579 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006580 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006581 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006582 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006583 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006584
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006585 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006586
6587
6588 </td> <!-- entry_type -->
6589
6590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006591 <p>Time GPS fix was made to include in
6592EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006593 </td>
6594
6595 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006596 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006597 </td>
6598
6599 <td class="entry_range">
6600 </td>
6601
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006602 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006603 <ul class="entry_tags">
6604 <li><a href="#tag_BC">BC</a></li>
6605 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006606 </td>
6607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006608 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006609
6610
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006611 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6612 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006613
6614
6615 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006616 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006617 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006618 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006619 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006620 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006621
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006622 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006623
6624
6625 </td> <!-- entry_type -->
6626
6627 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006628 <p>Orientation of JPEG image to
6629write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006630 </td>
6631
6632 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006633 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006634 </td>
6635
6636 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006637 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006638 </td>
6639
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006640 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006641 <ul class="entry_tags">
6642 <li><a href="#tag_BC">BC</a></li>
6643 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006644 </td>
6645
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006646 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006647
6648
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006649 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6650 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006651
6652
6653 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006654 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006655 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006656 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006657 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006658 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006659
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006660 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006661
6662
6663 </td> <!-- entry_type -->
6664
6665 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006666 <p>Compression quality of the final JPEG
6667image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006668 </td>
6669
6670 <td class="entry_units">
6671 </td>
6672
6673 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006674 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006675 </td>
6676
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006677 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006678 <ul class="entry_tags">
6679 <li><a href="#tag_BC">BC</a></li>
6680 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006681 </td>
6682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006683 </tr>
6684 <tr class="entries_header">
6685 <th class="th_details" colspan="5">Details</th>
6686 </tr>
6687 <tr class="entry_cont">
6688 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006689 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006690 </td>
6691 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006692
6693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6695 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006696
6697
6698 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006699 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006700 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006701 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006702 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006703 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006704
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006705 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006706
6707
6708 </td> <!-- entry_type -->
6709
6710 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006711 <p>The size of the compressed JPEG image,<wbr/> in
6712bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006713 </td>
6714
6715 <td class="entry_units">
6716 </td>
6717
6718 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006719 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006720 </td>
6721
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006722 <td class="entry_tags">
6723 </td>
6724
6725 </tr>
6726 <tr class="entries_header">
6727 <th class="th_details" colspan="5">Details</th>
6728 </tr>
6729 <tr class="entry_cont">
6730 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006731 <p>If no JPEG output is produced for the request,<wbr/>
6732this must be 0.<wbr/></p>
6733<p>Otherwise,<wbr/> this describes the real size of the compressed
6734JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006735if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6736has <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 -08006737the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6738500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006739 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006740 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006741
6742
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006743 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6744 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006745
6746
6747 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006748 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006749 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006750 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006751 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006752 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006753
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006754 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006755
6756
6757 </td> <!-- entry_type -->
6758
6759 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006760 <p>Compression quality of JPEG
6761thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006762 </td>
6763
6764 <td class="entry_units">
6765 </td>
6766
6767 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006768 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006769 </td>
6770
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006771 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006772 <ul class="entry_tags">
6773 <li><a href="#tag_BC">BC</a></li>
6774 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006775 </td>
6776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006778
6779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6781 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006782
6783
6784 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006785 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006786 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006787 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006788 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006789 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006790 <span class="entry_type_container">x</span>
6791
6792 <span class="entry_type_array">
6793 2
6794 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006795 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006796
6797
6798 </td> <!-- entry_type -->
6799
6800 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006801 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006802 </td>
6803
6804 <td class="entry_units">
6805 </td>
6806
6807 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006808 <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 -08006809 </td>
6810
6811 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006812 <ul class="entry_tags">
6813 <li><a href="#tag_BC">BC</a></li>
6814 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006815 </td>
6816
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006817 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006818 <tr class="entries_header">
6819 <th class="th_details" colspan="5">Details</th>
6820 </tr>
6821 <tr class="entry_cont">
6822 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006823 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6824but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006825<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6826the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006827 </td>
6828 </tr>
6829
6830
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006831 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6832 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006833
6834
6835
6836 <!-- end of kind -->
6837 </tbody>
6838
6839 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006840 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006841
6842
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006843 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006844
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006845 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006846 <tr>
6847 <th class="th_name">Property Name</th>
6848 <th class="th_type">Type</th>
6849 <th class="th_description">Description</th>
6850 <th class="th_units">Units</th>
6851 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006852 <th class="th_tags">Tags</th>
6853 </tr>
6854 </thead>
6855
6856 <tbody>
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006868 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006869 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006870 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006871 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006872 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006873
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006874 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006875
6876
6877 </td> <!-- entry_type -->
6878
6879 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006880 <p>The ratio of lens focal length to the effective
6881aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006882 </td>
6883
6884 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006885 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006886 </td>
6887
6888 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006889 <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 -08006890 </td>
6891
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006892 <td class="entry_tags">
6893 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006894 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006895 </ul>
6896 </td>
6897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006898 </tr>
6899 <tr class="entries_header">
6900 <th class="th_details" colspan="5">Details</th>
6901 </tr>
6902 <tr class="entry_cont">
6903 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006904 <p>This will only be supported on the camera devices that
6905have variable aperture lens.<wbr/> The aperture value can only be
6906one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6907<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6908this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6909<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6910to achieve manual exposure control.<wbr/></p>
6911<p>The requested aperture value may take several frames to reach the
6912requested value; the camera device will report the current (intermediate)
6913aperture size in capture result metadata while the aperture is changing.<wbr/></p>
6914<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6915the ON modes,<wbr/> this will be overridden by the camera device
6916auto-exposure algorithm,<wbr/> the overridden values are then provided
6917back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006918 </td>
6919 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006920
6921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006922 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6923 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006924
6925
6926 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006927 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006928 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006929 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006930 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006931 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006932
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006933 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006934
6935
6936 </td> <!-- entry_type -->
6937
6938 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006939 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006940 </td>
6941
6942 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006943 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006944 </td>
6945
6946 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006947 <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 -08006948 </td>
6949
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006950 <td class="entry_tags">
6951 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006952 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006953 </ul>
6954 </td>
6955
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006956 </tr>
6957 <tr class="entries_header">
6958 <th class="th_details" colspan="5">Details</th>
6959 </tr>
6960 <tr class="entry_cont">
6961 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006962 <p>This will not be supported on most camera devices.<wbr/> On devices
6963where this is supported,<wbr/> this may only be set to one of the
6964values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
6965<p>Lens filters are typically used to lower the amount of light the
6966sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
6967step is the standard logarithmic representation,<wbr/> which are
6968non-negative,<wbr/> and inversely proportional to the amount of light
6969hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
6970in no reduction of the incoming light,<wbr/> and setting this to 2 would
6971mean that the filter is set to reduce incoming light by two stops
6972(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006973 </td>
6974 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006975
6976
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006977 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6978 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006979
6980
6981 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006983 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006985 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006986 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006987
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006988 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006989
6990
6991 </td> <!-- entry_type -->
6992
6993 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08006994 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006995 </td>
6996
6997 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006998 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006999 </td>
7000
7001 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007002 <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 -08007003 </td>
7004
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007005 <td class="entry_tags">
7006 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007007 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007008 </ul>
7009 </td>
7010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007011 </tr>
7012 <tr class="entries_header">
7013 <th class="th_details" colspan="5">Details</th>
7014 </tr>
7015 <tr class="entry_cont">
7016 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007017 <p>This setting controls the physical focal length of the camera
7018device's lens.<wbr/> Changing the focal length changes the field of
7019view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7020<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
7021setting won't be applied instantaneously,<wbr/> and it may take several
7022frames before the lens can move to the requested focal length.<wbr/>
7023While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7024be set to MOVING.<wbr/></p>
7025<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007026 </td>
7027 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007028
7029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007030 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7031 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007032
7033
7034 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007035 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007036 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007037 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007038 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007039 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007040
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007041 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007042
7043
7044 </td> <!-- entry_type -->
7045
7046 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007047 <p>Distance to plane of sharpest focus,<wbr/>
7048measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007049 </td>
7050
7051 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007052 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007053 </td>
7054
7055 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007056 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007057 </td>
7058
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007059 <td class="entry_tags">
7060 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007061 <li><a href="#tag_BC">BC</a></li>
7062 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007063 </ul>
7064 </td>
7065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007066 </tr>
7067 <tr class="entries_header">
7068 <th class="th_details" colspan="5">Details</th>
7069 </tr>
7070 <tr class="entry_cont">
7071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007072 <p>0 = infinity focus.<wbr/> Used value should be clamped
7073to (0,<wbr/>minimum focus distance)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007074 </td>
7075 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007076
7077
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007078 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7079 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007080
7081
7082 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007083 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007084 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007085 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007086 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007087 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007088
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007089 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007090
7091 <ul class="entry_type_enum">
7092 <li>
7093 <span class="entry_type_enum_name">OFF</span>
7094 </li>
7095 <li>
7096 <span class="entry_type_enum_name">ON</span>
7097 <span class="entry_type_enum_optional">optional</span>
7098 </li>
7099 </ul>
7100
7101 </td> <!-- entry_type -->
7102
7103 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007104 <p>Whether optical image stabilization is
7105enabled.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007106 </td>
7107
7108 <td class="entry_units">
7109 </td>
7110
7111 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007112 <p>android.<wbr/>lens.<wbr/>available<wbr/>Optical<wbr/>Stabilization</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007113 </td>
7114
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007115 <td class="entry_tags">
7116 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007117 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007118 </ul>
7119 </td>
7120
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007121 </tr>
7122 <tr class="entries_header">
7123 <th class="th_details" colspan="5">Details</th>
7124 </tr>
7125 <tr class="entry_cont">
7126 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007127 <p>Will not be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007128 </td>
7129 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007130
7131
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007132 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7133 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007134
7135
7136
7137 <!-- end of kind -->
7138 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007139 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007140
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007141 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007142 <tr>
7143 <th class="th_name">Property Name</th>
7144 <th class="th_type">Type</th>
7145 <th class="th_description">Description</th>
7146 <th class="th_units">Units</th>
7147 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007148 <th class="th_tags">Tags</th>
7149 </tr>
7150 </thead>
7151
7152 <tbody>
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007166 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007167 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007168 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007169 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007170 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007171 <span class="entry_type_container">x</span>
7172
7173 <span class="entry_type_array">
7174 n
7175 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007176 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007177
7178
7179 </td> <!-- entry_type -->
7180
7181 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007182 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007183values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007184 </td>
7185
7186 <td class="entry_units">
7187 </td>
7188
7189 <td class="entry_range">
Zhijun He1b58d382014-01-10 10:22:53 -08007190 <p>one entry required,<wbr/> &amp;&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007191 </td>
7192
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007193 <td class="entry_tags">
7194 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007195 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007196 </ul>
7197 </td>
7198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007199 </tr>
7200 <tr class="entries_header">
7201 <th class="th_details" colspan="5">Details</th>
7202 </tr>
7203 <tr class="entry_cont">
7204 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007205 <p>If the camera device doesn't support variable apertures,<wbr/>
7206listed value will be the fixed aperture.<wbr/></p>
7207<p>If the camera device supports variable apertures,<wbr/> the aperture value
7208in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007209 </td>
7210 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007211
7212
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007213 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7214 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007215
7216
7217 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007218 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007219 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007220 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007221 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007222 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007223 <span class="entry_type_container">x</span>
7224
7225 <span class="entry_type_array">
7226 n
7227 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007228 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007229
7230
7231 </td> <!-- entry_type -->
7232
7233 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007234 <p>List of supported neutral density filter values for
7235<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007236 </td>
7237
7238 <td class="entry_units">
7239 </td>
7240
7241 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007242 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007243 </td>
7244
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007245 <td class="entry_tags">
7246 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007247 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007248 </ul>
7249 </td>
7250
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007251 </tr>
7252 <tr class="entries_header">
7253 <th class="th_details" colspan="5">Details</th>
7254 </tr>
7255 <tr class="entry_cont">
7256 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007257 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7258availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7259list contains only the exact filter density values available on
7260this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007261 </td>
7262 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007263
7264
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007265 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7266 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007267
7268
7269 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007270 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007271 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007272 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007273 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007274 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007275 <span class="entry_type_container">x</span>
7276
7277 <span class="entry_type_array">
7278 n
7279 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007280 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007281 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007282
7283
7284 </td> <!-- entry_type -->
7285
7286 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007287 <p>The available focal lengths for this device for use with
7288<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007289 </td>
7290
7291 <td class="entry_units">
7292 </td>
7293
7294 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007295 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7296contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007297 </td>
7298
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007299 <td class="entry_tags">
7300 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007301 <li><a href="#tag_BC">BC</a></li>
7302 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007303 </ul>
7304 </td>
7305
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007306 </tr>
7307 <tr class="entries_header">
7308 <th class="th_details" colspan="5">Details</th>
7309 </tr>
7310 <tr class="entry_cont">
7311 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007312 <p>If optical zoom is not supported,<wbr/> this will only report
7313a single value corresponding to the static focal length of the
7314device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7315by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007316 </td>
7317 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007318
7319
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007320 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7321 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007322
7323
7324 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007325 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007326 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007327 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007328 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007329 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007330 <span class="entry_type_container">x</span>
7331
7332 <span class="entry_type_array">
7333 n
7334 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007335 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007336 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007337
7338
7339 </td> <!-- entry_type -->
7340
7341 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007342 <p>List of supported optical image
7343stabilization modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007344 </td>
7345
7346 <td class="entry_units">
7347 </td>
7348
7349 <td class="entry_range">
7350 </td>
7351
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007352 <td class="entry_tags">
7353 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007354 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007355 </ul>
7356 </td>
7357
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007358 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007359
7360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007361 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7362 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007363
7364
7365 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007366 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007367 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007368 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007369 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007370 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007371 <span class="entry_type_container">x</span>
7372
7373 <span class="entry_type_array">
7374 2 x 3 x n x m
7375 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007376 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007377 <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 -08007378
7379
7380 </td> <!-- entry_type -->
7381
7382 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007383 <p>A low-resolution map for correction of
7384geometric distortions and chromatic aberrations,<wbr/> per
7385color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007386 </td>
7387
7388 <td class="entry_units">
7389 </td>
7390
7391 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007392 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007393 </td>
7394
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007395 <td class="entry_tags">
7396 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007397 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007398 </ul>
7399 </td>
7400
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007401 </tr>
7402 <tr class="entries_header">
7403 <th class="th_details" colspan="5">Details</th>
7404 </tr>
7405 <tr class="entry_cont">
7406 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007407 <p>[DNG wants a function instead].<wbr/> What's easiest
7408for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7409j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7410j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7411entry 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 -08007412 </td>
7413 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007414
7415
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007416 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7417 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007418
7419
7420 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007421 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007422 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007423 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007424 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007425 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007426 <span class="entry_type_container">x</span>
7427
7428 <span class="entry_type_array">
7429 2
7430 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007431 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007432 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007433
7434
7435 </td> <!-- entry_type -->
7436
7437 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007438 <p>Dimensions of geometric correction
7439map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007440 </td>
7441
7442 <td class="entry_units">
7443 </td>
7444
7445 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007446 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007447 </td>
7448
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007449 <td class="entry_tags">
7450 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007451 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007452 </ul>
7453 </td>
7454
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007455 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007456
7457
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007458 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7459 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007460
7461
7462 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007463 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007464 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007465 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007466 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007467 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007468
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007469 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007470
7471
7472 </td> <!-- entry_type -->
7473
7474 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007475 <p>Hyperfocal distance for this lens; set to
74760 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007477 </td>
7478
7479 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007480 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007481 </td>
7482
7483 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007484 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007485 </td>
7486
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007487 <td class="entry_tags">
7488 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007489 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007490 </ul>
7491 </td>
7492
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007493 </tr>
7494 <tr class="entries_header">
7495 <th class="th_details" colspan="5">Details</th>
7496 </tr>
7497 <tr class="entry_cont">
7498 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007499 <p>The hyperfocal distance is used for the old
7500API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007501 </td>
7502 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007503
7504
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007505 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7506 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007507
7508
7509 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007510 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007511 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007512 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007513 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007514 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007515
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007516 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007517
7518
7519 </td> <!-- entry_type -->
7520
7521 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007522 <p>Shortest distance from frontmost surface
7523of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007524 </td>
7525
7526 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007527 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007528 </td>
7529
7530 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007531 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007532 </td>
7533
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007534 <td class="entry_tags">
7535 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007536 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007537 </ul>
7538 </td>
7539
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007540 </tr>
7541 <tr class="entries_header">
7542 <th class="th_details" colspan="5">Details</th>
7543 </tr>
7544 <tr class="entry_cont">
7545 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007546 <p>If the lens is fixed-focus,<wbr/> this should be
75470</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007548 </td>
7549 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007550
7551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007552 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007554
7555
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007556 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007557 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007558 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007561 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007562 <span class="entry_type_container">x</span>
7563
7564 <span class="entry_type_array">
7565 2
7566 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007567 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007568 <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 -08007569
7570
7571 </td> <!-- entry_type -->
7572
7573 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007574 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007575 </td>
7576
7577 <td class="entry_units">
7578 </td>
7579
7580 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007581 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007582 </td>
7583
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007584 <td class="entry_tags">
7585 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007586 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007587 </ul>
7588 </td>
7589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007590 </tr>
7591 <tr class="entries_header">
7592 <th class="th_details" colspan="5">Details</th>
7593 </tr>
7594 <tr class="entry_cont">
7595 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007596 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7597must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007598 </td>
7599 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007600
7601
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007602 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7603 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007604
7605
7606
7607
7608
7609 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007610 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007611 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007612 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007613 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007614 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007615
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007616 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007617
7618 <ul class="entry_type_enum">
7619 <li>
7620 <span class="entry_type_enum_name">FRONT</span>
7621 </li>
7622 <li>
7623 <span class="entry_type_enum_name">BACK</span>
7624 </li>
7625 </ul>
7626
7627 </td> <!-- entry_type -->
7628
7629 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007630 <p>Direction the camera faces relative to
7631device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007632 </td>
7633
7634 <td class="entry_units">
7635 </td>
7636
7637 <td class="entry_range">
7638 </td>
7639
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007640 <td class="entry_tags">
7641 </td>
7642
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007643 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007644
7645
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007646 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7647 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007648
7649
7650 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007651 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007652 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007653 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007654 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007655 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007656 <span class="entry_type_container">x</span>
7657
7658 <span class="entry_type_array">
7659 2
7660 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007661 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007662 <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 -08007663
7664
7665 </td> <!-- entry_type -->
7666
7667 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007668 <p>Relative angle of camera optical axis to the
7669perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007670 </td>
7671
7672 <td class="entry_units">
7673 </td>
7674
7675 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007676 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007677 </td>
7678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007679 <td class="entry_tags">
7680 <ul class="entry_tags">
7681 <li><a href="#tag_ADV">ADV</a></li>
7682 </ul>
7683 </td>
7684
7685 </tr>
7686 <tr class="entries_header">
7687 <th class="th_details" colspan="5">Details</th>
7688 </tr>
7689 <tr class="entry_cont">
7690 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007691 <p>Examples:</p>
7692<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007693is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007694<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007695device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007696<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7697the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007698<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007699direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007700 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007701 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007702
7703
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007704 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7705 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007706
7707
7708 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007709 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007710 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007711 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007712 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007713 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007714 <span class="entry_type_container">x</span>
7715
7716 <span class="entry_type_array">
7717 3, location in mm, in the sensor coordinate
7718 system
7719 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007720 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007721
7722
7723 </td> <!-- entry_type -->
7724
7725 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007726 <p>Coordinates of camera optical axis on
7727device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007728 </td>
7729
7730 <td class="entry_units">
7731 </td>
7732
7733 <td class="entry_range">
7734 </td>
7735
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007736 <td class="entry_tags">
7737 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007738 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007739 </ul>
7740 </td>
7741
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007742 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007743
7744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007745 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7746 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007747
7748
7749
7750 <!-- end of kind -->
7751 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007752 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007753
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007754 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007755 <tr>
7756 <th class="th_name">Property Name</th>
7757 <th class="th_type">Type</th>
7758 <th class="th_description">Description</th>
7759 <th class="th_units">Units</th>
7760 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007761 <th class="th_tags">Tags</th>
7762 </tr>
7763 </thead>
7764
7765 <tbody>
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007777 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007778 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007779 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007780 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007781 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007782
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007783 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007784
7785
7786 </td> <!-- entry_type -->
7787
7788 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007789 <p>The ratio of lens focal length to the effective
7790aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007791 </td>
7792
7793 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007794 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007795 </td>
7796
7797 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007798 <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 -08007799 </td>
7800
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007801 <td class="entry_tags">
7802 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007803 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007804 </ul>
7805 </td>
7806
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007807 </tr>
7808 <tr class="entries_header">
7809 <th class="th_details" colspan="5">Details</th>
7810 </tr>
7811 <tr class="entry_cont">
7812 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007813 <p>This will only be supported on the camera devices that
7814have variable aperture lens.<wbr/> The aperture value can only be
7815one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7816<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7817this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7818<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7819to achieve manual exposure control.<wbr/></p>
7820<p>The requested aperture value may take several frames to reach the
7821requested value; the camera device will report the current (intermediate)
7822aperture size in capture result metadata while the aperture is changing.<wbr/></p>
7823<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7824the ON modes,<wbr/> this will be overridden by the camera device
7825auto-exposure algorithm,<wbr/> the overridden values are then provided
7826back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007827 </td>
7828 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007829
7830
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007831 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7832 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007833
7834
7835 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007836 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007837 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007838 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007839 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007840 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007841
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007842 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007843
7844
7845 </td> <!-- entry_type -->
7846
7847 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007848 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007849 </td>
7850
7851 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007852 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007853 </td>
7854
7855 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007856 <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 -08007857 </td>
7858
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007859 <td class="entry_tags">
7860 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007861 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007862 </ul>
7863 </td>
7864
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007865 </tr>
7866 <tr class="entries_header">
7867 <th class="th_details" colspan="5">Details</th>
7868 </tr>
7869 <tr class="entry_cont">
7870 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007871 <p>This will not be supported on most camera devices.<wbr/> On devices
7872where this is supported,<wbr/> this may only be set to one of the
7873values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7874<p>Lens filters are typically used to lower the amount of light the
7875sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7876step is the standard logarithmic representation,<wbr/> which are
7877non-negative,<wbr/> and inversely proportional to the amount of light
7878hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7879in no reduction of the incoming light,<wbr/> and setting this to 2 would
7880mean that the filter is set to reduce incoming light by two stops
7881(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007882 </td>
7883 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007884
7885
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007886 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7887 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007888
7889
7890 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007891 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007892 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007893 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007894 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007895 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007896
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007897 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007898
7899
7900 </td> <!-- entry_type -->
7901
7902 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007903 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007904 </td>
7905
7906 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007907 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007908 </td>
7909
7910 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007911 <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 -08007912 </td>
7913
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007914 <td class="entry_tags">
7915 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007916 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007917 </ul>
7918 </td>
7919
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007920 </tr>
7921 <tr class="entries_header">
7922 <th class="th_details" colspan="5">Details</th>
7923 </tr>
7924 <tr class="entry_cont">
7925 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007926 <p>This setting controls the physical focal length of the camera
7927device's lens.<wbr/> Changing the focal length changes the field of
7928view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7929<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
7930setting won't be applied instantaneously,<wbr/> and it may take several
7931frames before the lens can move to the requested focal length.<wbr/>
7932While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7933be set to MOVING.<wbr/></p>
7934<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007935 </td>
7936 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007937
7938
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007939 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7940 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007941
7942
7943 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007944 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007945 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007946 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007947 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007948 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007949
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007950 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007951
7952
7953 </td> <!-- entry_type -->
7954
7955 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007956 <p>Distance to plane of sharpest focus,<wbr/>
7957measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007958 </td>
7959
7960 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007961 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007962 </td>
7963
7964 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007965 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007966 </td>
7967
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007968 <td class="entry_tags">
7969 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007970 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007971 </ul>
7972 </td>
7973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007974 </tr>
7975 <tr class="entries_header">
7976 <th class="th_details" colspan="5">Details</th>
7977 </tr>
7978 <tr class="entry_cont">
7979 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007980 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007981 </td>
7982 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007983
7984
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007985 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7986 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007987
7988
7989 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007990 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007991 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007992 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007993 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007994 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07007995 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007996
Zhijun He50451ad2013-09-26 10:27:47 -07007997 <span class="entry_type_array">
7998 2
7999 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008000 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008001 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008002
8003
8004 </td> <!-- entry_type -->
8005
8006 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008007 <p>The range of scene distances that are in
8008sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008009 </td>
8010
8011 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008012 pair of focus distances in diopters: (near,<wbr/>
8013 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008014 </td>
8015
8016 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008017 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008018 </td>
8019
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008020 <td class="entry_tags">
8021 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008022 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008023 </ul>
8024 </td>
8025
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008026 </tr>
8027 <tr class="entries_header">
8028 <th class="th_details" colspan="5">Details</th>
8029 </tr>
8030 <tr class="entry_cont">
8031 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008032 <p>If variable focus not supported,<wbr/> can still report
8033fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008034 </td>
8035 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008036
8037
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008038 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8039 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008040
8041
8042 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008043 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008044 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008045 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008046 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008047 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008048
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008049 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008050
8051 <ul class="entry_type_enum">
8052 <li>
8053 <span class="entry_type_enum_name">OFF</span>
8054 </li>
8055 <li>
8056 <span class="entry_type_enum_name">ON</span>
8057 <span class="entry_type_enum_optional">optional</span>
8058 </li>
8059 </ul>
8060
8061 </td> <!-- entry_type -->
8062
8063 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008064 <p>Whether optical image stabilization is
8065enabled.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008066 </td>
8067
8068 <td class="entry_units">
8069 </td>
8070
8071 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008072 <p>android.<wbr/>lens.<wbr/>available<wbr/>Optical<wbr/>Stabilization</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008073 </td>
8074
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008075 <td class="entry_tags">
8076 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008077 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008078 </ul>
8079 </td>
8080
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008081 </tr>
8082 <tr class="entries_header">
8083 <th class="th_details" colspan="5">Details</th>
8084 </tr>
8085 <tr class="entry_cont">
8086 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008087 <p>Will not be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008088 </td>
8089 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008090
8091
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008092 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8093 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008094
8095
8096 <tr class="entry" id="dynamic_android.lens.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008097 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008098 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008099 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008100 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008101 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008103 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008104
8105 <ul class="entry_type_enum">
8106 <li>
8107 <span class="entry_type_enum_name">STATIONARY</span>
8108 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008109 <li>
8110 <span class="entry_type_enum_name">MOVING</span>
8111 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008112 </ul>
8113
8114 </td> <!-- entry_type -->
8115
8116 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008117 <p>Current lens status</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008118 </td>
8119
8120 <td class="entry_units">
8121 </td>
8122
8123 <td class="entry_range">
8124 </td>
8125
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008126 <td class="entry_tags">
8127 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008128 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008129 </ul>
8130 </td>
8131
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008132 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008133
8134
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008135 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8136 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008137
8138
8139
8140 <!-- end of kind -->
8141 </tbody>
8142
8143 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008144 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008145
8146
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008147 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008148
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008149 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008150 <tr>
8151 <th class="th_name">Property Name</th>
8152 <th class="th_type">Type</th>
8153 <th class="th_description">Description</th>
8154 <th class="th_units">Units</th>
8155 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008156 <th class="th_tags">Tags</th>
8157 </tr>
8158 </thead>
8159
8160 <tbody>
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008172 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008173 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008174 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008175 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008176 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008177
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008178 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008179
8180 <ul class="entry_type_enum">
8181 <li>
8182 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008183 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008184 </li>
8185 <li>
8186 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008187 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8188output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008189 </li>
8190 <li>
8191 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008192 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8193quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008194 </li>
8195 </ul>
8196
8197 </td> <!-- entry_type -->
8198
8199 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008200 <p>Mode of operation for the noise reduction
8201algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008202 </td>
8203
8204 <td class="entry_units">
8205 </td>
8206
8207 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008208 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008209 </td>
8210
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008211 <td class="entry_tags">
8212 <ul class="entry_tags">
8213 <li><a href="#tag_V1">V1</a></li>
8214 </ul>
8215 </td>
8216
8217 </tr>
8218 <tr class="entries_header">
8219 <th class="th_details" colspan="5">Details</th>
8220 </tr>
8221 <tr class="entry_cont">
8222 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008223 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8224will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008225<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8226will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8227will use the highest-quality noise filtering algorithms,<wbr/>
8228even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008229slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008230 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008231 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008232
8233
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008234 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8235 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008236
8237
8238 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008239 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008240 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008241 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008242 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008243 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008244
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008245 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008246
8247
8248 </td> <!-- entry_type -->
8249
8250 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008251 <p>Control the amount of noise reduction
8252applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008253 </td>
8254
8255 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008256 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008257 </td>
8258
8259 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008260 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008261 </td>
8262
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008263 <td class="entry_tags">
8264 </td>
8265
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008266 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008267
8268
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008269 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8270 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008271
8272
8273
8274 <!-- end of kind -->
8275 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008276 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008277
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008278 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008279 <tr>
8280 <th class="th_name">Property Name</th>
8281 <th class="th_type">Type</th>
8282 <th class="th_description">Description</th>
8283 <th class="th_units">Units</th>
8284 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008285 <th class="th_tags">Tags</th>
8286 </tr>
8287 </thead>
8288
8289 <tbody>
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008301 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008302 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008303 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008304 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008305 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008306
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008307 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008308
8309 <ul class="entry_type_enum">
8310 <li>
8311 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008312 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008313 </li>
8314 <li>
8315 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008316 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8317output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008318 </li>
8319 <li>
8320 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008321 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8322quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008323 </li>
8324 </ul>
8325
8326 </td> <!-- entry_type -->
8327
8328 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008329 <p>Mode of operation for the noise reduction
8330algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008331 </td>
8332
8333 <td class="entry_units">
8334 </td>
8335
8336 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008337 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008338 </td>
8339
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008340 <td class="entry_tags">
8341 <ul class="entry_tags">
8342 <li><a href="#tag_V1">V1</a></li>
8343 </ul>
8344 </td>
8345
8346 </tr>
8347 <tr class="entries_header">
8348 <th class="th_details" colspan="5">Details</th>
8349 </tr>
8350 <tr class="entry_cont">
8351 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008352 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8353will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008354<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8355will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8356will use the highest-quality noise filtering algorithms,<wbr/>
8357even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008358slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008359 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008360 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008361
8362
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008363 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8364 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008365
8366
8367
8368 <!-- end of kind -->
8369 </tbody>
8370
8371 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008372 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008373
8374
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008375 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008376
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008377 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008378 <tr>
8379 <th class="th_name">Property Name</th>
8380 <th class="th_type">Type</th>
8381 <th class="th_description">Description</th>
8382 <th class="th_units">Units</th>
8383 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008384 <th class="th_tags">Tags</th>
8385 </tr>
8386 </thead>
8387
8388 <tbody>
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008400 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008401 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008402 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008403 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008404 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008405
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008406 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008407
8408
8409 </td> <!-- entry_type -->
8410
8411 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008412 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008413scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008414region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8415and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008416 </td>
8417
8418 <td class="entry_units">
8419 </td>
8420
8421 <td class="entry_range">
8422 </td>
8423
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008424 <td class="entry_tags">
8425 </td>
8426
8427 </tr>
8428 <tr class="entries_header">
8429 <th class="th_details" colspan="5">Details</th>
8430 </tr>
8431 <tr class="entry_cont">
8432 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008433 <p>Normalized coordinates refer to those in the
8434(-1000,<wbr/>1000) range mentioned in the
8435android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008436<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008437sensor array-relative coordinates for all region data.<wbr/> Does
8438not need to be listed in static metadata.<wbr/> Support will be
8439removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008440 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008441 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008442
8443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008444 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8445 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008446
8447
8448 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008449 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008450 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008451 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008452 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008453 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008454
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008455 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008456
8457
8458 </td> <!-- entry_type -->
8459
8460 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008461 <p>If set to 1,<wbr/> then the camera service always
8462switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8463trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008464 </td>
8465
8466 <td class="entry_units">
8467 </td>
8468
8469 <td class="entry_range">
8470 </td>
8471
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008472 <td class="entry_tags">
8473 </td>
8474
8475 </tr>
8476 <tr class="entries_header">
8477 <th class="th_details" colspan="5">Details</th>
8478 </tr>
8479 <tr class="entry_cont">
8480 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008481 <p>HAL implementations should implement AF trigger
8482modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8483CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8484not need to be listed in static metadata.<wbr/> Support will be
8485removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008486 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008487 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008488
8489
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008490 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8491 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008492
8493
8494 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008495 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008496 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008497 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008498 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008499 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008500
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008501 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008502
8503
8504 </td> <!-- entry_type -->
8505
8506 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008507 <p>If set to 1,<wbr/> the camera service uses
8508CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8509HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8510shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008511 </td>
8512
8513 <td class="entry_units">
8514 </td>
8515
8516 <td class="entry_range">
8517 </td>
8518
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008519 <td class="entry_tags">
8520 </td>
8521
8522 </tr>
8523 <tr class="entries_header">
8524 <th class="th_details" colspan="5">Details</th>
8525 </tr>
8526 <tr class="entry_cont">
8527 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008528 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008529to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008530zero-shutter-lag,<wbr/> instead of relying on an explicit
8531format setting.<wbr/> Does not need to be listed in static
8532metadata.<wbr/> Support will be removed in future versions of
8533camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008534 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008535 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008536
8537
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008538 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8539 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008540
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008541
8542 <tr class="entry" id="static_android.quirks.usePartialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008543 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008544 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008545 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008546 <td class="entry_type">
8547 <span class="entry_type_name">byte</span>
8548
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008549 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008550
8551
8552 </td> <!-- entry_type -->
8553
8554 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008555 <p>If set to 1,<wbr/> the HAL will always split result
8556metadata for a single capture into multiple buffers,<wbr/>
8557returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008558 </td>
8559
8560 <td class="entry_units">
8561 </td>
8562
8563 <td class="entry_range">
8564 </td>
8565
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008566 <td class="entry_tags">
8567 </td>
8568
8569 </tr>
8570 <tr class="entries_header">
8571 <th class="th_details" colspan="5">Details</th>
8572 </tr>
8573 <tr class="entry_cont">
8574 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008575 <p>Does not need to be listed in static
8576metadata.<wbr/> Support for partial results will be reworked in
8577future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008578working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008579consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008580 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008581 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008582
8583
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008584 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8585 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008586
8587
8588
8589 <!-- end of kind -->
8590 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008591 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008592
8593 <thead class="entries_header">
8594 <tr>
8595 <th class="th_name">Property Name</th>
8596 <th class="th_type">Type</th>
8597 <th class="th_description">Description</th>
8598 <th class="th_units">Units</th>
8599 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008600 <th class="th_tags">Tags</th>
8601 </tr>
8602 </thead>
8603
8604 <tbody>
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615 <tr class="entry" id="dynamic_android.quirks.partialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008616 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008617 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008618 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008619 <td class="entry_type">
8620 <span class="entry_type_name entry_type_name_enum">byte</span>
8621
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008622 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008623
8624 <ul class="entry_type_enum">
8625 <li>
8626 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008627 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8628for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008629 </li>
8630 <li>
8631 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008632 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8633capture.<wbr/> More result buffers for this capture will be sent
8634by the HAL,<wbr/> the last of which will be marked
8635FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008636 </li>
8637 </ul>
8638
8639 </td> <!-- entry_type -->
8640
8641 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008642 <p>Whether a result given to the framework is the
8643final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008644subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008645values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008646 </td>
8647
8648 <td class="entry_units">
8649 </td>
8650
8651 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008652 <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008653 </td>
8654
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008655 <td class="entry_tags">
8656 </td>
8657
8658 </tr>
8659 <tr class="entries_header">
8660 <th class="th_details" colspan="5">Details</th>
8661 </tr>
8662 <tr class="entry_cont">
8663 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008664 <p>The entries in the result metadata buffers for a
8665single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008666FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008667requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8668always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8669before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8670in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8671capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8672only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008673 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008674 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008675
8676
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008677 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8678 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008679
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008680
8681
8682 <!-- end of kind -->
8683 </tbody>
8684
8685 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008686 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008687
8688
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008689 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008690
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008691 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008692 <tr>
8693 <th class="th_name">Property Name</th>
8694 <th class="th_type">Type</th>
8695 <th class="th_description">Description</th>
8696 <th class="th_units">Units</th>
8697 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008698 <th class="th_tags">Tags</th>
8699 </tr>
8700 </thead>
8701
8702 <tbody>
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008714 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008715 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008716 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008717 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008718 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008719
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008720 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008721
8722
8723 </td> <!-- entry_type -->
8724
8725 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008726 <p>A frame counter set by the framework.<wbr/> Must
8727be maintained unchanged in output frame.<wbr/> This value monotonically
8728increases with every new result (that is,<wbr/> each new result has a unique
8729frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008730 </td>
8731
8732 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008733 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008734 </td>
8735
8736 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008737 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008738 </td>
8739
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008740 <td class="entry_tags">
8741 </td>
8742
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008743 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008744
8745
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008746 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8747 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008748
8749
8750 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008751 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008752 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008753 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008754 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008755 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008756
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008757 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008758
8759
8760 </td> <!-- entry_type -->
8761
8762 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008763 <p>An application-specified ID for the current
8764request.<wbr/> Must be maintained unchanged in output
8765frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008766 </td>
8767
8768 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008769 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008770 </td>
8771
8772 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008773 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008774 </td>
8775
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008776 <td class="entry_tags">
8777 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008778 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008779 </ul>
8780 </td>
8781
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008782 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008783
8784
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008785 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8786 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008787
8788
8789 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008790 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008791 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008792 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008793 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008794 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008795 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008796
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008797 <span class="entry_type_array">
8798 n
8799 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008800 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008801
8802
8803 </td> <!-- entry_type -->
8804
8805 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008806 <p>List which camera reprocess stream is used
8807for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008808 </td>
8809
8810 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008811 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008812 </td>
8813
8814 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008815 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid
8816reprocess stream ID.<wbr/></p>
8817<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8818reprocess streams may be included in a single request; they
8819must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008820 </td>
8821
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008822 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008823 <ul class="entry_tags">
8824 <li><a href="#tag_HAL2">HAL2</a></li>
8825 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008826 </td>
8827
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008828 </tr>
8829 <tr class="entries_header">
8830 <th class="th_details" colspan="5">Details</th>
8831 </tr>
8832 <tr class="entry_cont">
8833 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008834 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008835REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008836 </td>
8837 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008838
8839
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008840 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8841 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008842
8843
8844 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008845 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008846 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008847 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008848 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008849 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008850
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008851 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008852
8853 <ul class="entry_type_enum">
8854 <li>
8855 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008856 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8857for application-bound buffer data.<wbr/> If no
8858application-bound streams exist,<wbr/> no frame should be
8859placed in the output frame queue.<wbr/> If such streams
8860exist,<wbr/> a frame should be placed on the output queue
8861with null metadata but with the necessary output buffer
8862information.<wbr/> Timestamp information should still be
8863included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008864 </li>
8865 <li>
8866 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008867 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8868only be produced if they are separately
8869enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008870 </li>
8871 </ul>
8872
8873 </td> <!-- entry_type -->
8874
8875 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008876 <p>How much metadata to produce on
8877output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008878 </td>
8879
8880 <td class="entry_units">
8881 </td>
8882
8883 <td class="entry_range">
8884 </td>
8885
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008886 <td class="entry_tags">
8887 </td>
8888
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008890
8891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8893 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008894
8895
8896 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008897 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008898 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008899 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008900 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008901 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008902 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008903
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008904 <span class="entry_type_array">
8905 n
8906 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008907 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008908
8909
8910 </td> <!-- entry_type -->
8911
8912 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008913 <p>Lists which camera output streams image data
8914from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008915 </td>
8916
8917 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008918 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008919 </td>
8920
8921 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008922 <p>List must only include streams that have been
8923created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008924 </td>
8925
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008926 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008927 <ul class="entry_tags">
8928 <li><a href="#tag_HAL2">HAL2</a></li>
8929 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008930 </td>
8931
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008932 </tr>
8933 <tr class="entries_header">
8934 <th class="th_details" colspan="5">Details</th>
8935 </tr>
8936 <tr class="entry_cont">
8937 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008938 <p>If no output streams are listed,<wbr/> then the image
8939data should simply be discarded.<wbr/> The image data must
8940still be captured for metadata and statistics production,<wbr/>
8941and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008942 </td>
8943 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008944
8945
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008946 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8947 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008948
8949
8950 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008951 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008952 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008953 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008954 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008955 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008956
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008957 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008958
8959 <ul class="entry_type_enum">
8960 <li>
8961 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008962 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
8963and process it according to the
8964settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008965 </li>
8966 <li>
8967 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008968 <span class="entry_type_enum_notes"><p>Process previously captured data; the
8969android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
8970source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
8971needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008972 </li>
8973 </ul>
8974
8975 </td> <!-- entry_type -->
8976
8977 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008978 <p>The type of the request; either CAPTURE or
8979REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008980 </td>
8981
8982 <td class="entry_units">
8983 </td>
8984
8985 <td class="entry_range">
8986 </td>
8987
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008988 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008989 <ul class="entry_tags">
8990 <li><a href="#tag_HAL2">HAL2</a></li>
8991 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008992 </td>
8993
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008994 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008995
8996
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008997 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8998 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008999
9000
9001
9002 <!-- end of kind -->
9003 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009004 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009005
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009006 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009007 <tr>
9008 <th class="th_name">Property Name</th>
9009 <th class="th_type">Type</th>
9010 <th class="th_description">Description</th>
9011 <th class="th_units">Units</th>
9012 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009013 <th class="th_tags">Tags</th>
9014 </tr>
9015 </thead>
9016
9017 <tbody>
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009029 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009030 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009031 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009032 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009033 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009034 <span class="entry_type_container">x</span>
9035
9036 <span class="entry_type_array">
9037 3
9038 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009039 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009040
9041
9042 </td> <!-- entry_type -->
9043
9044 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009045 <p>How many output streams can be allocated at
9046the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009047 </td>
9048
9049 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009050 The number of raw sensor streams; the number of
9051 processed,<wbr/> uncompressed streams; and the number of
9052 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009053 </td>
9054
9055 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009056 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009057for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009058 </td>
9059
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009060 <td class="entry_tags">
9061 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009062 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009063 </ul>
9064 </td>
9065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009066 </tr>
9067 <tr class="entries_header">
9068 <th class="th_details" colspan="5">Details</th>
9069 </tr>
9070 <tr class="entry_cont">
9071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009072 <p>Video snapshot with preview callbacks requires 3
9073processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9074one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009075 </td>
9076 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009077
9078
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009079 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9080 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009081
9082
9083 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009084 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009085 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009086 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009087 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009088 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009089 <span class="entry_type_container">x</span>
9090
9091 <span class="entry_type_array">
9092 1
9093 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009094 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009095
9096
9097 </td> <!-- entry_type -->
9098
9099 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009100 <p>How many reprocessing streams of any type
9101can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009102 </td>
9103
9104 <td class="entry_units">
9105 </td>
9106
9107 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009108 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009109 </td>
9110
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009111 <td class="entry_tags">
9112 </td>
9113
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009114 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009115
9116
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009117 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9118 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009119
Igor Murashkina46e02f2014-01-09 17:43:38 -08009120
9121 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9122 <td class="entry_name" rowspan="5">
9123 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9124 </td>
9125 <td class="entry_type">
9126 <span class="entry_type_name">byte</span>
9127
9128 <span class="entry_type_visibility"> [public]</span>
9129
9130
9131 </td> <!-- entry_type -->
9132
9133 <td class="entry_description">
9134 <p>Specifies the number of maximum pipeline stages a frame
9135has to go through from when it's exposed to when it's available
9136to the framework.<wbr/></p>
9137 </td>
9138
9139 <td class="entry_units">
9140 </td>
9141
9142 <td class="entry_range">
9143 </td>
9144
9145 <td class="entry_tags">
9146 </td>
9147
9148 </tr>
9149 <tr class="entries_header">
9150 <th class="th_details" colspan="5">Details</th>
9151 </tr>
9152 <tr class="entry_cont">
9153 <td class="entry_details" colspan="5">
9154 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9155one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9156its own stages to do custom HW processing.<wbr/> Further stages may be
9157added by SW processing.<wbr/></p>
9158<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9159processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9160depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9161the max pipeline depth.<wbr/></p>
9162<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9163X frame intervals.<wbr/></p>
9164<p>This value will be 8 or less.<wbr/></p>
9165 </td>
9166 </tr>
9167
9168 <tr class="entries_header">
9169 <th class="th_details" colspan="5">HAL Implementation Details</th>
9170 </tr>
9171 <tr class="entry_cont">
9172 <td class="entry_details" colspan="5">
9173 <p>This value should be 4 or less.<wbr/></p>
9174 </td>
9175 </tr>
9176
9177 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9178 <!-- end of entry -->
9179
Igor Murashkin2e291102014-01-10 14:18:30 -08009180
9181 <tr class="entry" id="static_android.request.partialResultCount">
9182 <td class="entry_name" rowspan="3">
9183 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9184 </td>
9185 <td class="entry_type">
9186 <span class="entry_type_name">int32</span>
9187
9188 <span class="entry_type_visibility"> [public]</span>
9189
9190
9191 </td> <!-- entry_type -->
9192
9193 <td class="entry_description">
9194 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9195a result will be composed of.<wbr/></p>
9196 </td>
9197
9198 <td class="entry_units">
9199 </td>
9200
9201 <td class="entry_range">
9202 <p>&gt;= 1</p>
9203 </td>
9204
9205 <td class="entry_tags">
9206 </td>
9207
9208 </tr>
9209 <tr class="entries_header">
9210 <th class="th_details" colspan="5">Details</th>
9211 </tr>
9212 <tr class="entry_cont">
9213 <td class="entry_details" colspan="5">
9214 <p>In order to combat the pipeline latency,<wbr/> partial results
9215may be delivered to the application layer from the camera device as
9216soon as they are available.<wbr/></p>
9217<p>A value of 1 means that partial results are not supported.<wbr/></p>
9218<p>A typical use case for this might be: after requesting an AF lock the
9219new AF state might be available 50% of the way through the pipeline.<wbr/>
9220The camera device could then immediately dispatch this state via a
9221partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9222the metadata via later partial results.<wbr/></p>
9223 </td>
9224 </tr>
9225
9226
9227 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9228 <!-- end of entry -->
9229
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009230
9231
9232 <!-- end of kind -->
9233 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009234 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009235
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009236 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009237 <tr>
9238 <th class="th_name">Property Name</th>
9239 <th class="th_type">Type</th>
9240 <th class="th_description">Description</th>
9241 <th class="th_units">Units</th>
9242 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009243 <th class="th_tags">Tags</th>
9244 </tr>
9245 </thead>
9246
9247 <tbody>
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009259 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009260 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009261 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009262 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009263 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009264
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009265 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009266
9267
9268 </td> <!-- entry_type -->
9269
9270 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009271 <p>A frame counter set by the framework.<wbr/> This value monotonically
9272increases with every new result (that is,<wbr/> each new result has a unique
9273frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009274 </td>
9275
9276 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009277 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009278 </td>
9279
9280 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009281 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009282 </td>
9283
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009284 <td class="entry_tags">
9285 </td>
9286
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009287 </tr>
9288 <tr class="entries_header">
9289 <th class="th_details" colspan="5">Details</th>
9290 </tr>
9291 <tr class="entry_cont">
9292 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009293 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009294 </td>
9295 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009296
9297
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009298 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9299 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009300
9301
9302 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009303 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009304 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009305 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009306 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009307 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009308
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009309 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009310
9311
9312 </td> <!-- entry_type -->
9313
9314 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009315 <p>An application-specified ID for the current
9316request.<wbr/> Must be maintained unchanged in output
9317frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009318 </td>
9319
9320 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009321 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009322 </td>
9323
9324 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009325 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009326 </td>
9327
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009328 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009329 <ul class="entry_tags">
9330 <li><a href="#tag_V1">V1</a></li>
9331 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009332 </td>
9333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009334 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009335
9336
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009337 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9338 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009339
9340
9341 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009342 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009343 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009344 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009345 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009346 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009347
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009348 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009349
9350 <ul class="entry_type_enum">
9351 <li>
9352 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009353 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9354for application-bound buffer data.<wbr/> If no
9355application-bound streams exist,<wbr/> no frame should be
9356placed in the output frame queue.<wbr/> If such streams
9357exist,<wbr/> a frame should be placed on the output queue
9358with null metadata but with the necessary output buffer
9359information.<wbr/> Timestamp information should still be
9360included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009361 </li>
9362 <li>
9363 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009364 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9365only be produced if they are separately
9366enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009367 </li>
9368 </ul>
9369
9370 </td> <!-- entry_type -->
9371
9372 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009373 <p>How much metadata to produce on
9374output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009375 </td>
9376
9377 <td class="entry_units">
9378 </td>
9379
9380 <td class="entry_range">
9381 </td>
9382
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009383 <td class="entry_tags">
9384 </td>
9385
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009386 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009387
9388
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009389 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9390 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009391
9392
9393 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009394 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009395 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009396 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009397 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009398 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009399 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009400
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009401 <span class="entry_type_array">
9402 n
9403 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009404 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009405
9406
9407 </td> <!-- entry_type -->
9408
9409 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009410 <p>Lists which camera output streams image data
9411from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009412 </td>
9413
9414 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009415 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009416 </td>
9417
9418 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009419 <p>List must only include streams that have been
9420created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009421 </td>
9422
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009423 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009424 <ul class="entry_tags">
9425 <li><a href="#tag_HAL2">HAL2</a></li>
9426 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009427 </td>
9428
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009429 </tr>
9430 <tr class="entries_header">
9431 <th class="th_details" colspan="5">Details</th>
9432 </tr>
9433 <tr class="entry_cont">
9434 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009435 <p>If no output streams are listed,<wbr/> then the image
9436data should simply be discarded.<wbr/> The image data must
9437still be captured for metadata and statistics production,<wbr/>
9438and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009439 </td>
9440 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009441
9442
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009443 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9444 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009445
Igor Murashkina46e02f2014-01-09 17:43:38 -08009446
9447 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9448 <td class="entry_name" rowspan="5">
9449 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9450 </td>
9451 <td class="entry_type">
9452 <span class="entry_type_name">byte</span>
9453
9454 <span class="entry_type_visibility"> [public]</span>
9455
9456
9457 </td> <!-- entry_type -->
9458
9459 <td class="entry_description">
9460 <p>Specifies the number of pipeline stages the frame went
9461through from when it was exposed to when the final completed result
9462was available to the framework.<wbr/></p>
9463 </td>
9464
9465 <td class="entry_units">
9466 </td>
9467
9468 <td class="entry_range">
9469 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9470 </td>
9471
9472 <td class="entry_tags">
9473 </td>
9474
9475 </tr>
9476 <tr class="entries_header">
9477 <th class="th_details" colspan="5">Details</th>
9478 </tr>
9479 <tr class="entry_cont">
9480 <td class="entry_details" colspan="5">
9481 <p>Depending on what settings are used in the request,<wbr/> and
9482what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9483and some pipeline stages skipped.<wbr/></p>
9484<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9485 </td>
9486 </tr>
9487
9488 <tr class="entries_header">
9489 <th class="th_details" colspan="5">HAL Implementation Details</th>
9490 </tr>
9491 <tr class="entry_cont">
9492 <td class="entry_details" colspan="5">
9493 <p>This value must always represent the accurate count of how many
9494pipeline stages were actually used.<wbr/></p>
9495 </td>
9496 </tr>
9497
9498 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9499 <!-- end of entry -->
9500
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009501
9502
9503 <!-- end of kind -->
9504 </tbody>
9505
9506 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009507 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009508
9509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009510 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009511
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009512 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009513 <tr>
9514 <th class="th_name">Property Name</th>
9515 <th class="th_type">Type</th>
9516 <th class="th_description">Description</th>
9517 <th class="th_units">Units</th>
9518 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009519 <th class="th_tags">Tags</th>
9520 </tr>
9521 </thead>
9522
9523 <tbody>
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009535 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009536 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009537 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009538 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009539 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009540 <span class="entry_type_container">x</span>
9541
9542 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009543 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009544 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009545 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009546
9547
9548 </td> <!-- entry_type -->
9549
9550 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009551 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9552<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9553(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9554output.<wbr/> Each stream must use this rectangle to produce its
9555output,<wbr/> cropping to a smaller region if necessary to
9556maintain the stream's aspect ratio.<wbr/></p>
9557<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009558 </td>
9559
9560 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009561 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9562 in pixels; (0,<wbr/>0) is top-left corner of
9563 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009564 </td>
9565
9566 <td class="entry_range">
9567 </td>
9568
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009569 <td class="entry_tags">
9570 <ul class="entry_tags">
9571 <li><a href="#tag_BC">BC</a></li>
9572 </ul>
9573 </td>
9574
9575 </tr>
9576 <tr class="entries_header">
9577 <th class="th_details" colspan="5">Details</th>
9578 </tr>
9579 <tr class="entry_cont">
9580 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009581 <p>Any additional per-stream cropping must be done to
9582maximize the final pixel area of the stream.<wbr/></p>
9583<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9584ratio,<wbr/> then 4:3 streams should use the exact crop
9585region.<wbr/> 16:9 streams should further crop vertically
9586(letterbox).<wbr/></p>
9587<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9588outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9589streams should match exactly.<wbr/> These additional crops must
9590be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009591<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009592times,<wbr/> no matter what the relative aspect ratios of the
9593crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009594corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009595larger than active pixel array.<wbr/> Width and height may be
9596rounded to nearest larger supportable width,<wbr/> especially
9597for raw output,<wbr/> where only a few fixed scales may be
9598possible.<wbr/> The width and height of the crop region cannot
9599be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9600android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9601activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9602respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009603 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009604 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009605
9606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009607 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9608 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009609
9610
9611
9612 <!-- end of kind -->
9613 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009614 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009615
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009616 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009617 <tr>
9618 <th class="th_name">Property Name</th>
9619 <th class="th_type">Type</th>
9620 <th class="th_description">Description</th>
9621 <th class="th_units">Units</th>
9622 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009623 <th class="th_tags">Tags</th>
9624 </tr>
9625 </thead>
9626
9627 <tbody>
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009639 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009640 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009641 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009642 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009643 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009644 <span class="entry_type_container">x</span>
9645
9646 <span class="entry_type_array">
9647 n
9648 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009649 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009650
9651 <ul class="entry_type_enum">
9652 <li>
9653 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009654 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009655 <span class="entry_type_enum_value">0x20</span>
9656 </li>
9657 <li>
9658 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009659 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009660 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009661 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009662 </li>
9663 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009664 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009665 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009666 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009667 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009668 </li>
9669 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009670 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9671 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009672 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009673 </li>
9674 <li>
9675 <span class="entry_type_enum_name">YCbCr_420_888</span>
9676 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009677 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009678 </li>
9679 <li>
9680 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009681 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009682 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009683 </li>
9684 </ul>
9685
9686 </td> <!-- entry_type -->
9687
9688 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009689 <p>The list of image formats that are supported by this
9690camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009691 </td>
9692
9693 <td class="entry_units">
9694 </td>
9695
9696 <td class="entry_range">
9697 </td>
9698
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009699 <td class="entry_tags">
9700 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009701 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009702 </ul>
9703 </td>
9704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009705 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009706 <tr class="entries_header">
9707 <th class="th_details" colspan="5">Details</th>
9708 </tr>
9709 <tr class="entry_cont">
9710 <td class="entry_details" colspan="5">
9711 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9712<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9713 </td>
9714 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009715
Zhijun Heb8317e22014-01-16 09:47:07 -08009716 <tr class="entries_header">
9717 <th class="th_details" colspan="5">HAL Implementation Details</th>
9718 </tr>
9719 <tr class="entry_cont">
9720 <td class="entry_details" colspan="5">
9721 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9722system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9723<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9724gralloc module will select a format based on the usage flags provided
9725by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9726usually used by preview and recording streams,<wbr/> where the application doesn't
9727need access the image data.<wbr/></p>
9728<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9729needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9730<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9731 </td>
9732 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009733
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009734 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9735 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009736
9737
9738 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009739 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009740 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009741 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009742 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009743 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009744 <span class="entry_type_container">x</span>
9745
9746 <span class="entry_type_array">
9747 n
9748 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009749 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009750
9751
9752 </td> <!-- entry_type -->
9753
9754 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009755 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009756for 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 -08009757 </td>
9758
9759 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009760 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009761 </td>
9762
9763 <td class="entry_range">
9764 </td>
9765
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009766 <td class="entry_tags">
9767 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009768 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009769 </ul>
9770 </td>
9771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009772 </tr>
9773 <tr class="entries_header">
9774 <th class="th_details" colspan="5">Details</th>
9775 </tr>
9776 <tr class="entry_cont">
9777 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009778 <p>This corresponds to the minimum steady-state frame duration when only
9779that JPEG stream is active and captured in a burst,<wbr/> with all
9780processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9781<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009782frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009783durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009784 </td>
9785 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009786
9787
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009788 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9789 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009790
9791
9792 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009793 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009794 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009795 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009796 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009797 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009798 <span class="entry_type_container">x</span>
9799
9800 <span class="entry_type_array">
9801 n x 2
9802 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009803 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009804
9805
9806 </td> <!-- entry_type -->
9807
9808 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009809 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009810 </td>
9811
9812 <td class="entry_units">
9813 </td>
9814
9815 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009816 </td>
9817
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009818 <td class="entry_tags">
9819 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009820 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009821 </ul>
9822 </td>
9823
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009824 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009825 <tr class="entries_header">
9826 <th class="th_details" colspan="5">Details</th>
9827 </tr>
9828 <tr class="entry_cont">
9829 <td class="entry_details" colspan="5">
9830 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9831sensor 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>
9832 </td>
9833 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009834
Zhijun Heb8317e22014-01-16 09:47:07 -08009835 <tr class="entries_header">
9836 <th class="th_details" colspan="5">HAL Implementation Details</th>
9837 </tr>
9838 <tr class="entry_cont">
9839 <td class="entry_details" colspan="5">
9840 <p>The HAL must include sensor maximum resolution
9841(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9842and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9843 </td>
9844 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009845
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009846 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9847 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009848
9849
9850 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009851 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009852 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009853 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009854 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009855 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009856
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009857 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009858
9859
9860 </td> <!-- entry_type -->
9861
9862 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009863 <p>The maximum ratio between active area width
9864and crop region width,<wbr/> or between active area height and
9865crop region height,<wbr/> if the crop region height is larger
9866than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009867 </td>
9868
9869 <td class="entry_units">
9870 </td>
9871
9872 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009873 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009874 </td>
9875
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009876 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009877 <ul class="entry_tags">
9878 <li><a href="#tag_BC">BC</a></li>
9879 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009880 </td>
9881
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009882 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009883
9884
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009885 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9886 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009887
9888
9889 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009890 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009891 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009892 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009893 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009894 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009895 <span class="entry_type_container">x</span>
9896
9897 <span class="entry_type_array">
9898 n
9899 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009900 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009901
9902
9903 </td> <!-- entry_type -->
9904
9905 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009906 <p>For each available processed output size (defined in
9907<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
9908minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009909 </td>
9910
9911 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009912 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009913 </td>
9914
9915 <td class="entry_range">
9916 </td>
9917
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009918 <td class="entry_tags">
9919 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009920 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009921 </ul>
9922 </td>
9923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009924 </tr>
9925 <tr class="entries_header">
9926 <th class="th_details" colspan="5">Details</th>
9927 </tr>
9928 <tr class="entry_cont">
9929 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009930 <p>This should correspond to the frame duration when only that processed
9931stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
9932set to FAST.<wbr/></p>
9933<p>When multiple streams are configured,<wbr/> the minimum frame duration will
9934be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009935 </td>
9936 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009937
9938
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009939 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9940 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009941
9942
9943 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009944 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009945 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009946 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009947 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009948 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009949 <span class="entry_type_container">x</span>
9950
9951 <span class="entry_type_array">
9952 n x 2
9953 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009954 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009955
9956
9957 </td> <!-- entry_type -->
9958
9959 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009960 <p>The resolutions available for use with
9961processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
9962platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -08009963encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009964 </td>
9965
9966 <td class="entry_units">
9967 </td>
9968
9969 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009970 </td>
9971
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009972 <td class="entry_tags">
9973 <ul class="entry_tags">
9974 <li><a href="#tag_BC">BC</a></li>
9975 </ul>
9976 </td>
9977
9978 </tr>
9979 <tr class="entries_header">
9980 <th class="th_details" colspan="5">Details</th>
9981 </tr>
9982 <tr class="entry_cont">
9983 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -08009984 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
9985<p>For a given use case,<wbr/> the actual maximum supported resolution
9986may be lower than what is listed here,<wbr/> depending on the destination
9987Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
9988the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
9989smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
9990can provide.<wbr/></p>
9991<p>Please reference the documentation for the image data destination to
9992check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009993 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009994 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009995
Zhijun Heb8317e22014-01-16 09:47:07 -08009996 <tr class="entries_header">
9997 <th class="th_details" colspan="5">HAL Implementation Details</th>
9998 </tr>
9999 <tr class="entry_cont">
10000 <td class="entry_details" colspan="5">
10001 <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/>
10002the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10003and each below resolution if it is smaller than or equal to the sensor
10004maximum resolution (if they are not listed in JPEG sizes already):</p>
10005<ul>
10006<li>240p (320 x 240)</li>
10007<li>480p (640 x 480)</li>
10008<li>720p (1280 x 720)</li>
10009<li>1080p (1920 x 1080)</li>
10010</ul>
10011<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/>
10012the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10013 </td>
10014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010015
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010016 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10017 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010018
10019
10020 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010021 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010022 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010023 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010024 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010025 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010026 <span class="entry_type_container">x</span>
10027
10028 <span class="entry_type_array">
10029 n
10030 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010031 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010032
10033
10034 </td> <!-- entry_type -->
10035
10036 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010037 <p>For each available processed output size (defined in
10038<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10039supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010040 </td>
10041
10042 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010043 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010044 </td>
10045
10046 <td class="entry_range">
10047 </td>
10048
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010049 <td class="entry_tags">
10050 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010051 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010052 </ul>
10053 </td>
10054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010055 </tr>
10056 <tr class="entries_header">
10057 <th class="th_details" colspan="5">Details</th>
10058 </tr>
10059 <tr class="entry_cont">
10060 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010061 <p>Should correspond to the frame duration when only the raw stream is
10062active.<wbr/></p>
10063<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010064frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010065durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010066 </td>
10067 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010068
10069
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010070 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10071 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010072
10073
10074 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010075 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010076 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010077 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010078 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010079 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010080 <span class="entry_type_container">x</span>
10081
10082 <span class="entry_type_array">
10083 n x 2
10084 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010085 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010086
10087
10088 </td> <!-- entry_type -->
10089
10090 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010091 <p>The resolutions available for use with raw
10092sensor output streams,<wbr/> listed as width,<wbr/>
10093height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010094 </td>
10095
10096 <td class="entry_units">
10097 </td>
10098
10099 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010100 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010101 </td>
10102
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010103 <td class="entry_tags">
10104 </td>
10105
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010106 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010107
10108
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010109 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10110 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010111
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010112
10113
10114 <!-- end of kind -->
10115 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010116 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010117
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010118 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010119 <tr>
10120 <th class="th_name">Property Name</th>
10121 <th class="th_type">Type</th>
10122 <th class="th_description">Description</th>
10123 <th class="th_units">Units</th>
10124 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010125 <th class="th_tags">Tags</th>
10126 </tr>
10127 </thead>
10128
10129 <tbody>
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010141 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010142 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010143 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010144 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010145 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010146 <span class="entry_type_container">x</span>
10147
10148 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010149 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010150 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010151 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010152
10153
10154 </td> <!-- entry_type -->
10155
10156 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010157 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10158<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10159(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10160output.<wbr/> Each stream must use this rectangle to produce its
10161output,<wbr/> cropping to a smaller region if necessary to
10162maintain the stream's aspect ratio.<wbr/></p>
10163<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010164 </td>
10165
10166 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010167 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10168 in pixels; (0,<wbr/>0) is top-left corner of
10169 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010170 </td>
10171
10172 <td class="entry_range">
10173 </td>
10174
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010175 <td class="entry_tags">
10176 <ul class="entry_tags">
10177 <li><a href="#tag_BC">BC</a></li>
10178 </ul>
10179 </td>
10180
10181 </tr>
10182 <tr class="entries_header">
10183 <th class="th_details" colspan="5">Details</th>
10184 </tr>
10185 <tr class="entry_cont">
10186 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010187 <p>Any additional per-stream cropping must be done to
10188maximize the final pixel area of the stream.<wbr/></p>
10189<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10190ratio,<wbr/> then 4:3 streams should use the exact crop
10191region.<wbr/> 16:9 streams should further crop vertically
10192(letterbox).<wbr/></p>
10193<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10194outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10195streams should match exactly.<wbr/> These additional crops must
10196be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010197<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010198times,<wbr/> no matter what the relative aspect ratios of the
10199crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010200corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010201larger than active pixel array.<wbr/> Width and height may be
10202rounded to nearest larger supportable width,<wbr/> especially
10203for raw output,<wbr/> where only a few fixed scales may be
10204possible.<wbr/> The width and height of the crop region cannot
10205be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10206android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10207activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10208respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010209 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010210 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010211
10212
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010213 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10214 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010215
10216
10217
10218 <!-- end of kind -->
10219 </tbody>
10220
10221 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010222 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010223
10224
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010225 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010226
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010227 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010228 <tr>
10229 <th class="th_name">Property Name</th>
10230 <th class="th_type">Type</th>
10231 <th class="th_description">Description</th>
10232 <th class="th_units">Units</th>
10233 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010234 <th class="th_tags">Tags</th>
10235 </tr>
10236 </thead>
10237
10238 <tbody>
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010250 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010251 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010252 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010253 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010254 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010255
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010256 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010257
10258
10259 </td> <!-- entry_type -->
10260
10261 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010262 <p>Duration each pixel is exposed to
10263light.<wbr/></p>
10264<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10265duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010266 </td>
10267
10268 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010269 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010270 </td>
10271
10272 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010273 <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 -080010274 </td>
10275
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010276 <td class="entry_tags">
10277 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010278 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010279 </ul>
10280 </td>
10281
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010282 </tr>
10283 <tr class="entries_header">
10284 <th class="th_details" colspan="5">Details</th>
10285 </tr>
10286 <tr class="entry_cont">
10287 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010288 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010289 </td>
10290 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010291
10292
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010293 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10294 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010295
10296
10297 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010298 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010299 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010300 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010301 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010302 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010303
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010304 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010305
10306
10307 </td> <!-- entry_type -->
10308
10309 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010310 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010311start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010312 </td>
10313
10314 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010315 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010316 </td>
10317
10318 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010319 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10320android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10321is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010322 </td>
10323
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010324 <td class="entry_tags">
10325 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010326 <li><a href="#tag_V1">V1</a></li>
10327 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010328 </ul>
10329 </td>
10330
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010331 </tr>
10332 <tr class="entries_header">
10333 <th class="th_details" colspan="5">Details</th>
10334 </tr>
10335 <tr class="entry_cont">
10336 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010337 <p>The maximum frame rate that can be supported by a camera subsystem is
10338a function of many factors:</p>
10339<ul>
10340<li>Requested resolutions of output image streams</li>
10341<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10342<li>The bandwidth of the imager interface</li>
10343<li>The bandwidth of the various ISP processing blocks</li>
10344</ul>
10345<p>Since these factors can vary greatly between different ISPs and
10346sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10347restrictions with as simple a model as possible.<wbr/></p>
10348<p>The model presented has the following characteristics:</p>
10349<ul>
10350<li>The image sensor is always configured to output the smallest
10351resolution possible given the application's requested output stream
10352sizes.<wbr/> The smallest resolution is defined as being at least as large
10353as the largest requested output stream size; the camera pipeline must
10354never digitally upsample sensor data when the crop region covers the
10355whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10356resolutions are configured,<wbr/> the sensor can provide a higher frame
10357rate.<wbr/></li>
10358<li>Since any request may use any or all the currently configured
10359output streams,<wbr/> the sensor and ISP must be configured to support
10360scaling a single capture to all the streams at the same time.<wbr/> This
10361means the camera pipeline must be ready to produce the largest
10362requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10363frame rate of a given configured stream set is governed only by the
10364largest requested stream resolution.<wbr/></li>
10365<li>Using more than one output stream in a request does not affect the
10366frame duration.<wbr/></li>
10367<li>JPEG streams act like processed YUV streams in requests for which
10368they are not included; in requests in which they are directly
10369referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10370JPEG stream requires the underlying YUV data to always be ready for
10371use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10372frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10373<li>The JPEG processor can run concurrently to the rest of the camera
10374pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10375</ul>
10376<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10377is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10378These are used to determine the maximum frame rate /<wbr/> minimum frame
10379duration that is possible for a given stream configuration.<wbr/></p>
10380<p>Specifically,<wbr/> the application can use the following rules to
10381determine the minimum frame duration it can request from the HAL
10382device:</p>
10383<ol>
10384<li>Given the application's currently configured set of output
10385streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10386<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10387<code>SP</code>.<wbr/></li>
10388<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10389count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10390<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10391<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
10392no exact match for <code>RP == RJ</code> (in particular there isn't an available
10393processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10394to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10395there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10396the processed resolution closest to <code>RJ</code>.<wbr/></li>
10397<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
10398no exact match for <code>RR == RP</code> (in particular there isn't an available
10399raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10400or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10401there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10402the raw resolution closest to <code>RP</code>.<wbr/></li>
10403<li>Look up the matching minimum frame durations in the property lists
10404<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10405<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10406<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10407minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10408<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10409supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10410<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10411supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10412<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10413the application,<wbr/> then the HAL will have to delay JPEG-using requests
10414whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10415This will happen whenever a JPEG-using request starts capture less
10416than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10417supported frame duration will vary between the values calculated in
10418#6 and #7.<wbr/></li>
10419</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010420 </td>
10421 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010422
10423
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010424 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10425 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010426
10427
10428 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010429 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010430 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010431 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010432 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010433 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010434
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010435 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010436
10437
10438 </td> <!-- entry_type -->
10439
10440 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010441 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010442implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010443below 'maximum analog sensitivity'.<wbr/></p>
10444<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10445gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010446 </td>
10447
10448 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010449 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010450 </td>
10451
10452 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010453 <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 -080010454 </td>
10455
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010456 <td class="entry_tags">
10457 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010458 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010459 </ul>
10460 </td>
10461
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010462 </tr>
10463 <tr class="entries_header">
10464 <th class="th_details" colspan="5">Details</th>
10465 </tr>
10466 <tr class="entry_cont">
10467 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010468 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010469 </td>
10470 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010471
10472
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010473 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10474 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010475
Igor Murashkina46e02f2014-01-09 17:43:38 -080010476
10477 <tr class="entry" id="controls_android.sensor.testPatternData">
10478 <td class="entry_name" rowspan="5">
10479 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10480 </td>
10481 <td class="entry_type">
10482 <span class="entry_type_name">int32</span>
10483 <span class="entry_type_container">x</span>
10484
10485 <span class="entry_type_array">
10486 4
10487 </span>
10488 <span class="entry_type_visibility"> [public]</span>
10489
10490
10491 </td> <!-- entry_type -->
10492
10493 <td class="entry_description">
10494 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10495when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10496 </td>
10497
10498 <td class="entry_units">
10499 </td>
10500
10501 <td class="entry_range">
10502 <p>Optional.<wbr/>
10503Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10504SOLID_<wbr/>COLOR.<wbr/></p>
10505 </td>
10506
10507 <td class="entry_tags">
10508 </td>
10509
10510 </tr>
10511 <tr class="entries_header">
10512 <th class="th_details" colspan="5">Details</th>
10513 </tr>
10514 <tr class="entry_cont">
10515 <td class="entry_details" colspan="5">
10516 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10517The camera device then uses the most significant X bits
10518that correspond to how many bits are in its Bayer raw sensor
10519output.<wbr/></p>
10520<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1052110 most significant bits from each color channel.<wbr/></p>
10522 </td>
10523 </tr>
10524
10525 <tr class="entries_header">
10526 <th class="th_details" colspan="5">HAL Implementation Details</th>
10527 </tr>
10528 <tr class="entry_cont">
10529 <td class="entry_details" colspan="5">
10530
10531 </td>
10532 </tr>
10533
10534 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10535 <!-- end of entry -->
10536
10537
10538 <tr class="entry" id="controls_android.sensor.testPatternMode">
10539 <td class="entry_name" rowspan="5">
10540 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10541 </td>
10542 <td class="entry_type">
10543 <span class="entry_type_name entry_type_name_enum">int32</span>
10544
10545 <span class="entry_type_visibility"> [public]</span>
10546
10547 <ul class="entry_type_enum">
10548 <li>
10549 <span class="entry_type_enum_name">OFF</span>
10550 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10551device returns captures from the image sensor.<wbr/></p></span>
10552 </li>
10553 <li>
10554 <span class="entry_type_enum_name">SOLID_COLOR</span>
10555 <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
10556respective color channel provided in
10557<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10558<p>For example:</p>
10559<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10560</code></pre>
10561<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10562<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10563</code></pre>
10564<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10565are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10566 </li>
10567 <li>
10568 <span class="entry_type_enum_name">COLOR_BARS</span>
10569 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10570<p>The vertical bars (left-to-right) are as follows:</p>
10571<ul>
10572<li>100% white</li>
10573<li>yellow</li>
10574<li>cyan</li>
10575<li>green</li>
10576<li>magenta</li>
10577<li>red</li>
10578<li>blue</li>
10579<li>black</li>
10580</ul>
10581<p>In general the image would look like the following:</p>
10582<pre><code>W Y C G M R B K
10583W Y C G M R B K
10584W Y C G M R B K
10585W Y C G M R B K
10586W Y C G M R B K
10587.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10588.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10589.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10590
10591(B = Blue,<wbr/> K = Black)
10592</code></pre>
10593<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10594When this is not possible,<wbr/> the bar size should be rounded
10595down to the nearest integer and the pattern can repeat
10596on the right side.<wbr/></p>
10597<p>Each bar's height must always take up the full sensor
10598pixel array height.<wbr/></p>
10599<p>Each pixel in this test pattern must be set to either
106000% intensity or 100% intensity.<wbr/></p></span>
10601 </li>
10602 <li>
10603 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10604 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10605each bar should start at its specified color at the top,<wbr/>
10606and fade to gray at the bottom.<wbr/></p>
10607<p>Furthermore each bar is further subdivided into a left and
10608right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10609and the right half should have a quantized gradient.<wbr/></p>
10610<p>In particular,<wbr/> the right half's should consist of blocks of the
10611same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10612<p>The least significant bits in the quantized gradient should
10613be copied from the most significant bits of the smooth gradient.<wbr/></p>
10614<p>The height of each bar should always be a multiple of 128.<wbr/>
10615When this is not the case,<wbr/> the pattern should repeat at the bottom
10616of the image.<wbr/></p></span>
10617 </li>
10618 <li>
10619 <span class="entry_type_enum_name">PN9</span>
10620 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10621generated from a PN9 512-bit sequence (typically implemented
10622in hardware with a linear feedback shift register).<wbr/></p>
10623<p>The generator should be reset at the beginning of each frame,<wbr/>
10624and thus each subsequent raw frame with this test pattern should
10625be exactly the same as the last.<wbr/></p></span>
10626 </li>
10627 <li>
10628 <span class="entry_type_enum_name">CUSTOM1</span>
10629 <span class="entry_type_enum_value">256</span>
10630 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10631available only on this camera device are at least this numeric
10632value.<wbr/></p>
10633<p>All of the custom test patterns will be static
10634(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10635 </li>
10636 </ul>
10637
10638 </td> <!-- entry_type -->
10639
10640 <td class="entry_description">
10641 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10642doing a real exposure from the camera.<wbr/></p>
10643 </td>
10644
10645 <td class="entry_units">
10646 </td>
10647
10648 <td class="entry_range">
10649 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10650<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10651 </td>
10652
10653 <td class="entry_tags">
10654 </td>
10655
10656 </tr>
10657 <tr class="entries_header">
10658 <th class="th_details" colspan="5">Details</th>
10659 </tr>
10660 <tr class="entry_cont">
10661 <td class="entry_details" colspan="5">
10662 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10663by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10664work as normal.<wbr/></p>
10665<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10666occur (and that the test pattern remain unmodified,<wbr/> since the flash
10667would not actually affect it).<wbr/></p>
10668 </td>
10669 </tr>
10670
10671 <tr class="entries_header">
10672 <th class="th_details" colspan="5">HAL Implementation Details</th>
10673 </tr>
10674 <tr class="entry_cont">
10675 <td class="entry_details" colspan="5">
10676 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10677<p>The HAL may choose to substitute test patterns from the sensor
10678with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10679indistinguishable to the ISP whether the data came from the
10680sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10681 </td>
10682 </tr>
10683
10684 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10685 <!-- end of entry -->
10686
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010687
10688
10689 <!-- end of kind -->
10690 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010691 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010692
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010693 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010694 <tr>
10695 <th class="th_name">Property Name</th>
10696 <th class="th_type">Type</th>
10697 <th class="th_description">Description</th>
10698 <th class="th_units">Units</th>
10699 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010700 <th class="th_tags">Tags</th>
10701 </tr>
10702 </thead>
10703
10704 <tbody>
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010718 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010719 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010720 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010721 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010722 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010723 <span class="entry_type_container">x</span>
10724
10725 <span class="entry_type_array">
10726 4
10727 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010728 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010729 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010730
10731
10732 </td> <!-- entry_type -->
10733
10734 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010735 <p>Area of raw data which corresponds to only
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010736active pixels; smaller or equal to
Igor Murashkin0b080452013-12-27 15:30:25 -080010737pixelArraySize.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010738 </td>
10739
10740 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010741 xmin,<wbr/> ymin,<wbr/> width,<wbr/> height.<wbr/> Top left of full
10742 pixel array is (0,<wbr/>0)
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010743 </td>
10744
10745 <td class="entry_range">
10746 </td>
10747
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010748 <td class="entry_tags">
10749 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010750 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010751 </ul>
10752 </td>
10753
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010754 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010755
10756
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010757 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10758 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010759
10760
Zhijun He69fc0ea2013-07-17 09:42:58 -070010761 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010762 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010763 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010764 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010765 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010766 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010767 <span class="entry_type_container">x</span>
10768
10769 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010770 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010771 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010772 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010773 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010774
10775
10776 </td> <!-- entry_type -->
10777
10778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010779 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010780 </td>
10781
10782 <td class="entry_units">
10783 </td>
10784
10785 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010786 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010787 </td>
10788
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010789 <td class="entry_tags">
10790 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010791 <li><a href="#tag_BC">BC</a></li>
10792 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010793 </ul>
10794 </td>
10795
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010796 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010797
10798
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010799 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10800 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010801
10802
10803 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010804 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010805 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010806 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010807 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010808 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010809
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010810 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010811
10812 <ul class="entry_type_enum">
10813 <li>
10814 <span class="entry_type_enum_name">RGGB</span>
10815 </li>
10816 <li>
10817 <span class="entry_type_enum_name">GRBG</span>
10818 </li>
10819 <li>
10820 <span class="entry_type_enum_name">GBRG</span>
10821 </li>
10822 <li>
10823 <span class="entry_type_enum_name">BGGR</span>
10824 </li>
10825 <li>
10826 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010827 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10828values for each pixel,<wbr/> instead of just 1 16-bit value
10829per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010830 </li>
10831 </ul>
10832
10833 </td> <!-- entry_type -->
10834
10835 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010836 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010837represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010838the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010839 </td>
10840
10841 <td class="entry_units">
10842 </td>
10843
10844 <td class="entry_range">
10845 </td>
10846
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010847 <td class="entry_tags">
10848 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010849 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010850 </ul>
10851 </td>
10852
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010853 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010854
10855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010856 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10857 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010858
10859
10860 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010861 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010862 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010863 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010864 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010865 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010866 <span class="entry_type_container">x</span>
10867
10868 <span class="entry_type_array">
10869 2
10870 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010871 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010872 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010873
10874
10875 </td> <!-- entry_type -->
10876
10877 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010878 <p>Range of valid exposure
10879times</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010880 </td>
10881
10882 <td class="entry_units">
10883 </td>
10884
10885 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010886 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 30e9 (30
10887sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010888 </td>
10889
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010890 <td class="entry_tags">
10891 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010892 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010893 </ul>
10894 </td>
10895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010896 </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.maxFrameDuration">
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/>max<wbr/>Frame<wbr/>Duration
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">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010909
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010910 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010911
10912
10913 </td> <!-- entry_type -->
10914
10915 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010916 <p>Maximum possible frame duration (minimum frame
10917rate)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010918 </td>
10919
10920 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010921 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010922 </td>
10923
10924 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010925 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010926 </td>
10927
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010928 <td class="entry_tags">
10929 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010930 <li><a href="#tag_BC">BC</a></li>
10931 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010932 </ul>
10933 </td>
10934
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010935 </tr>
10936 <tr class="entries_header">
10937 <th class="th_details" colspan="5">Details</th>
10938 </tr>
10939 <tr class="entry_cont">
10940 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010941 <p>Minimum duration is a function of resolution,<wbr/>
10942processing settings.<wbr/> See
10943android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
10944android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010945<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 -080010946 </td>
10947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010948
10949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010952
10953
10954 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010955 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010956 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010957 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010958 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010959 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010960 <span class="entry_type_container">x</span>
10961
10962 <span class="entry_type_array">
10963 2
10964 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070010965 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010966 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010967
10968
10969 </td> <!-- entry_type -->
10970
10971 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010972 <p>The physical dimensions of the full pixel
10973array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010974 </td>
10975
10976 <td class="entry_units">
10977 </td>
10978
10979 <td class="entry_range">
10980 </td>
10981
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010982 <td class="entry_tags">
10983 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010984 <li><a href="#tag_V1">V1</a></li>
10985 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010986 </ul>
10987 </td>
10988
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010989 </tr>
10990 <tr class="entries_header">
10991 <th class="th_details" colspan="5">Details</th>
10992 </tr>
10993 <tr class="entry_cont">
10994 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010995 <p>Needed for FOV calculation for old API</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.pixelArraySize">
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/>pixel<wbr/>Array<wbr/>Size
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 <span class="entry_type_container">x</span>
11011
11012 <span class="entry_type_array">
11013 2
11014 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011015 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011016
11017
11018 </td> <!-- entry_type -->
11019
11020 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011021 <p>Dimensions of full pixel array,<wbr/> possibly
11022including black calibration pixels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011023 </td>
11024
11025 <td class="entry_units">
11026 </td>
11027
11028 <td class="entry_range">
11029 </td>
11030
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011031 <td class="entry_tags">
11032 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011033 <li><a href="#tag_DNG">DNG</a></li>
11034 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011035 </ul>
11036 </td>
11037
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011038 </tr>
11039 <tr class="entries_header">
11040 <th class="th_details" colspan="5">Details</th>
11041 </tr>
11042 <tr class="entry_cont">
11043 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011044 <p>Maximum output resolution for raw format must
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011045match this in
Igor Murashkin0b080452013-12-27 15:30:25 -080011046android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Sizes<wbr/>Per<wbr/>Format</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011047 </td>
11048 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011049
11050
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011051 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11052 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011053
11054
11055 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011056 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011057 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011058 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011059 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011060 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011061
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011062 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011063
11064
11065 </td> <!-- entry_type -->
11066
11067 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011068 <p>Maximum raw value output by
11069sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011070 </td>
11071
11072 <td class="entry_units">
11073 </td>
11074
11075 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011076 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011077 </td>
11078
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011079 <td class="entry_tags">
11080 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011081 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011082 </ul>
11083 </td>
11084
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011085 </tr>
11086 <tr class="entries_header">
11087 <th class="th_details" colspan="5">Details</th>
11088 </tr>
11089 <tr class="entry_cont">
11090 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011091 <p>Defines sensor bit depth (10-14 bits is
11092expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011093 </td>
11094 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011095
11096
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011097 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11098 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011099
11100
11101
11102
11103
11104 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011105 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011106 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011107 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011108 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011109 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011110
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011111 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011112
11113
11114 </td> <!-- entry_type -->
11115
11116 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011117 <p>Gain factor from electrons to raw units when
11118ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011119 </td>
11120
11121 <td class="entry_units">
11122 </td>
11123
11124 <td class="entry_range">
11125 </td>
11126
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011127 <td class="entry_tags">
11128 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011129 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011130 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011131 </ul>
11132 </td>
11133
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011134 </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.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011142 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011143 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
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">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011147 <span class="entry_type_container">x</span>
11148
11149 <span class="entry_type_array">
11150 4
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">2x2 raw count block</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>A fixed black level offset for each of the
11160Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011161 </td>
11162
11163 <td class="entry_units">
11164 </td>
11165
11166 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011167 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011168 </td>
11169
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011170 <td class="entry_tags">
11171 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011172 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011173 </ul>
11174 </td>
11175
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011176 </tr>
11177 <tr class="entries_header">
11178 <th class="th_details" colspan="5">Details</th>
11179 </tr>
11180 <tr class="entry_cont">
11181 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011182 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11183tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011184 </td>
11185 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011186
11187
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011188 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11189 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011190
11191
11192 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011193 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011194 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011195 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011196 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011197 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011198 <span class="entry_type_container">x</span>
11199
11200 <span class="entry_type_array">
11201 9
11202 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011203 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011204 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011205
11206
11207 </td> <!-- entry_type -->
11208
11209 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011210 <p>Per-device calibration on top of color space
11211transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011212 </td>
11213
11214 <td class="entry_units">
11215 </td>
11216
11217 <td class="entry_range">
11218 </td>
11219
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011220 <td class="entry_tags">
11221 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011222 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011223 </ul>
11224 </td>
11225
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011226 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011227
11228
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011229 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11230 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011231
11232
11233 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011234 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011235 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011236 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011237 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011238 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011239 <span class="entry_type_container">x</span>
11240
11241 <span class="entry_type_array">
11242 9
11243 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011244 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011245 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011246
11247
11248 </td> <!-- entry_type -->
11249
11250 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011251 <p>Per-device calibration on top of color space
11252transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011253 </td>
11254
11255 <td class="entry_units">
11256 </td>
11257
11258 <td class="entry_range">
11259 </td>
11260
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011261 <td class="entry_tags">
11262 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011263 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011264 </ul>
11265 </td>
11266
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011267 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011268
11269
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011270 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11271 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011272
11273
11274 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011275 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011276 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011277 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011278 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011279 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011280 <span class="entry_type_container">x</span>
11281
11282 <span class="entry_type_array">
11283 9
11284 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011285 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011286 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011287
11288
11289 </td> <!-- entry_type -->
11290
11291 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011292 <p>Linear mapping from XYZ (D50) color space to
11293reference linear sensor color,<wbr/> for first reference
11294illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011295 </td>
11296
11297 <td class="entry_units">
11298 </td>
11299
11300 <td class="entry_range">
11301 </td>
11302
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011303 <td class="entry_tags">
11304 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011305 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011306 </ul>
11307 </td>
11308
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011309 </tr>
11310 <tr class="entries_header">
11311 <th class="th_details" colspan="5">Details</th>
11312 </tr>
11313 <tr class="entry_cont">
11314 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011315 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11316black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11317At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011318 </td>
11319 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011320
11321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011322 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11323 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011324
11325
11326 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011327 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011328 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011329 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011330 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011331 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011332 <span class="entry_type_container">x</span>
11333
11334 <span class="entry_type_array">
11335 9
11336 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011337 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011338 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011339
11340
11341 </td> <!-- entry_type -->
11342
11343 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011344 <p>Linear mapping from XYZ (D50) color space to
11345reference linear sensor color,<wbr/> for second reference
11346illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011347 </td>
11348
11349 <td class="entry_units">
11350 </td>
11351
11352 <td class="entry_range">
11353 </td>
11354
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011355 <td class="entry_tags">
11356 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011357 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011358 </ul>
11359 </td>
11360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011361 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011362
11363
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011364 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11365 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011366
11367
11368 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011369 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011370 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011371 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011372 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011373 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011374 <span class="entry_type_container">x</span>
11375
11376 <span class="entry_type_array">
11377 9
11378 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011379 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011380 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011381
11382
11383 </td> <!-- entry_type -->
11384
11385 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011386 <p>Used by DNG for better WB
11387adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011388 </td>
11389
11390 <td class="entry_units">
11391 </td>
11392
11393 <td class="entry_range">
11394 </td>
11395
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011396 <td class="entry_tags">
11397 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011398 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011399 </ul>
11400 </td>
11401
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011402 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011403
11404
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011405 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11406 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011407
11408
11409 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011410 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011411 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011412 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011413 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011414 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011415 <span class="entry_type_container">x</span>
11416
11417 <span class="entry_type_array">
11418 9
11419 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011420 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011421 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011422
11423
11424 </td> <!-- entry_type -->
11425
11426 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011427 <p>Used by DNG for better WB
11428adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011429 </td>
11430
11431 <td class="entry_units">
11432 </td>
11433
11434 <td class="entry_range">
11435 </td>
11436
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011437 <td class="entry_tags">
11438 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011439 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011440 </ul>
11441 </td>
11442
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011443 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011444
11445
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011446 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11447 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011448
11449
11450 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011451 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011452 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011453 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011454 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011455 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011456
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011457 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011458
11459
11460 </td> <!-- entry_type -->
11461
11462 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011463 <p>Maximum sensitivity that is implemented
11464purely through analog gain</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011465 </td>
11466
11467 <td class="entry_units">
11468 </td>
11469
11470 <td class="entry_range">
11471 </td>
11472
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011473 <td class="entry_tags">
11474 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011475 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011476 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011477 </ul>
11478 </td>
11479
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011480 </tr>
11481 <tr class="entries_header">
11482 <th class="th_details" colspan="5">Details</th>
11483 </tr>
11484 <tr class="entry_cont">
11485 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011486 <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 -080011487equal to this,<wbr/> all applied gain must be analog.<wbr/> For
11488values above this,<wbr/> it can be a mix of analog and
11489digital</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011490 </td>
11491 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011492
11493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011494 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11495 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011496
11497
11498 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011499 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011500 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011501 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011502 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011503 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011504 <span class="entry_type_container">x</span>
11505
11506 <span class="entry_type_array">
11507 2
11508 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011509 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011510 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
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>Estimation of sensor noise
11517characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011518 </td>
11519
11520 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011521 var(raw pixel value) = electrons * (baseGainFactor
11522 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11523 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011524 </td>
11525
11526 <td class="entry_range">
11527 </td>
11528
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011529 <td class="entry_tags">
11530 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011531 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011532 </ul>
11533 </td>
11534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011535 </tr>
11536 <tr class="entries_header">
11537 <th class="th_details" colspan="5">Details</th>
11538 </tr>
11539 <tr class="entry_cont">
11540 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011541 <p>A represents sensor read noise before analog
11542amplification; B represents noise from A/<wbr/>D conversion and
11543other circuits after amplification.<wbr/> Both noise sources
11544are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11545across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011546 </td>
11547 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011548
11549
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011550 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11551 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011552
11553
11554 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011555 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011556 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011557 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011558 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011559 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011560
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011561 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011562
11563
11564 </td> <!-- entry_type -->
11565
11566 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011567 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011568image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011569screen in its native orientation.<wbr/> Also defines the
11570direction of rolling shutter readout,<wbr/> which is from top
11571to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011572 </td>
11573
11574 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011575 degrees clockwise rotation,<wbr/> only multiples of
11576 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011577 </td>
11578
11579 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011580 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011581 </td>
11582
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011583 <td class="entry_tags">
11584 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011585 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011586 </ul>
11587 </td>
11588
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011589 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011590
11591
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011592 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11593 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011594
11595
11596 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011597 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011598 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011599 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011600 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011601 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011602
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011603 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011604
11605 <ul class="entry_type_enum">
11606 <li>
11607 <span class="entry_type_enum_name">DAYLIGHT</span>
11608 <span class="entry_type_enum_value">1</span>
11609 </li>
11610 <li>
11611 <span class="entry_type_enum_name">FLUORESCENT</span>
11612 <span class="entry_type_enum_value">2</span>
11613 </li>
11614 <li>
11615 <span class="entry_type_enum_name">TUNGSTEN</span>
11616 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011617 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011618 </li>
11619 <li>
11620 <span class="entry_type_enum_name">FLASH</span>
11621 <span class="entry_type_enum_value">4</span>
11622 </li>
11623 <li>
11624 <span class="entry_type_enum_name">FINE_WEATHER</span>
11625 <span class="entry_type_enum_value">9</span>
11626 </li>
11627 <li>
11628 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11629 <span class="entry_type_enum_value">10</span>
11630 </li>
11631 <li>
11632 <span class="entry_type_enum_name">SHADE</span>
11633 <span class="entry_type_enum_value">11</span>
11634 </li>
11635 <li>
11636 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11637 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011638 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011639 </li>
11640 <li>
11641 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11642 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011643 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011644 </li>
11645 <li>
11646 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11647 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011648 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011649 </li>
11650 <li>
11651 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11652 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011653 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011654 </li>
11655 <li>
11656 <span class="entry_type_enum_name">STANDARD_A</span>
11657 <span class="entry_type_enum_value">17</span>
11658 </li>
11659 <li>
11660 <span class="entry_type_enum_name">STANDARD_B</span>
11661 <span class="entry_type_enum_value">18</span>
11662 </li>
11663 <li>
11664 <span class="entry_type_enum_name">STANDARD_C</span>
11665 <span class="entry_type_enum_value">19</span>
11666 </li>
11667 <li>
11668 <span class="entry_type_enum_name">D55</span>
11669 <span class="entry_type_enum_value">20</span>
11670 </li>
11671 <li>
11672 <span class="entry_type_enum_name">D65</span>
11673 <span class="entry_type_enum_value">21</span>
11674 </li>
11675 <li>
11676 <span class="entry_type_enum_name">D75</span>
11677 <span class="entry_type_enum_value">22</span>
11678 </li>
11679 <li>
11680 <span class="entry_type_enum_name">D50</span>
11681 <span class="entry_type_enum_value">23</span>
11682 </li>
11683 <li>
11684 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11685 <span class="entry_type_enum_value">24</span>
11686 </li>
11687 </ul>
11688
11689 </td> <!-- entry_type -->
11690
11691 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011692 <p>Light source used to define transform
116931</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011694 </td>
11695
11696 <td class="entry_units">
11697 </td>
11698
11699 <td class="entry_range">
11700 </td>
11701
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011702 <td class="entry_tags">
11703 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011704 <li><a href="#tag_DNG">DNG</a></li>
11705 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011706 </ul>
11707 </td>
11708
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011709 </tr>
11710 <tr class="entries_header">
11711 <th class="th_details" colspan="5">Details</th>
11712 </tr>
11713 <tr class="entry_cont">
11714 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011715 <p>[EXIF LightSource tag] Must all these be
11716supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011717 </td>
11718 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011719
11720
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011721 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11722 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011723
11724
11725 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011726 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011727 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011728 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011729 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011730 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011731
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011732 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011733
11734
11735 </td> <!-- entry_type -->
11736
11737 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011738 <p>Light source used to define transform
117392</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011740 </td>
11741
11742 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011743 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011744 </td>
11745
11746 <td class="entry_range">
11747 </td>
11748
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011749 <td class="entry_tags">
11750 </td>
11751
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011752 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011753
11754
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011755 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11756 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011757
Igor Murashkina46e02f2014-01-09 17:43:38 -080011758
11759 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11760 <td class="entry_name" rowspan="1">
11761 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11762 </td>
11763 <td class="entry_type">
11764 <span class="entry_type_name">byte</span>
11765
11766 <span class="entry_type_visibility"> [public]</span>
11767
11768
11769 </td> <!-- entry_type -->
11770
11771 <td class="entry_description">
11772 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11773pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11774 </td>
11775
11776 <td class="entry_units">
11777 </td>
11778
11779 <td class="entry_range">
11780 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11781 </td>
11782
11783 <td class="entry_tags">
11784 </td>
11785
11786 </tr>
11787
11788
11789 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11790 <!-- end of entry -->
11791
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011792
11793
11794 <!-- end of kind -->
11795 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011796 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011797
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011798 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011799 <tr>
11800 <th class="th_name">Property Name</th>
11801 <th class="th_type">Type</th>
11802 <th class="th_description">Description</th>
11803 <th class="th_units">Units</th>
11804 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011805 <th class="th_tags">Tags</th>
11806 </tr>
11807 </thead>
11808
11809 <tbody>
11810
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011821 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011822 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011823 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011824 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011825 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011826
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011827 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011828
11829
11830 </td> <!-- entry_type -->
11831
11832 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011833 <p>Duration each pixel is exposed to
11834light.<wbr/></p>
11835<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11836duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011837 </td>
11838
11839 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011840 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011841 </td>
11842
11843 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011844 <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 -080011845 </td>
11846
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011847 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011848 <ul class="entry_tags">
11849 <li><a href="#tag_V1">V1</a></li>
11850 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011851 </td>
11852
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011853 </tr>
11854 <tr class="entries_header">
11855 <th class="th_details" colspan="5">Details</th>
11856 </tr>
11857 <tr class="entry_cont">
11858 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011859 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011860 </td>
11861 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011862
11863
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011864 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11865 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011866
11867
11868 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011869 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011870 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011871 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011872 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011873 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011874
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011875 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011876
11877
11878 </td> <!-- entry_type -->
11879
11880 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011881 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011882start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011883 </td>
11884
11885 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011886 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011887 </td>
11888
11889 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011890 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
11891android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
11892is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011893 </td>
11894
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011895 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011896 <ul class="entry_tags">
11897 <li><a href="#tag_V1">V1</a></li>
11898 <li><a href="#tag_BC">BC</a></li>
11899 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011900 </td>
11901
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011902 </tr>
11903 <tr class="entries_header">
11904 <th class="th_details" colspan="5">Details</th>
11905 </tr>
11906 <tr class="entry_cont">
11907 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011908 <p>The maximum frame rate that can be supported by a camera subsystem is
11909a function of many factors:</p>
11910<ul>
11911<li>Requested resolutions of output image streams</li>
11912<li>Availability of binning /<wbr/> skipping modes on the imager</li>
11913<li>The bandwidth of the imager interface</li>
11914<li>The bandwidth of the various ISP processing blocks</li>
11915</ul>
11916<p>Since these factors can vary greatly between different ISPs and
11917sensors,<wbr/> the camera abstraction tries to represent the bandwidth
11918restrictions with as simple a model as possible.<wbr/></p>
11919<p>The model presented has the following characteristics:</p>
11920<ul>
11921<li>The image sensor is always configured to output the smallest
11922resolution possible given the application's requested output stream
11923sizes.<wbr/> The smallest resolution is defined as being at least as large
11924as the largest requested output stream size; the camera pipeline must
11925never digitally upsample sensor data when the crop region covers the
11926whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
11927resolutions are configured,<wbr/> the sensor can provide a higher frame
11928rate.<wbr/></li>
11929<li>Since any request may use any or all the currently configured
11930output streams,<wbr/> the sensor and ISP must be configured to support
11931scaling a single capture to all the streams at the same time.<wbr/> This
11932means the camera pipeline must be ready to produce the largest
11933requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
11934frame rate of a given configured stream set is governed only by the
11935largest requested stream resolution.<wbr/></li>
11936<li>Using more than one output stream in a request does not affect the
11937frame duration.<wbr/></li>
11938<li>JPEG streams act like processed YUV streams in requests for which
11939they are not included; in requests in which they are directly
11940referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
11941JPEG stream requires the underlying YUV data to always be ready for
11942use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
11943frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
11944<li>The JPEG processor can run concurrently to the rest of the camera
11945pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
11946</ul>
11947<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
11948is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
11949These are used to determine the maximum frame rate /<wbr/> minimum frame
11950duration that is possible for a given stream configuration.<wbr/></p>
11951<p>Specifically,<wbr/> the application can use the following rules to
11952determine the minimum frame duration it can request from the HAL
11953device:</p>
11954<ol>
11955<li>Given the application's currently configured set of output
11956streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
11957<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
11958<code>SP</code>.<wbr/></li>
11959<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
11960count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
11961<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
11962<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
11963no exact match for <code>RP == RJ</code> (in particular there isn't an available
11964processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
11965to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
11966there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
11967the processed resolution closest to <code>RJ</code>.<wbr/></li>
11968<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
11969no exact match for <code>RR == RP</code> (in particular there isn't an available
11970raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
11971or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
11972there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
11973the raw resolution closest to <code>RP</code>.<wbr/></li>
11974<li>Look up the matching minimum frame durations in the property lists
11975<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
11976<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11977<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
11978minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
11979<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
11980supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
11981<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
11982supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
11983<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
11984the application,<wbr/> then the HAL will have to delay JPEG-using requests
11985whenever the JPEG encoder is still busy processing an older capture.<wbr/>
11986This will happen whenever a JPEG-using request starts capture less
11987than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
11988supported frame duration will vary between the values calculated in
11989#6 and #7.<wbr/></li>
11990</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011991 </td>
11992 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011993
11994
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011995 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11996 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011997
11998
11999 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012000 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012001 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012002 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012003 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012004 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012005
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012006 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012007
12008
12009 </td> <!-- entry_type -->
12010
12011 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012012 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012013implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012014below 'maximum analog sensitivity'.<wbr/></p>
12015<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12016gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012017 </td>
12018
12019 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012020 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012021 </td>
12022
12023 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012024 <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 -080012025 </td>
12026
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012027 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012028 <ul class="entry_tags">
12029 <li><a href="#tag_V1">V1</a></li>
12030 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012031 </td>
12032
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012033 </tr>
12034 <tr class="entries_header">
12035 <th class="th_details" colspan="5">Details</th>
12036 </tr>
12037 <tr class="entry_cont">
12038 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012039 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012040 </td>
12041 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012042
12043
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012044 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12045 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012046
12047
12048 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012049 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012050 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012051 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012052 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012053 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012054
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012055 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012056
12057
12058 </td> <!-- entry_type -->
12059
12060 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012061 <p>Time at start of exposure of first
12062row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012063 </td>
12064
12065 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012066 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012067 </td>
12068
12069 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012070 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012071 </td>
12072
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012073 <td class="entry_tags">
12074 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012075 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012076 </ul>
12077 </td>
12078
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012079 </tr>
12080 <tr class="entries_header">
12081 <th class="th_details" colspan="5">Details</th>
12082 </tr>
12083 <tr class="entry_cont">
12084 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012085 <p>Monotonic,<wbr/> should be synced to other timestamps in
12086system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012087 </td>
12088 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012089
12090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012091 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12092 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012093
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012094
12095 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012096 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012097 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012098 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012099 <td class="entry_type">
12100 <span class="entry_type_name">float</span>
12101
12102 <span class="entry_type_visibility"> [public]</span>
12103
12104
12105 </td> <!-- entry_type -->
12106
12107 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012108 <p>The temperature of the sensor,<wbr/> sampled at the time
12109exposure began for this frame.<wbr/></p>
12110<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12111somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012112 </td>
12113
12114 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012115 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012116 </td>
12117
12118 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012119 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012120 </td>
12121
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012122 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012123 <ul class="entry_tags">
12124 <li><a href="#tag_FULL">FULL</a></li>
12125 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012126 </td>
12127
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012128 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012129
12130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012131 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12132 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012133
Igor Murashkina46e02f2014-01-09 17:43:38 -080012134
12135 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12136 <td class="entry_name" rowspan="5">
12137 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12138 </td>
12139 <td class="entry_type">
12140 <span class="entry_type_name entry_type_name_enum">int32</span>
12141
12142 <span class="entry_type_visibility"> [public]</span>
12143
12144 <ul class="entry_type_enum">
12145 <li>
12146 <span class="entry_type_enum_name">OFF</span>
12147 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12148device returns captures from the image sensor.<wbr/></p></span>
12149 </li>
12150 <li>
12151 <span class="entry_type_enum_name">SOLID_COLOR</span>
12152 <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
12153respective color channel provided in
12154<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12155<p>For example:</p>
12156<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12157</code></pre>
12158<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12159<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12160</code></pre>
12161<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12162are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12163 </li>
12164 <li>
12165 <span class="entry_type_enum_name">COLOR_BARS</span>
12166 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12167<p>The vertical bars (left-to-right) are as follows:</p>
12168<ul>
12169<li>100% white</li>
12170<li>yellow</li>
12171<li>cyan</li>
12172<li>green</li>
12173<li>magenta</li>
12174<li>red</li>
12175<li>blue</li>
12176<li>black</li>
12177</ul>
12178<p>In general the image would look like the following:</p>
12179<pre><code>W Y C G M R B K
12180W Y C G M R B K
12181W Y C G M R B K
12182W Y C G M R B K
12183W Y C G M R B K
12184.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12185.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12186.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12187
12188(B = Blue,<wbr/> K = Black)
12189</code></pre>
12190<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12191When this is not possible,<wbr/> the bar size should be rounded
12192down to the nearest integer and the pattern can repeat
12193on the right side.<wbr/></p>
12194<p>Each bar's height must always take up the full sensor
12195pixel array height.<wbr/></p>
12196<p>Each pixel in this test pattern must be set to either
121970% intensity or 100% intensity.<wbr/></p></span>
12198 </li>
12199 <li>
12200 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12201 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12202each bar should start at its specified color at the top,<wbr/>
12203and fade to gray at the bottom.<wbr/></p>
12204<p>Furthermore each bar is further subdivided into a left and
12205right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12206and the right half should have a quantized gradient.<wbr/></p>
12207<p>In particular,<wbr/> the right half's should consist of blocks of the
12208same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12209<p>The least significant bits in the quantized gradient should
12210be copied from the most significant bits of the smooth gradient.<wbr/></p>
12211<p>The height of each bar should always be a multiple of 128.<wbr/>
12212When this is not the case,<wbr/> the pattern should repeat at the bottom
12213of the image.<wbr/></p></span>
12214 </li>
12215 <li>
12216 <span class="entry_type_enum_name">PN9</span>
12217 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12218generated from a PN9 512-bit sequence (typically implemented
12219in hardware with a linear feedback shift register).<wbr/></p>
12220<p>The generator should be reset at the beginning of each frame,<wbr/>
12221and thus each subsequent raw frame with this test pattern should
12222be exactly the same as the last.<wbr/></p></span>
12223 </li>
12224 <li>
12225 <span class="entry_type_enum_name">CUSTOM1</span>
12226 <span class="entry_type_enum_value">256</span>
12227 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12228available only on this camera device are at least this numeric
12229value.<wbr/></p>
12230<p>All of the custom test patterns will be static
12231(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12232 </li>
12233 </ul>
12234
12235 </td> <!-- entry_type -->
12236
12237 <td class="entry_description">
12238 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12239doing a real exposure from the camera.<wbr/></p>
12240 </td>
12241
12242 <td class="entry_units">
12243 </td>
12244
12245 <td class="entry_range">
12246 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12247<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12248 </td>
12249
12250 <td class="entry_tags">
12251 </td>
12252
12253 </tr>
12254 <tr class="entries_header">
12255 <th class="th_details" colspan="5">Details</th>
12256 </tr>
12257 <tr class="entry_cont">
12258 <td class="entry_details" colspan="5">
12259 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12260by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12261work as normal.<wbr/></p>
12262<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12263occur (and that the test pattern remain unmodified,<wbr/> since the flash
12264would not actually affect it).<wbr/></p>
12265 </td>
12266 </tr>
12267
12268 <tr class="entries_header">
12269 <th class="th_details" colspan="5">HAL Implementation Details</th>
12270 </tr>
12271 <tr class="entry_cont">
12272 <td class="entry_details" colspan="5">
12273 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12274<p>The HAL may choose to substitute test patterns from the sensor
12275with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12276indistinguishable to the ISP whether the data came from the
12277sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12278 </td>
12279 </tr>
12280
12281 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12282 <!-- end of entry -->
12283
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012284
12285
12286 <!-- end of kind -->
12287 </tbody>
12288
12289 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012290 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012291
12292
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012293 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012294
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012295 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012296 <tr>
12297 <th class="th_name">Property Name</th>
12298 <th class="th_type">Type</th>
12299 <th class="th_description">Description</th>
12300 <th class="th_units">Units</th>
12301 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012302 <th class="th_tags">Tags</th>
12303 </tr>
12304 </thead>
12305
12306 <tbody>
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012318 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012319 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012320 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012321 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012322 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012323
Zhijun He2f86a212014-01-15 10:34:02 -080012324 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012325
12326 <ul class="entry_type_enum">
12327 <li>
12328 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012329 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012330 </li>
12331 <li>
12332 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012333 <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 -080012334 </li>
12335 <li>
12336 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012337 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012338 </li>
12339 </ul>
12340
12341 </td> <!-- entry_type -->
12342
12343 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012344 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012345to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012346 </td>
12347
12348 <td class="entry_units">
12349 </td>
12350
12351 <td class="entry_range">
12352 </td>
12353
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012354 <td class="entry_tags">
12355 </td>
12356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012357 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012358 <tr class="entries_header">
12359 <th class="th_details" colspan="5">Details</th>
12360 </tr>
12361 <tr class="entry_cont">
12362 <td class="entry_details" colspan="5">
12363 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12364camera device,<wbr/> and an identity lens shading map data will be provided
12365if <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
12366shading 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/>
12367the 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
12368shown below:</p>
12369<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/>
12370 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/>
12371 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/>
12372 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/>
12373 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/>
12374 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 ]
12375</code></pre>
12376<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12377camera device.<wbr/> Applications can request lens shading map data by setting
12378<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
12379lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12380by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12381 </td>
12382 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012383
12384
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012385 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12386 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012387
12388
12389 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012390 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012391 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012392 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012393 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012394 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012395
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012396 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012397
12398
12399 </td> <!-- entry_type -->
12400
12401 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012402 <p>Control the amount of shading correction
12403applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012404 </td>
12405
12406 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012407 unitless: 1-10; 10 is full shading
12408 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012409 </td>
12410
12411 <td class="entry_range">
12412 </td>
12413
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012414 <td class="entry_tags">
12415 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012416 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012417 </ul>
12418 </td>
12419
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012420 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012421
12422
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012423 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12424 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012425
12426
12427
12428 <!-- end of kind -->
12429 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012430 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012431
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012432 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012433 <tr>
12434 <th class="th_name">Property Name</th>
12435 <th class="th_type">Type</th>
12436 <th class="th_description">Description</th>
12437 <th class="th_units">Units</th>
12438 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012439 <th class="th_tags">Tags</th>
12440 </tr>
12441 </thead>
12442
12443 <tbody>
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012455 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012456 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012457 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012458 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012459 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012460
Zhijun He2f86a212014-01-15 10:34:02 -080012461 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012462
12463 <ul class="entry_type_enum">
12464 <li>
12465 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012466 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012467 </li>
12468 <li>
12469 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012470 <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 -080012471 </li>
12472 <li>
12473 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012474 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012475 </li>
12476 </ul>
12477
12478 </td> <!-- entry_type -->
12479
12480 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012481 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012482to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012483 </td>
12484
12485 <td class="entry_units">
12486 </td>
12487
12488 <td class="entry_range">
12489 </td>
12490
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012491 <td class="entry_tags">
12492 </td>
12493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012494 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012495 <tr class="entries_header">
12496 <th class="th_details" colspan="5">Details</th>
12497 </tr>
12498 <tr class="entry_cont">
12499 <td class="entry_details" colspan="5">
12500 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12501camera device,<wbr/> and an identity lens shading map data will be provided
12502if <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
12503shading 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/>
12504the 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
12505shown below:</p>
12506<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/>
12507 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/>
12508 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/>
12509 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/>
12510 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/>
12511 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 ]
12512</code></pre>
12513<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12514camera device.<wbr/> Applications can request lens shading map data by setting
12515<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
12516lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12517by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12518 </td>
12519 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012520
12521
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012522 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12523 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012524
12525
12526
12527 <!-- end of kind -->
12528 </tbody>
12529
12530 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012531 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012532
12533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012534 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012535
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012536 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012537 <tr>
12538 <th class="th_name">Property Name</th>
12539 <th class="th_type">Type</th>
12540 <th class="th_description">Description</th>
12541 <th class="th_units">Units</th>
12542 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012543 <th class="th_tags">Tags</th>
12544 </tr>
12545 </thead>
12546
12547 <tbody>
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012559 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012560 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012561 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012562 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012563 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012564
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012565 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012566
12567 <ul class="entry_type_enum">
12568 <li>
12569 <span class="entry_type_enum_name">OFF</span>
12570 </li>
12571 <li>
12572 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012573 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12574only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012575 </li>
12576 <li>
12577 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012578 <span class="entry_type_enum_notes"><p>Optional Return all face
12579metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012580 </li>
12581 </ul>
12582
12583 </td> <!-- entry_type -->
12584
12585 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012586 <p>State of the face detector
12587unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012588 </td>
12589
12590 <td class="entry_units">
12591 </td>
12592
12593 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012594 <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 -080012595 </td>
12596
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012597 <td class="entry_tags">
12598 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012599 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012600 </ul>
12601 </td>
12602
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012603 </tr>
12604 <tr class="entries_header">
12605 <th class="th_details" colspan="5">Details</th>
12606 </tr>
12607 <tr class="entry_cont">
12608 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012609 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012610should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012611fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012612<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 -080012613 </td>
12614 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012615
12616
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012617 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12618 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012619
12620
12621 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012622 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012623 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012624 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012625 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012626 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012627
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012628 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012629
12630 <ul class="entry_type_enum">
12631 <li>
12632 <span class="entry_type_enum_name">OFF</span>
12633 </li>
12634 <li>
12635 <span class="entry_type_enum_name">ON</span>
12636 </li>
12637 </ul>
12638
12639 </td> <!-- entry_type -->
12640
12641 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012642 <p>Operating mode for histogram
12643generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012644 </td>
12645
12646 <td class="entry_units">
12647 </td>
12648
12649 <td class="entry_range">
12650 </td>
12651
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012652 <td class="entry_tags">
12653 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012654 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012655 </ul>
12656 </td>
12657
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012658 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012659
12660
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012661 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12662 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012663
12664
12665 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012666 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012667 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012668 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012669 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012670 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012671
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012672 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012673
12674 <ul class="entry_type_enum">
12675 <li>
12676 <span class="entry_type_enum_name">OFF</span>
12677 </li>
12678 <li>
12679 <span class="entry_type_enum_name">ON</span>
12680 </li>
12681 </ul>
12682
12683 </td> <!-- entry_type -->
12684
12685 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012686 <p>Operating mode for sharpness map
12687generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012688 </td>
12689
12690 <td class="entry_units">
12691 </td>
12692
12693 <td class="entry_range">
12694 </td>
12695
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012696 <td class="entry_tags">
12697 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012698 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012699 </ul>
12700 </td>
12701
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 -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012707
Zhijun He69fc0ea2013-07-17 09:42:58 -070012708
12709 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012710 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012711 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012712 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012713 <td class="entry_type">
12714 <span class="entry_type_name entry_type_name_enum">byte</span>
12715
12716 <span class="entry_type_visibility"> [public]</span>
12717
12718 <ul class="entry_type_enum">
12719 <li>
12720 <span class="entry_type_enum_name">OFF</span>
12721 </li>
12722 <li>
12723 <span class="entry_type_enum_name">ON</span>
12724 </li>
12725 </ul>
12726
12727 </td> <!-- entry_type -->
12728
12729 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012730 <p>Whether the HAL needs to output the lens
12731shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012732 </td>
12733
12734 <td class="entry_units">
12735 </td>
12736
12737 <td class="entry_range">
12738 </td>
12739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012740 <td class="entry_tags">
12741 </td>
12742
12743 </tr>
12744 <tr class="entries_header">
12745 <th class="th_details" colspan="5">Details</th>
12746 </tr>
12747 <tr class="entry_cont">
12748 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012749 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012750<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 -080012751the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012752 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012753 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012754
12755
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012756 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12757 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012758
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012759
12760
12761 <!-- end of kind -->
12762 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012763 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012764
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012765 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012766 <tr>
12767 <th class="th_name">Property Name</th>
12768 <th class="th_type">Type</th>
12769 <th class="th_description">Description</th>
12770 <th class="th_units">Units</th>
12771 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012772 <th class="th_tags">Tags</th>
12773 </tr>
12774 </thead>
12775
12776 <tbody>
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012790 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012791 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012792 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012793 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012794 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012795 <span class="entry_type_container">x</span>
12796
12797 <span class="entry_type_array">
12798 n
12799 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012800 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012801 <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 -080012802
12803
12804 </td> <!-- entry_type -->
12805
12806 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012807 <p>Which face detection modes are available,<wbr/>
12808if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012809 </td>
12810
12811 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012812 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012813 OFF
12814 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012815 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012816 </td>
12817
12818 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012819 </td>
12820
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012821 <td class="entry_tags">
12822 </td>
12823
12824 </tr>
12825 <tr class="entries_header">
12826 <th class="th_details" colspan="5">Details</th>
12827 </tr>
12828 <tr class="entry_cont">
12829 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012830 <p>OFF means face detection is disabled,<wbr/> it must
12831be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012832<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012833<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12834<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012835<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012836<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12837<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012838 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012839 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012840
12841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012842 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12843 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012844
12845
12846 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012847 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012848 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012849 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012850 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012851 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012852
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012853 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012854
12855
12856 </td> <!-- entry_type -->
12857
12858 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012859 <p>Number of histogram buckets
12860supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012861 </td>
12862
12863 <td class="entry_units">
12864 </td>
12865
12866 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012867 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012868 </td>
12869
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012870 <td class="entry_tags">
12871 </td>
12872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012873 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012874
12875
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012876 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12877 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012878
12879
12880 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012881 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012882 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012883 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012884 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012885 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012886
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012887 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012888
12889
12890 </td> <!-- entry_type -->
12891
12892 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012893 <p>Maximum number of simultaneously detectable
12894faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012895 </td>
12896
12897 <td class="entry_units">
12898 </td>
12899
12900 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012901 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012902modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012903 </td>
12904
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012905 <td class="entry_tags">
12906 </td>
12907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012908 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012909
12910
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012911 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12912 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012913
12914
12915 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012916 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012917 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012918 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012919 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012920 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012921
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012922 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012923
12924
12925 </td> <!-- entry_type -->
12926
12927 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012928 <p>Maximum value possible for a histogram
12929bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012930 </td>
12931
12932 <td class="entry_units">
12933 </td>
12934
12935 <td class="entry_range">
12936 </td>
12937
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012938 <td class="entry_tags">
12939 </td>
12940
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012941 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012942
12943
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012944 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12945 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012946
12947
12948 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012949 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012950 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012951 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012952 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012953 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012954
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012955 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012956
12957
12958 </td> <!-- entry_type -->
12959
12960 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012961 <p>Maximum value possible for a sharpness map
12962region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012963 </td>
12964
12965 <td class="entry_units">
12966 </td>
12967
12968 <td class="entry_range">
12969 </td>
12970
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012971 <td class="entry_tags">
12972 </td>
12973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012974 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012975
12976
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012977 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12978 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012979
12980
12981 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012982 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012983 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012985 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012986 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012987 <span class="entry_type_container">x</span>
12988
12989 <span class="entry_type_array">
12990 2
12991 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012992 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012993 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012994
12995
12996 </td> <!-- entry_type -->
12997
12998 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012999 <p>Dimensions of the sharpness
13000map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013001 </td>
13002
13003 <td class="entry_units">
13004 </td>
13005
13006 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013007 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013008 </td>
13009
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013010 <td class="entry_tags">
13011 </td>
13012
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013013 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013014
13015
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013016 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13017 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013018
13019
13020
13021
13022
13023
13024 <!-- end of kind -->
13025 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013026 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013027
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013028 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013029 <tr>
13030 <th class="th_name">Property Name</th>
13031 <th class="th_type">Type</th>
13032 <th class="th_description">Description</th>
13033 <th class="th_units">Units</th>
13034 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013035 <th class="th_tags">Tags</th>
13036 </tr>
13037 </thead>
13038
13039 <tbody>
13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013051 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013052 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013053 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013054 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013055 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013056
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013057 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013058
13059 <ul class="entry_type_enum">
13060 <li>
13061 <span class="entry_type_enum_name">OFF</span>
13062 </li>
13063 <li>
13064 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013065 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13066only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013067 </li>
13068 <li>
13069 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013070 <span class="entry_type_enum_notes"><p>Optional Return all face
13071metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013072 </li>
13073 </ul>
13074
13075 </td> <!-- entry_type -->
13076
13077 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013078 <p>State of the face detector
13079unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013080 </td>
13081
13082 <td class="entry_units">
13083 </td>
13084
13085 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013086 <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 -080013087 </td>
13088
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013089 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013090 <ul class="entry_tags">
13091 <li><a href="#tag_BC">BC</a></li>
13092 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013093 </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>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013102should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013103fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013104<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 -080013105 </td>
13106 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013107
13108
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013109 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13110 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013111
13112
13113 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013114 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013115 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013116 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013117 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013118 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013119 <span class="entry_type_container">x</span>
13120
13121 <span class="entry_type_array">
13122 n
13123 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013124 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013125
13126
13127 </td> <!-- entry_type -->
13128
13129 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013130 <p>List of unique IDs for detected
13131faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013132 </td>
13133
13134 <td class="entry_units">
13135 </td>
13136
13137 <td class="entry_range">
13138 </td>
13139
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013140 <td class="entry_tags">
13141 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013142 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013143 </ul>
13144 </td>
13145
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013146 </tr>
13147 <tr class="entries_header">
13148 <th class="th_details" colspan="5">Details</th>
13149 </tr>
13150 <tr class="entry_cont">
13151 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013152 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013153 </td>
13154 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013155
13156
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013157 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13158 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013159
13160
13161 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013162 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013163 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013164 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013165 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013166 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013167 <span class="entry_type_container">x</span>
13168
13169 <span class="entry_type_array">
13170 n x 6
13171 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013172 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013173 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013174
13175
13176 </td> <!-- entry_type -->
13177
13178 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013179 <p>List of landmarks for detected
13180faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013181 </td>
13182
13183 <td class="entry_units">
13184 </td>
13185
13186 <td class="entry_range">
13187 </td>
13188
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013189 <td class="entry_tags">
13190 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013191 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013192 </ul>
13193 </td>
13194
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013195 </tr>
13196 <tr class="entries_header">
13197 <th class="th_details" colspan="5">Details</th>
13198 </tr>
13199 <tr class="entry_cont">
13200 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013201 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013202 </td>
13203 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013204
13205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013206 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13207 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013208
13209
13210 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013211 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013212 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013213 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013214 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013215 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013216 <span class="entry_type_container">x</span>
13217
13218 <span class="entry_type_array">
13219 n x 4
13220 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013221 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013222 <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 -080013223
13224
13225 </td> <!-- entry_type -->
13226
13227 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013228 <p>List of the bounding rectangles for detected
13229faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013230 </td>
13231
13232 <td class="entry_units">
13233 </td>
13234
13235 <td class="entry_range">
13236 </td>
13237
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013238 <td class="entry_tags">
13239 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013240 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013241 </ul>
13242 </td>
13243
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013244 </tr>
13245 <tr class="entries_header">
13246 <th class="th_details" colspan="5">Details</th>
13247 </tr>
13248 <tr class="entry_cont">
13249 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013250 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013251 </td>
13252 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013253
13254
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013255 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13256 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013257
13258
13259 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013260 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013261 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013262 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013263 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013264 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013265 <span class="entry_type_container">x</span>
13266
13267 <span class="entry_type_array">
13268 n
13269 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013270 <span class="entry_type_visibility"> [hidden]</span>
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>List of the face confidence scores for
13277detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013278 </td>
13279
13280 <td class="entry_units">
13281 </td>
13282
13283 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013284 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013285 </td>
13286
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013287 <td class="entry_tags">
13288 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013289 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013290 </ul>
13291 </td>
13292
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013293 </tr>
13294 <tr class="entries_header">
13295 <th class="th_details" colspan="5">Details</th>
13296 </tr>
13297 <tr class="entry_cont">
13298 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013299 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13300meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013301 </td>
13302 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013303
13304
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013305 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13306 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013307
13308
13309 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013310 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013311 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013312 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013313 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013314 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013315 <span class="entry_type_container">x</span>
13316
13317 <span class="entry_type_array">
13318 n x 3
13319 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013320 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013321 <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 -080013322
13323
13324 </td> <!-- entry_type -->
13325
13326 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013327 <p>A 3-channel histogram based on the raw
13328sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013329 </td>
13330
13331 <td class="entry_units">
13332 </td>
13333
13334 <td class="entry_range">
13335 </td>
13336
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013337 <td class="entry_tags">
13338 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013339 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013340 </ul>
13341 </td>
13342
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013343 </tr>
13344 <tr class="entries_header">
13345 <th class="th_details" colspan="5">Details</th>
13346 </tr>
13347 <tr class="entry_cont">
13348 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013349 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013350(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 -080013351(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13352supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013353 </td>
13354 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013355
13356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013357 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13358 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013359
13360
13361 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013362 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013363 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013364 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013365 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013366 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013367
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013368 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013369
13370 <ul class="entry_type_enum">
13371 <li>
13372 <span class="entry_type_enum_name">OFF</span>
13373 </li>
13374 <li>
13375 <span class="entry_type_enum_name">ON</span>
13376 </li>
13377 </ul>
13378
13379 </td> <!-- entry_type -->
13380
13381 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013382 <p>Operating mode for histogram
13383generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013384 </td>
13385
13386 <td class="entry_units">
13387 </td>
13388
13389 <td class="entry_range">
13390 </td>
13391
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013392 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013393 <ul class="entry_tags">
13394 <li><a href="#tag_V1">V1</a></li>
13395 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013396 </td>
13397
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013398 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013399
13400
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013401 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13402 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013403
13404
13405 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013406 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013407 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013408 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013409 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013410 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013411 <span class="entry_type_container">x</span>
13412
13413 <span class="entry_type_array">
13414 n x m x 3
13415 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013416 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013417 <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 -080013418
13419
13420 </td> <!-- entry_type -->
13421
13422 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013423 <p>A 3-channel sharpness map,<wbr/> based on the raw
13424sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013425 </td>
13426
13427 <td class="entry_units">
13428 </td>
13429
13430 <td class="entry_range">
13431 </td>
13432
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013433 <td class="entry_tags">
13434 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013435 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013436 </ul>
13437 </td>
13438
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013439 </tr>
13440 <tr class="entries_header">
13441 <th class="th_details" colspan="5">Details</th>
13442 </tr>
13443 <tr class="entry_cont">
13444 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013445 <p>If only a monochrome sharpness map is supported,<wbr/>
13446all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013447 </td>
13448 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013449
13450
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013451 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13452 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013453
13454
13455 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013456 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013457 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013458 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013459 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013460 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013461
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013462 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013463
13464 <ul class="entry_type_enum">
13465 <li>
13466 <span class="entry_type_enum_name">OFF</span>
13467 </li>
13468 <li>
13469 <span class="entry_type_enum_name">ON</span>
13470 </li>
13471 </ul>
13472
13473 </td> <!-- entry_type -->
13474
13475 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013476 <p>Operating mode for sharpness map
13477generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013478 </td>
13479
13480 <td class="entry_units">
13481 </td>
13482
13483 <td class="entry_range">
13484 </td>
13485
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013486 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013487 <ul class="entry_tags">
13488 <li><a href="#tag_V1">V1</a></li>
13489 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013490 </td>
13491
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013492 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013493
13494
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013495 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13496 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013497
Zhijun He69fc0ea2013-07-17 09:42:58 -070013498
13499 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013500 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013501 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013502 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013503 <td class="entry_type">
13504 <span class="entry_type_name">float</span>
13505 <span class="entry_type_container">x</span>
13506
13507 <span class="entry_type_array">
13508 4 x n x m
13509 </span>
13510 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013511 <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 -070013512
13513
13514 </td> <!-- entry_type -->
13515
13516 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013517 <p>The shading map is a low-resolution floating-point map
13518that lists the coefficients used to correct for vignetting,<wbr/> for each
13519Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013520 </td>
13521
13522 <td class="entry_units">
13523 </td>
13524
13525 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013526 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013527 </td>
13528
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013529 <td class="entry_tags">
13530 </td>
13531
13532 </tr>
13533 <tr class="entries_header">
13534 <th class="th_details" colspan="5">Details</th>
13535 </tr>
13536 <tr class="entry_cont">
13537 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013538 <p>The least shaded section of the image should have a gain factor
13539of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013540<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 -080013541must take into account the colorCorrection settings.<wbr/></p>
13542<p>The shading map is for the entire active pixel array,<wbr/> and is not
13543affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013544entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013545pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13546map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13547(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13548pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13549The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13550<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13551channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13552The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013553is 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 -080013554<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13555and must be smaller than 64x64.<wbr/></p>
13556<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013557<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13558<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013559[ 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/>
13560 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/>
13561 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/>
13562 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/>
13563 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/>
13564 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 -080013565</code></pre>
13566<p>The low-resolution scaling map images for each channel are
13567(displayed using nearest-neighbor interpolation):</p>
13568<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13569<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13570<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13571<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013572<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013573image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013574<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 -070013575 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013576 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013577
13578
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013579 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13580 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013581
13582
13583 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013584 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013585 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013586 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013587 <td class="entry_type">
13588 <span class="entry_type_name">float</span>
13589 <span class="entry_type_container">x</span>
13590
13591 <span class="entry_type_array">
13592 4
13593 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013594 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013595 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013596
13597
13598 </td> <!-- entry_type -->
13599
13600 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013601 <p>The best-fit color channel gains calculated
13602by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013603 </td>
13604
13605 <td class="entry_units">
13606 </td>
13607
13608 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013609 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013610 </td>
13611
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013612 <td class="entry_tags">
13613 </td>
13614
13615 </tr>
13616 <tr class="entries_header">
13617 <th class="th_details" colspan="5">Details</th>
13618 </tr>
13619 <tr class="entry_cont">
13620 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013621 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013622since statistics processing on data from a new frame
13623typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013624applied to that frame.<wbr/></p>
13625<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013626see <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 -080013627<p>This value should always be calculated by the AWB block,<wbr/>
13628regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013629 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013630 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013631
13632
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013633 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13634 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013635
13636
13637 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013638 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013639 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013640 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013641 <td class="entry_type">
13642 <span class="entry_type_name">rational</span>
13643 <span class="entry_type_container">x</span>
13644
13645 <span class="entry_type_array">
13646 3 x 3
13647 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013648 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013649 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013650
13651
13652 </td> <!-- entry_type -->
13653
13654 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013655 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013656calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013657output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013658 </td>
13659
13660 <td class="entry_units">
13661 </td>
13662
13663 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013664 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013665 </td>
13666
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013667 <td class="entry_tags">
13668 </td>
13669
13670 </tr>
13671 <tr class="entries_header">
13672 <th class="th_details" colspan="5">Details</th>
13673 </tr>
13674 <tr class="entry_cont">
13675 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013676 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013677statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013678for the next frame.<wbr/> These are the values the HAL believes
13679are the best fit for the current output frame.<wbr/> This may
13680be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013681statistics processing on data from a new frame typically
13682completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013683that frame.<wbr/></p>
13684<p>These estimates must be provided for all frames,<wbr/> even if
13685capture settings and color transforms are set by the application.<wbr/></p>
13686<p>This value should always be calculated by the AWB block,<wbr/>
13687regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013688 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013689 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013690
13691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013692 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13693 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013694
13695
13696 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013697 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013698 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013699 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013700 <td class="entry_type">
13701 <span class="entry_type_name entry_type_name_enum">byte</span>
13702
13703 <span class="entry_type_visibility"> [public]</span>
13704
13705 <ul class="entry_type_enum">
13706 <li>
13707 <span class="entry_type_enum_name">NONE</span>
13708 </li>
13709 <li>
13710 <span class="entry_type_enum_name">50HZ</span>
13711 </li>
13712 <li>
13713 <span class="entry_type_enum_name">60HZ</span>
13714 </li>
13715 </ul>
13716
13717 </td> <!-- entry_type -->
13718
13719 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013720 <p>The HAL estimated scene illumination lighting
13721frequency</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013722 </td>
13723
13724 <td class="entry_units">
13725 </td>
13726
13727 <td class="entry_range">
13728 </td>
13729
Zhijun He69fc0ea2013-07-17 09:42:58 -070013730 <td class="entry_tags">
13731 </td>
13732
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013733 </tr>
13734 <tr class="entries_header">
13735 <th class="th_details" colspan="5">Details</th>
13736 </tr>
13737 <tr class="entry_cont">
13738 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013739 <p>Report NONE if there doesn't appear to be flickering
13740illumination</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013741 </td>
13742 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013743
13744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013745 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13746 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013747
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013748
13749
13750 <!-- end of kind -->
13751 </tbody>
13752
13753 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013754 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013755
13756
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013757 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013758
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013759 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013760 <tr>
13761 <th class="th_name">Property Name</th>
13762 <th class="th_type">Type</th>
13763 <th class="th_description">Description</th>
13764 <th class="th_units">Units</th>
13765 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013766 <th class="th_tags">Tags</th>
13767 </tr>
13768 </thead>
13769
13770 <tbody>
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013782 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013783 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013784 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013785 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013786 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013787 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013788
Zhijun He704d1282013-08-19 15:26:33 -070013789 <span class="entry_type_array">
13790 n x 2
13791 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013792 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013793 <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 -080013794
13795
13796 </td> <!-- entry_type -->
13797
13798 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013799 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13800channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13801CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013802 </td>
13803
13804 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013805 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013806 </td>
13807
13808 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013809 <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 -080013810 </td>
13811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013812 <td class="entry_tags">
13813 </td>
13814
13815 </tr>
13816 <tr class="entries_header">
13817 <th class="th_details" colspan="5">Details</th>
13818 </tr>
13819 <tr class="entry_cont">
13820 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013821 <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 -080013822 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013823 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013824
13825
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013826 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13827 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013828
13829
13830 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013831 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013832 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013833 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013834 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013835 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013836 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013837
Zhijun He704d1282013-08-19 15:26:33 -070013838 <span class="entry_type_array">
13839 n x 2
13840 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013841 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013842 <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 -080013843
13844
13845 </td> <!-- entry_type -->
13846
13847 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013848 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
13849channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13850CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013851 </td>
13852
13853 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013854 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013855 </td>
13856
13857 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013858 <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 -080013859 </td>
13860
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013861 <td class="entry_tags">
13862 </td>
13863
13864 </tr>
13865 <tr class="entries_header">
13866 <th class="th_details" colspan="5">Details</th>
13867 </tr>
13868 <tr class="entry_cont">
13869 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013870 <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 -080013871 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013872 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013873
13874
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013875 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13876 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013877
13878
13879 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013880 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013881 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013882 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013883 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013884 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013885 <span class="entry_type_container">x</span>
13886
13887 <span class="entry_type_array">
13888 n x 2
13889 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013890 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013891 <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 -080013892
13893
13894 </td> <!-- entry_type -->
13895
13896 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013897 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
13898channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13899CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013900 </td>
13901
13902 <td class="entry_units">
13903 </td>
13904
13905 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013906 <p>0-1 on both input and output coordinates,<wbr/> normalized
13907as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013908 </td>
13909
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013910 <td class="entry_tags">
13911 <ul class="entry_tags">
13912 <li><a href="#tag_DNG">DNG</a></li>
13913 </ul>
13914 </td>
13915
13916 </tr>
13917 <tr class="entries_header">
13918 <th class="th_details" colspan="5">Details</th>
13919 </tr>
13920 <tr class="entry_cont">
13921 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013922 <p>Each channel's curve is defined by an array of control points:</p>
13923<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
13924 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
139252 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
13926<p>These are sorted in order of increasing <code>Pin</code>; it is always
13927guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
13928define a complete mapping.<wbr/> For input values between control points,<wbr/>
13929the camera device must linearly interpolate between the control
13930points.<wbr/></p>
13931<p>Each curve can have an independent number of points,<wbr/> and the number
13932of points can be less than max (that is,<wbr/> the request doesn't have to
13933always provide a curve with number of points equivalent to
13934<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
13935<p>A few examples,<wbr/> and their corresponding graphical mappings; these
13936only specify the red channel and the precision is limited to 4
13937digits,<wbr/> for conciseness.<wbr/></p>
13938<p>Linear mapping:</p>
13939<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 ]
13940</code></pre>
13941<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
13942<p>Invert mapping:</p>
13943<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 ]
13944</code></pre>
13945<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
13946<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
13947<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13948 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/>
13949 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/>
13950 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/>
13951 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 ]
13952</code></pre>
13953<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
13954<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
13955<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13956 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/>
13957 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/>
13958 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/>
13959 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 ]
13960</code></pre>
13961<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013962 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013963 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013964
Igor Murashkin94e06c42014-01-13 16:51:17 -080013965 <tr class="entries_header">
13966 <th class="th_details" colspan="5">HAL Implementation Details</th>
13967 </tr>
13968 <tr class="entry_cont">
13969 <td class="entry_details" colspan="5">
13970 <p>For good quality of mapping,<wbr/> at least 128 control points are
13971preferred.<wbr/></p>
13972<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
13973control points used as are available.<wbr/></p>
13974 </td>
13975 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013976
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013977 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13978 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013979
13980
13981 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013983 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013985 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013986 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013987
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013988 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013989
13990 <ul class="entry_type_enum">
13991 <li>
13992 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013993 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080013994android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
13995<p>All color enhancement and tonemapping must be disabled,<wbr/> except
13996for applying the tonemapping curve specified by
13997<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
13998<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
13999<p>Must not slow down frame rate relative to raw
14000sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014001 </li>
14002 <li>
14003 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014004 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14005<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014006 </li>
14007 <li>
14008 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014009 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14010<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014011 </li>
14012 </ul>
14013
14014 </td> <!-- entry_type -->
14015
14016 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014017 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014018 </td>
14019
14020 <td class="entry_units">
14021 </td>
14022
14023 <td class="entry_range">
14024 </td>
14025
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014026 <td class="entry_tags">
14027 </td>
14028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014029 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014030 <tr class="entries_header">
14031 <th class="th_details" colspan="5">Details</th>
14032 </tr>
14033 <tr class="entry_cont">
14034 <td class="entry_details" colspan="5">
14035 <p>When switching to an application-defined contrast curve by setting
14036<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14037per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14038mapping from input high-bit-depth pixel value to the output
14039low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14040and output may change depending on the camera pipeline,<wbr/> the values
14041are specified by normalized floating-point numbers.<wbr/></p>
14042<p>More-complex color mapping operations such as 3D color look-up
14043tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14044transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14045CONTRAST_<wbr/>CURVE.<wbr/></p>
14046<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14047emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14048<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/>
14049These values are always available,<wbr/> and as close as possible to the
14050actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14051<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14052provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14053roughly the same.<wbr/></p>
14054 </td>
14055 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014056
14057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014058 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14059 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014060
14061
14062
14063 <!-- end of kind -->
14064 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014065 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014066
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014067 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014068 <tr>
14069 <th class="th_name">Property Name</th>
14070 <th class="th_type">Type</th>
14071 <th class="th_description">Description</th>
14072 <th class="th_units">Units</th>
14073 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014074 <th class="th_tags">Tags</th>
14075 </tr>
14076 </thead>
14077
14078 <tbody>
14079
14080
14081
14082
14083
14084
14085
14086
14087
14088
14089 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014090 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014091 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014092 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014093 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014094 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014095
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014096 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014097
14098
14099 </td> <!-- entry_type -->
14100
14101 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014102 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014103tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14104<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 -080014105 </td>
14106
14107 <td class="entry_units">
14108 </td>
14109
14110 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014111 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014112 </td>
14113
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014114 <td class="entry_tags">
14115 </td>
14116
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014117 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014118 <tr class="entries_header">
14119 <th class="th_details" colspan="5">Details</th>
14120 </tr>
14121 <tr class="entry_cont">
14122 <td class="entry_details" colspan="5">
14123 <p>If the actual number of points provided by the application (in
14124android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14125resample the curve to its internal representation,<wbr/> using linear
14126interpolation.<wbr/></p>
14127<p>The output curves in the result metadata may have a different number
14128of points than the input curves,<wbr/> and will represent the actual
14129hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14130 </td>
14131 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014132
Igor Murashkin94e06c42014-01-13 16:51:17 -080014133 <tr class="entries_header">
14134 <th class="th_details" colspan="5">HAL Implementation Details</th>
14135 </tr>
14136 <tr class="entry_cont">
14137 <td class="entry_details" colspan="5">
14138 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14139 </td>
14140 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014141
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014142 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14143 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014144
14145
14146
14147 <!-- end of kind -->
14148 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014149 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014150
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014151 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014152 <tr>
14153 <th class="th_name">Property Name</th>
14154 <th class="th_type">Type</th>
14155 <th class="th_description">Description</th>
14156 <th class="th_units">Units</th>
14157 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014158 <th class="th_tags">Tags</th>
14159 </tr>
14160 </thead>
14161
14162 <tbody>
14163
14164
14165
14166
14167
14168
14169
14170
14171
14172
14173 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014174 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014175 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014176 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014177 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014178 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014179 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014180
Zhijun He704d1282013-08-19 15:26:33 -070014181 <span class="entry_type_array">
14182 n x 2
14183 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014184 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014185 <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 -080014186
14187
14188 </td> <!-- entry_type -->
14189
14190 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014191 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14192channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14193CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014194 </td>
14195
14196 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014197 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014198 </td>
14199
14200 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014201 <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 -080014202 </td>
14203
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014204 <td class="entry_tags">
14205 </td>
14206
14207 </tr>
14208 <tr class="entries_header">
14209 <th class="th_details" colspan="5">Details</th>
14210 </tr>
14211 <tr class="entry_cont">
14212 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014213 <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 -080014214 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014215 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014216
14217
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014218 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14219 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014220
14221
14222 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014223 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014224 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014225 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014226 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014227 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014228 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014229
Zhijun He704d1282013-08-19 15:26:33 -070014230 <span class="entry_type_array">
14231 n x 2
14232 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014233 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014234 <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 -080014235
14236
14237 </td> <!-- entry_type -->
14238
14239 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014240 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14241channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14242CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014243 </td>
14244
14245 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014246 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014247 </td>
14248
14249 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014250 <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 -080014251 </td>
14252
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014253 <td class="entry_tags">
14254 </td>
14255
14256 </tr>
14257 <tr class="entries_header">
14258 <th class="th_details" colspan="5">Details</th>
14259 </tr>
14260 <tr class="entry_cont">
14261 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014262 <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 -080014263 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014264 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014265
14266
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014267 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14268 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014269
14270
14271 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014272 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014273 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014274 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014275 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014276 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014277 <span class="entry_type_container">x</span>
14278
14279 <span class="entry_type_array">
14280 n x 2
14281 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014282 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014283 <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 -080014284
14285
14286 </td> <!-- entry_type -->
14287
14288 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014289 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14290channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14291CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014292 </td>
14293
14294 <td class="entry_units">
14295 </td>
14296
14297 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014298 <p>0-1 on both input and output coordinates,<wbr/> normalized
14299as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014300 </td>
14301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014302 <td class="entry_tags">
14303 <ul class="entry_tags">
14304 <li><a href="#tag_DNG">DNG</a></li>
14305 </ul>
14306 </td>
14307
14308 </tr>
14309 <tr class="entries_header">
14310 <th class="th_details" colspan="5">Details</th>
14311 </tr>
14312 <tr class="entry_cont">
14313 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014314 <p>Each channel's curve is defined by an array of control points:</p>
14315<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14316 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
143172 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14318<p>These are sorted in order of increasing <code>Pin</code>; it is always
14319guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14320define a complete mapping.<wbr/> For input values between control points,<wbr/>
14321the camera device must linearly interpolate between the control
14322points.<wbr/></p>
14323<p>Each curve can have an independent number of points,<wbr/> and the number
14324of points can be less than max (that is,<wbr/> the request doesn't have to
14325always provide a curve with number of points equivalent to
14326<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14327<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14328only specify the red channel and the precision is limited to 4
14329digits,<wbr/> for conciseness.<wbr/></p>
14330<p>Linear mapping:</p>
14331<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 ]
14332</code></pre>
14333<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14334<p>Invert mapping:</p>
14335<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 ]
14336</code></pre>
14337<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14338<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14339<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14340 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/>
14341 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/>
14342 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/>
14343 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 ]
14344</code></pre>
14345<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14346<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14347<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14348 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/>
14349 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/>
14350 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/>
14351 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 ]
14352</code></pre>
14353<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014354 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014355 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014356
Igor Murashkin94e06c42014-01-13 16:51:17 -080014357 <tr class="entries_header">
14358 <th class="th_details" colspan="5">HAL Implementation Details</th>
14359 </tr>
14360 <tr class="entry_cont">
14361 <td class="entry_details" colspan="5">
14362 <p>For good quality of mapping,<wbr/> at least 128 control points are
14363preferred.<wbr/></p>
14364<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14365control points used as are available.<wbr/></p>
14366 </td>
14367 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014368
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014369 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14370 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014371
14372
14373 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014374 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014375 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014376 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014377 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014378 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014379
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014380 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014381
14382 <ul class="entry_type_enum">
14383 <li>
14384 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014385 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014386android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14387<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14388for applying the tonemapping curve specified by
14389<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
14390<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14391<p>Must not slow down frame rate relative to raw
14392sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014393 </li>
14394 <li>
14395 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014396 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14397<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014398 </li>
14399 <li>
14400 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014401 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14402<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014403 </li>
14404 </ul>
14405
14406 </td> <!-- entry_type -->
14407
14408 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014409 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014410 </td>
14411
14412 <td class="entry_units">
14413 </td>
14414
14415 <td class="entry_range">
14416 </td>
14417
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014418 <td class="entry_tags">
14419 </td>
14420
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014421 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014422 <tr class="entries_header">
14423 <th class="th_details" colspan="5">Details</th>
14424 </tr>
14425 <tr class="entry_cont">
14426 <td class="entry_details" colspan="5">
14427 <p>When switching to an application-defined contrast curve by setting
14428<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14429per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14430mapping from input high-bit-depth pixel value to the output
14431low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14432and output may change depending on the camera pipeline,<wbr/> the values
14433are specified by normalized floating-point numbers.<wbr/></p>
14434<p>More-complex color mapping operations such as 3D color look-up
14435tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14436transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14437CONTRAST_<wbr/>CURVE.<wbr/></p>
14438<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14439emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14440<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/>
14441These values are always available,<wbr/> and as close as possible to the
14442actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14443<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14444provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14445roughly the same.<wbr/></p>
14446 </td>
14447 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014448
14449
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014450 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14451 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014452
14453
14454
14455 <!-- end of kind -->
14456 </tbody>
14457
14458 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014459 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014460
14461
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014462 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014463
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014464 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014465 <tr>
14466 <th class="th_name">Property Name</th>
14467 <th class="th_type">Type</th>
14468 <th class="th_description">Description</th>
14469 <th class="th_units">Units</th>
14470 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014471 <th class="th_tags">Tags</th>
14472 </tr>
14473 </thead>
14474
14475 <tbody>
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014487 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014488 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014489 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014490 <td class="entry_type">
14491 <span class="entry_type_name entry_type_name_enum">byte</span>
14492
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014493 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014494
14495 <ul class="entry_type_enum">
14496 <li>
14497 <span class="entry_type_enum_name">OFF</span>
14498 </li>
14499 <li>
14500 <span class="entry_type_enum_name">ON</span>
14501 </li>
14502 </ul>
14503
14504 </td> <!-- entry_type -->
14505
14506 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014507 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014508that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014509Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014510disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014511any untrusted applications.<wbr/></p>
14512<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14513transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14514data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014515<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014516doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014517 </td>
14518
14519 <td class="entry_units">
14520 </td>
14521
14522 <td class="entry_range">
14523 </td>
14524
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014525 <td class="entry_tags">
14526 </td>
14527
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014528 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014529
14530
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014531 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14532 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014533
14534
14535
14536 <!-- end of kind -->
14537 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014538 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014539
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014540 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014541 <tr>
14542 <th class="th_name">Property Name</th>
14543 <th class="th_type">Type</th>
14544 <th class="th_description">Description</th>
14545 <th class="th_units">Units</th>
14546 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014547 <th class="th_tags">Tags</th>
14548 </tr>
14549 </thead>
14550
14551 <tbody>
14552
14553
14554
14555
14556
14557
14558
14559
14560
14561
14562 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014563 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014564 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014565 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014566 <td class="entry_type">
14567 <span class="entry_type_name entry_type_name_enum">byte</span>
14568
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014569 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014570
14571 <ul class="entry_type_enum">
14572 <li>
14573 <span class="entry_type_enum_name">OFF</span>
14574 </li>
14575 <li>
14576 <span class="entry_type_enum_name">ON</span>
14577 </li>
14578 </ul>
14579
14580 </td> <!-- entry_type -->
14581
14582 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014583 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014584that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014585Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014586disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014587any untrusted applications.<wbr/></p>
14588<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14589transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14590data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014591<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014592doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014593 </td>
14594
14595 <td class="entry_units">
14596 </td>
14597
14598 <td class="entry_range">
14599 </td>
14600
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014601 <td class="entry_tags">
14602 </td>
14603
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014604 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014605
14606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014607 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14608 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014609
14610
14611
14612 <!-- end of kind -->
14613 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014614 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014615
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014616 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014617 <tr>
14618 <th class="th_name">Property Name</th>
14619 <th class="th_type">Type</th>
14620 <th class="th_description">Description</th>
14621 <th class="th_units">Units</th>
14622 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014623 <th class="th_tags">Tags</th>
14624 </tr>
14625 </thead>
14626
14627 <tbody>
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014639 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014640 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014641 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014642 <td class="entry_type">
14643 <span class="entry_type_name entry_type_name_enum">byte</span>
14644 <span class="entry_type_container">x</span>
14645
14646 <span class="entry_type_array">
14647 n
14648 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014649 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014650
14651 <ul class="entry_type_enum">
14652 <li>
14653 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014654 <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 -070014655 </li>
14656 </ul>
14657
14658 </td> <!-- entry_type -->
14659
14660 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014661 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014662 </td>
14663
14664 <td class="entry_units">
14665 </td>
14666
14667 <td class="entry_range">
14668 </td>
14669
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014670 <td class="entry_tags">
14671 </td>
14672
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014673 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014674
14675
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014676 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14677 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014678
14679
14680
14681 <!-- end of kind -->
14682 </tbody>
14683
14684 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014685 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014686
14687
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014688 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014689
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014690 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014691 <tr>
14692 <th class="th_name">Property Name</th>
14693 <th class="th_type">Type</th>
14694 <th class="th_description">Description</th>
14695 <th class="th_units">Units</th>
14696 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014697 <th class="th_tags">Tags</th>
14698 </tr>
14699 </thead>
14700
14701 <tbody>
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014713 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014714 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014715 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014716 <td class="entry_type">
14717 <span class="entry_type_name entry_type_name_enum">byte</span>
14718
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014719 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014720
14721 <ul class="entry_type_enum">
14722 <li>
14723 <span class="entry_type_enum_name">LIMITED</span>
14724 </li>
14725 <li>
14726 <span class="entry_type_enum_name">FULL</span>
14727 </li>
14728 </ul>
14729
14730 </td> <!-- entry_type -->
14731
14732 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014733 <p>The camera 3 HAL device can implement one of two possible
14734operational modes; limited and full.<wbr/> Full support is
14735expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014736hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014737camera HAL device v1 implementation,<wbr/> and is expected from
14738older or inexpensive devices.<wbr/> Full is a strict superset of
14739limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14740<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014741 </td>
14742
14743 <td class="entry_units">
14744 </td>
14745
14746 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014747 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014748 </td>
14749
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014750 <td class="entry_tags">
14751 </td>
14752
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014753 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014754
14755
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014756 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14757 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014758
14759
14760
14761 <!-- end of kind -->
14762 </tbody>
14763
14764 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014765 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014766
14767
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014768 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014769
14770 <thead class="entries_header">
14771 <tr>
14772 <th class="th_name">Property Name</th>
14773 <th class="th_type">Type</th>
14774 <th class="th_description">Description</th>
14775 <th class="th_units">Units</th>
14776 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014777 <th class="th_tags">Tags</th>
14778 </tr>
14779 </thead>
14780
14781 <tbody>
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014793 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014794 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014795 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014796 <td class="entry_type">
14797 <span class="entry_type_name entry_type_name_enum">byte</span>
14798
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014799 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014800
14801 <ul class="entry_type_enum">
14802 <li>
14803 <span class="entry_type_enum_name">OFF</span>
14804 </li>
14805 <li>
14806 <span class="entry_type_enum_name">ON</span>
14807 </li>
14808 </ul>
14809
14810 </td> <!-- entry_type -->
14811
14812 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014813 <p>Whether black-level compensation is locked
14814to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014815 </td>
14816
14817 <td class="entry_units">
14818 </td>
14819
14820 <td class="entry_range">
14821 </td>
14822
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014823 <td class="entry_tags">
14824 <ul class="entry_tags">
14825 <li><a href="#tag_HAL2">HAL2</a></li>
14826 </ul>
14827 </td>
14828
14829 </tr>
14830 <tr class="entries_header">
14831 <th class="th_details" colspan="5">Details</th>
14832 </tr>
14833 <tr class="entry_cont">
14834 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014835 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014836compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080014837OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014838<p>Since changes to certain capture parameters (such as
14839exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080014840compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014841the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080014842metadata.<wbr/></p>
14843<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014844<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014845<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14846<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14847<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14848<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14849<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14850<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014851</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014852<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080014853device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014854result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014855<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014856<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14857<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14858<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14859<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
14860<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14861<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014862</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014863<p>This indicates to the application that on frame 4,<wbr/> black
14864levels were reset due to exposure value changes,<wbr/> and pixel
14865values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014866<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080014867possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014868other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080014869or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014870 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014871 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014872
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014873 <tr class="entries_header">
14874 <th class="th_details" colspan="5">HAL Implementation Details</th>
14875 </tr>
14876 <tr class="entry_cont">
14877 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014878 <p>If for some reason black level locking is no longer possible
14879(for example,<wbr/> the analog gain has changed,<wbr/> which forces
14880black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014881override this request (and it must report 'OFF' when this
14882does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080014883possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014884 </td>
14885 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014886
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014887 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14888 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014889
14890
14891
14892 <!-- end of kind -->
14893 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014894 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014895
14896 <thead class="entries_header">
14897 <tr>
14898 <th class="th_name">Property Name</th>
14899 <th class="th_type">Type</th>
14900 <th class="th_description">Description</th>
14901 <th class="th_units">Units</th>
14902 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014903 <th class="th_tags">Tags</th>
14904 </tr>
14905 </thead>
14906
14907 <tbody>
14908
14909
14910
14911
14912
14913
14914
14915
14916
14917
14918 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014919 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014920 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014921 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014922 <td class="entry_type">
14923 <span class="entry_type_name entry_type_name_enum">byte</span>
14924
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014925 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014926
14927 <ul class="entry_type_enum">
14928 <li>
14929 <span class="entry_type_enum_name">OFF</span>
14930 </li>
14931 <li>
14932 <span class="entry_type_enum_name">ON</span>
14933 </li>
14934 </ul>
14935
14936 </td> <!-- entry_type -->
14937
14938 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014939 <p>Whether black-level compensation is locked
14940to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014941 </td>
14942
14943 <td class="entry_units">
14944 </td>
14945
14946 <td class="entry_range">
14947 </td>
14948
Zhijun He69fc0ea2013-07-17 09:42:58 -070014949 <td class="entry_tags">
14950 <ul class="entry_tags">
14951 <li><a href="#tag_HAL2">HAL2</a></li>
14952 </ul>
14953 </td>
14954
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014955 </tr>
14956 <tr class="entries_header">
14957 <th class="th_details" colspan="5">Details</th>
14958 </tr>
14959 <tr class="entry_cont">
14960 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014961 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014962ON 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 -080014963a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080014964perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014965 </td>
14966 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014967
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014968 <tr class="entries_header">
14969 <th class="th_details" colspan="5">HAL Implementation Details</th>
14970 </tr>
14971 <tr class="entry_cont">
14972 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014973 <p>If for some reason black level locking is no longer possible
14974(for example,<wbr/> the analog gain has changed,<wbr/> which forces
14975black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014976override this request (and it must report 'OFF' when this
14977does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080014978possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014979 </td>
14980 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014981
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014982 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14983 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014984
14985
14986
14987 <!-- end of kind -->
14988 </tbody>
14989
14990 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080014991 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
14992
14993
14994 <tr><td colspan="6" class="kind">dynamic</td></tr>
14995
14996 <thead class="entries_header">
14997 <tr>
14998 <th class="th_name">Property Name</th>
14999 <th class="th_type">Type</th>
15000 <th class="th_description">Description</th>
15001 <th class="th_units">Units</th>
15002 <th class="th_range">Range</th>
15003 <th class="th_tags">Tags</th>
15004 </tr>
15005 </thead>
15006
15007 <tbody>
15008
15009
15010
15011
15012
15013
15014
15015
15016
15017
15018 <tr class="entry" id="dynamic_android.sync.frameNumber">
15019 <td class="entry_name" rowspan="5">
15020 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15021 </td>
15022 <td class="entry_type">
15023 <span class="entry_type_name entry_type_name_enum">int64</span>
15024
15025 <span class="entry_type_visibility"> [hidden]</span>
15026
15027 <ul class="entry_type_enum">
15028 <li>
15029 <span class="entry_type_enum_name">CONVERGING</span>
15030 <span class="entry_type_enum_value">-1</span>
15031 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15032Synchronization is in progress,<wbr/> and reading metadata from this
15033result may include a mix of data that have taken effect since the
15034last synchronization time.<wbr/></p>
15035<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15036this value will update to the actual frame number frame number
15037the result is guaranteed to be synchronized to (as long as the
15038request settings remain constant).<wbr/></p></span>
15039 </li>
15040 <li>
15041 <span class="entry_type_enum_name">UNKNOWN</span>
15042 <span class="entry_type_enum_value">-2</span>
15043 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15044result may have already converged,<wbr/> or it may be in progress.<wbr/>
15045Reading from this result may include some mix of settings from
15046past requests.<wbr/></p>
15047<p>After a settings change,<wbr/> the new settings will eventually all
15048take effect for the output buffers and results.<wbr/> However,<wbr/> this
15049value will not change when that happens.<wbr/> Altering settings
15050rapidly may provide outcomes using mixes of settings from recent
15051requests.<wbr/></p>
15052<p>This value is intended primarily for backwards compatibility with
15053the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15054 </li>
15055 </ul>
15056
15057 </td> <!-- entry_type -->
15058
15059 <td class="entry_description">
15060 <p>The frame number corresponding to the last request
15061with which the output result (metadata + buffers) has been fully
15062synchronized.<wbr/></p>
15063 </td>
15064
15065 <td class="entry_units">
15066 </td>
15067
15068 <td class="entry_range">
15069 <p>Either a non-negative value corresponding to a
15070<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15071 </td>
15072
15073 <td class="entry_tags">
15074 <ul class="entry_tags">
15075 <li><a href="#tag_LIMITED">LIMITED</a></li>
15076 </ul>
15077 </td>
15078
15079 </tr>
15080 <tr class="entries_header">
15081 <th class="th_details" colspan="5">Details</th>
15082 </tr>
15083 <tr class="entry_cont">
15084 <td class="entry_details" colspan="5">
15085 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15086delay of several frames before the controls get applied.<wbr/> A camera
15087device may either choose to account for this delay by implementing a
15088pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15089it may start streaming control changes that span over several frame
15090boundaries.<wbr/></p>
15091<p>In the latter case,<wbr/> whenever a request's settings change relative to
15092the previous submitted request,<wbr/> the full set of changes may take
15093multiple frame durations to fully take effect.<wbr/> Some settings may
15094take effect sooner (in less frame durations) than others.<wbr/></p>
15095<p>While a set of control changes are being propagated,<wbr/> this value
15096will be CONVERGING.<wbr/></p>
15097<p>Once it is fully known that a set of control changes have been
15098finished propagating,<wbr/> and the resulting updated control settings
15099have been read back by the camera device,<wbr/> this value will be set
15100to a non-negative frame number (corresponding to the request to
15101which the results have synchronized to).<wbr/></p>
15102<p>Older camera device implementations may not have a way to detect
15103when all camera controls have been applied,<wbr/> and will always set this
15104value to UNKNOWN.<wbr/></p>
15105<p>FULL capability devices will always have this value set to the
15106frame number of the request corresponding to this result.<wbr/></p>
15107<p><em>Further details</em>:</p>
15108<ul>
15109<li>Whenever a request differs from the last request,<wbr/> any future
15110results not yet returned may have this value set to CONVERGING (this
15111could include any in-progress captures not yet returned by the camera
15112device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15113<li>Submitting a series of multiple requests that differ from the
15114previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15115moves the new synchronization frame to the last non-repeating
15116request (using the smallest frame number from the contiguous list of
15117repeating requests).<wbr/></li>
15118<li>Submitting the same request repeatedly will not change this value
15119to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15120<li>When this value changes to non-negative,<wbr/> that means that all of the
15121metadata controls from the request have been applied,<wbr/> all of the
15122metadata controls from the camera device have been read to the
15123updated values (into the result),<wbr/> and all of the graphics buffers
15124corresponding to this result are also synchronized to the request.<wbr/></li>
15125</ul>
15126<p><em>Pipeline considerations</em>:</p>
15127<p>Submitting a request with updated controls relative to the previously
15128submitted requests may also invalidate the synchronization state
15129of all the results corresponding to currently in-flight requests.<wbr/></p>
15130<p>In other words,<wbr/> results for this current request and up to
15131<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15132<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15133 </td>
15134 </tr>
15135
15136 <tr class="entries_header">
15137 <th class="th_details" colspan="5">HAL Implementation Details</th>
15138 </tr>
15139 <tr class="entry_cont">
15140 <td class="entry_details" colspan="5">
15141 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15142is also UNKNOWN.<wbr/></p>
15143<p>FULL capability devices should simply set this value to the
15144<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15145 </td>
15146 </tr>
15147
15148 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15149 <!-- end of entry -->
15150
15151
15152
15153 <!-- end of kind -->
15154 </tbody>
15155 <tr><td colspan="6" class="kind">static</td></tr>
15156
15157 <thead class="entries_header">
15158 <tr>
15159 <th class="th_name">Property Name</th>
15160 <th class="th_type">Type</th>
15161 <th class="th_description">Description</th>
15162 <th class="th_units">Units</th>
15163 <th class="th_range">Range</th>
15164 <th class="th_tags">Tags</th>
15165 </tr>
15166 </thead>
15167
15168 <tbody>
15169
15170
15171
15172
15173
15174
15175
15176
15177
15178
15179 <tr class="entry" id="static_android.sync.maxLatency">
15180 <td class="entry_name" rowspan="5">
15181 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15182 </td>
15183 <td class="entry_type">
15184 <span class="entry_type_name entry_type_name_enum">int32</span>
15185
15186 <span class="entry_type_visibility"> [public]</span>
15187
15188 <ul class="entry_type_enum">
15189 <li>
15190 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15191 <span class="entry_type_enum_value">0</span>
15192 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15193(and furthermore for all results,<wbr/>
15194<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>
15195<p>Changing controls over multiple requests one after another will
15196produce results that have those controls applied atomically
15197each frame.<wbr/></p>
15198<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15199 </li>
15200 <li>
15201 <span class="entry_type_enum_name">UNKNOWN</span>
15202 <span class="entry_type_enum_value">-1</span>
15203 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15204of the past requests applied to the camera settings.<wbr/></p>
15205<p>By submitting a series of identical requests,<wbr/> the camera device
15206will eventually have the camera settings applied,<wbr/> but it is
15207unknown when that exact point will be.<wbr/></p></span>
15208 </li>
15209 </ul>
15210
15211 </td> <!-- entry_type -->
15212
15213 <td class="entry_description">
15214 <p>The maximum number of frames that can occur after a request
15215(different than the previous) has been submitted,<wbr/> and before the
15216result's state becomes synchronized (by setting
15217<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15218 </td>
15219
15220 <td class="entry_units">
15221 number of processed requests
15222 </td>
15223
15224 <td class="entry_range">
15225 <p>&gt;= -1</p>
15226 </td>
15227
15228 <td class="entry_tags">
15229 <ul class="entry_tags">
15230 <li><a href="#tag_LIMITED">LIMITED</a></li>
15231 </ul>
15232 </td>
15233
15234 </tr>
15235 <tr class="entries_header">
15236 <th class="th_details" colspan="5">Details</th>
15237 </tr>
15238 <tr class="entry_cont">
15239 <td class="entry_details" colspan="5">
15240 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15241between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15242<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15243<p>In other words this acts as an upper boundary for how many frames
15244must occur before the camera device knows for a fact that the new
15245submitted camera settings have been applied in outgoing frames.<wbr/></p>
15246<p>For example if the distance was 2,<wbr/></p>
15247<pre><code>initial request = X (repeating)
15248request1 = X
15249request2 = Y
15250request3 = Y
15251request4 = Y
15252
15253where requestN has frameNumber N,<wbr/> and the first of the repeating
15254initial request's has frameNumber F (and F &lt; 1).<wbr/>
15255
15256initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15257result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15258result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15259result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15260result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15261
15262where resultN has frameNumber N.<wbr/>
15263</code></pre>
15264<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15265<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15266<code>4 - 2 = 2</code>.<wbr/></p>
15267 </td>
15268 </tr>
15269
15270 <tr class="entries_header">
15271 <th class="th_details" colspan="5">HAL Implementation Details</th>
15272 </tr>
15273 <tr class="entry_cont">
15274 <td class="entry_details" colspan="5">
15275 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15276<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15277<p>LIMITED devices are strongly encouraged to use a non-negative
15278value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15279to know when sensor settings have been applied.<wbr/></p>
15280 </td>
15281 </tr>
15282
15283 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15284 <!-- end of entry -->
15285
15286
15287
15288 <!-- end of kind -->
15289 </tbody>
15290
15291 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015292<!-- </namespace> -->
15293 </table>
15294
15295 <div class="tags" id="tag_index">
15296 <h2>Tags</h2>
15297 <ul>
15298 <li id="tag_AWB">AWB -
15299 Needed for auto white balance
15300
15301 <ul class="tags_entries">
15302 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15303 </ul>
15304 </li> <!-- tag_AWB -->
15305 <li id="tag_BC">BC -
15306 Needed for backwards compatibility with old Java API
15307
15308 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015309 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015310 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15311 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15312 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15313 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15314 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015315 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015316 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15317 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015318 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015319 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15320 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15321 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15322 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15323 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15324 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15325 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15326 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015327 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015328 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15329 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15330 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15331 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15332 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15333 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15334 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15335 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15336 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15337 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15338 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15339 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15340 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15341 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15342 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15343 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15344 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15345 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15346 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15347 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15348 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15349 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15350 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15351 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15352 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15353 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15354 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15355 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015356 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015357 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15358 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15359 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015360 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015361 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015362 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15363 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15364 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15365 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15366 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15367 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15368 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15369 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15370 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15371 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15372 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15373 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15374 </ul>
15375 </li> <!-- tag_BC -->
15376 <li id="tag_V1">V1 -
15377 New features for first camera 2 release (API1)
15378
15379 <ul class="tags_entries">
15380 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15381 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15382 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15383 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15384 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15385 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15386 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15387 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15388 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15389 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15390 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15391 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15392 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15393 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15394 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15395 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15396 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15397 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15398 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15399 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15400 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15401 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15402 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15403 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015404 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015405 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15406 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15407 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15408 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15409 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15410 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15411 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15412 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15413 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15414 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15415 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15416 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15417 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15418 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15419 </ul>
15420 </li> <!-- tag_V1 -->
15421 <li id="tag_ADV">ADV - None
15422 <ul class="tags_entries">
15423 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15424 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15425 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15426 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15427 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15428 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15429 </ul>
15430 </li> <!-- tag_ADV -->
15431 <li id="tag_DNG">DNG -
15432 Needed for DNG file support
15433
15434 <ul class="tags_entries">
15435 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015436 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15437 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15438 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15439 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15440 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15441 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15442 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15443 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15444 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15445 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15446 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15447 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15448 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15449 </ul>
15450 </li> <!-- tag_DNG -->
15451 <li id="tag_EXIF">EXIF - None
15452 <ul class="tags_entries">
15453 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15454 </ul>
15455 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015456 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015457 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015458
15459 <ul class="tags_entries">
15460 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15461 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15462 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015463 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015464 </ul>
15465 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015466 <li id="tag_FULL">FULL -
15467 Entry is required for full hardware level devices, and optional for other hardware levels
15468
15469 <ul class="tags_entries">
15470 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15471 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15472 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15473 </ul>
15474 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015475 <li id="tag_LIMITED">LIMITED -
15476 Entry assists with LIMITED device implementation. LIMITED devices
15477 must implement all entries with this tag. Optional for FULL devices.
15478
15479 <ul class="tags_entries">
15480 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15481 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15482 </ul>
15483 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015484 </ul>
15485 </div>
15486
15487 [ <a href="#">top</a> ]
15488
15489</body>
15490</html>