blob: c2cfcb272e19110640dcb7f8a6e07396447513ce [file] [log] [blame]
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001<!DOCTYPE html>
2<html>
3<!-- Copyright (C) 2012 The Android Open Source Project
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16-->
17<head>
18 <!-- automatically generated from html.mako. do NOT edit directly -->
19 <meta charset="utf-8" />
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070020 <title>Android Camera HAL3.0 Properties</title>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021 <style type="text/css">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022 body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
23 h1 { color: #333333; }
24 h2 { color: #333333; }
25 a:link { color: #258aaf; text-decoration: none}
26 a:hover { color: #459aaf; text-decoration: underline }
27 a:visited { color: #154a5f; text-decoration: none}
28 .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777}
29 .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
30 .entry { background-color: #f0f0f0 }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080031 .entry_cont { background-color: #f0f0f0 }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070032 .entries_header { background-color: #dddddd; text-align: center}
33
34 /* toc style */
35 .toc_section_header { font-size:1.3em; }
36 .toc_kind_header { font-size:1.2em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080037
38 /* table column sizes */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070039 table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
40 td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080041 .th_name { width: 20% }
42 .th_units { width: 10% }
43 .th_tags { width: 5% }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080044 .th_details { width: 25% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080045 .th_type { width: 20% }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070046 .th_description { width: 20% }
47 .th_range { width: 10% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080048 td { font-size: 0.9em; }
49
50 /* hide the first thead, we need it there only to enforce column sizes */
51 .thead_dummy { visibility: hidden; }
52
53 /* Entry flair */
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080054 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080055
56 /* Entry type flair */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070057 .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
58 .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
59 .entry_type_visibility { font-weight: bolder; padding-left:1em}
Igor Murashkin08b8aad2012-11-29 15:23:03 -080060 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
61 .entry_type_enum_notes:before { content:" - " }
Igor Murashkina10351a2014-01-15 17:05:22 -080062 .entry_type_enum_notes>p:first-child { display:inline; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080063 .entry_type_enum_value:before { content:" = " }
64 .entry_type_enum_value { font-family: monospace; }
65 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
66 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
67
68 /* Entry tags flair */
69 .entry_tags ul { list-style-type: none; }
70
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080071 /* Entry details (full docs) flair */
72 .entry_details_header { font-weight: bold; background-color: #dddddd;
73 text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
74
75 /* Entry spacer flair */
76 .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080077
78 /* TODO: generate abbr element for each tag link? */
79 /* TODO for each x.y.z try to link it to the entry */
80
81 </style>
82
83 <style>
84
85 {
86 /* broken...
87 supposedly there is a bug in chrome that it lays out tables before
88 it knows its being printed, so the page-break-* styles are ignored
89 */
90 tr { page-break-after: always; page-break-inside: avoid; }
91 }
92
93 </style>
94</head>
95
96
97
Igor Murashkin08b8aad2012-11-29 15:23:03 -080098<body>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070099 <h1>Android Camera HAL3.0 Properties</h1>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800100
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700101
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800102 <h2>Table of Contents</h2>
103 <ul class="toc">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700104 <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
105 <li>
106 <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
107 <ul class="toc_section">
108 <li>
109 <span class="toc_kind_header">controls</span>
110 <ul class="toc_section">
111 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
112 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700113 <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700114 </ul>
115 </li>
116 <li>
117 <span class="toc_kind_header">dynamic</span>
118 <ul class="toc_section">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700119 <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
120 <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700121 </ul>
122 </li>
123 </ul> <!-- toc_section -->
124 </li>
125 <li>
126 <span class="toc_section_header"><a href="#section_control">control</a></span>
127 <ul class="toc_section">
128 <li>
129 <span class="toc_kind_header">controls</span>
130 <ul class="toc_section">
131 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
132 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
133 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
134 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
135 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
136 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
137 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
138 <li><a href="#controls_android.control.afMode">android.control.afMode</a></li>
139 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
140 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
141 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
142 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
143 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
144 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
145 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
146 <li><a href="#controls_android.control.mode">android.control.mode</a></li>
147 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
148 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
149 </ul>
150 </li>
151 <li>
152 <span class="toc_kind_header">static</span>
153 <ul class="toc_section">
154 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
155 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
156 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
157 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
158 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
159 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
160 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
161 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
162 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
163 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
164 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
165 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
166 </ul>
167 </li>
168 <li>
169 <span class="toc_kind_header">dynamic</span>
170 <ul class="toc_section">
171 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -0800172 <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700173 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
174 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
175 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
176 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
177 <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
178 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
179 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
180 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
181 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
182 <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
183 </ul>
184 </li>
185 </ul> <!-- toc_section -->
186 </li>
187 <li>
188 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
189 <ul class="toc_section">
190 <li>
191 <span class="toc_kind_header">controls</span>
192 <ul class="toc_section">
193 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
194 </ul>
195 </li>
196 </ul> <!-- toc_section -->
197 </li>
198 <li>
199 <span class="toc_section_header"><a href="#section_edge">edge</a></span>
200 <ul class="toc_section">
201 <li>
202 <span class="toc_kind_header">controls</span>
203 <ul class="toc_section">
204 <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
205 <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
206 </ul>
207 </li>
208 <li>
209 <span class="toc_kind_header">dynamic</span>
210 <ul class="toc_section">
211 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
212 </ul>
213 </li>
214 </ul> <!-- toc_section -->
215 </li>
216 <li>
217 <span class="toc_section_header"><a href="#section_flash">flash</a></span>
218 <ul class="toc_section">
219 <li>
220 <span class="toc_kind_header">controls</span>
221 <ul class="toc_section">
222 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
223 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
224 <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
225 </ul>
226 </li>
227 <li>
228 <span class="toc_kind_header">static</span>
229 <ul class="toc_section">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800230
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700231 <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
232 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700234 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
235 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
236 </ul>
237 </li>
238 <li>
239 <span class="toc_kind_header">dynamic</span>
240 <ul class="toc_section">
241 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
242 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
243 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
244 <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
245 </ul>
246 </li>
247 </ul> <!-- toc_section -->
248 </li>
249 <li>
250 <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
251 <ul class="toc_section">
252 <li>
253 <span class="toc_kind_header">controls</span>
254 <ul class="toc_section">
255 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
256 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
257 </ul>
258 </li>
259 </ul> <!-- toc_section -->
260 </li>
261 <li>
262 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
263 <ul class="toc_section">
264 <li>
265 <span class="toc_kind_header">controls</span>
266 <ul class="toc_section">
267 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
268 </ul>
269 </li>
270 <li>
271 <span class="toc_kind_header">static</span>
272 <ul class="toc_section">
273
274 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>
275
276 </ul>
277 </li>
278 <li>
279 <span class="toc_kind_header">dynamic</span>
280 <ul class="toc_section">
281 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
282 </ul>
283 </li>
284 </ul> <!-- toc_section -->
285 </li>
286 <li>
287 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
288 <ul class="toc_section">
289 <li>
290 <span class="toc_kind_header">controls</span>
291 <ul class="toc_section">
292 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
293 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
294 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
295 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
296 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
297 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
298 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
299 </ul>
300 </li>
301 <li>
302 <span class="toc_kind_header">static</span>
303 <ul class="toc_section">
304 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
305 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
306 </ul>
307 </li>
308 <li>
309 <span class="toc_kind_header">dynamic</span>
310 <ul class="toc_section">
311 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
312 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
313 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
314 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
315 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
316 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
317 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
318 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
319 </ul>
320 </li>
321 </ul> <!-- toc_section -->
322 </li>
323 <li>
324 <span class="toc_section_header"><a href="#section_lens">lens</a></span>
325 <ul class="toc_section">
326 <li>
327 <span class="toc_kind_header">controls</span>
328 <ul class="toc_section">
329 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
330 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
331 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
332 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
333 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
334 </ul>
335 </li>
336 <li>
337 <span class="toc_kind_header">static</span>
338 <ul class="toc_section">
339
340 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
341 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
342 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
343 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
344 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
345 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
346 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
347 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700348 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
349
350 <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
351 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
352 <li><a href="#static_android.lens.position">android.lens.position</a></li>
353 </ul>
354 </li>
355 <li>
356 <span class="toc_kind_header">dynamic</span>
357 <ul class="toc_section">
358 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
359 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
360 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
361 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
362 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
363 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
364 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
365 </ul>
366 </li>
367 </ul> <!-- toc_section -->
368 </li>
369 <li>
370 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
371 <ul class="toc_section">
372 <li>
373 <span class="toc_kind_header">controls</span>
374 <ul class="toc_section">
375 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
376 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
377 </ul>
378 </li>
379 <li>
380 <span class="toc_kind_header">dynamic</span>
381 <ul class="toc_section">
382 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
383 </ul>
384 </li>
385 </ul> <!-- toc_section -->
386 </li>
387 <li>
388 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
389 <ul class="toc_section">
390 <li>
391 <span class="toc_kind_header">static</span>
392 <ul class="toc_section">
393 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
394 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
395 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700396 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
397 </ul>
398 </li>
399 <li>
400 <span class="toc_kind_header">dynamic</span>
401 <ul class="toc_section">
402 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700403 </ul>
404 </li>
405 </ul> <!-- toc_section -->
406 </li>
407 <li>
408 <span class="toc_section_header"><a href="#section_request">request</a></span>
409 <ul class="toc_section">
410 <li>
411 <span class="toc_kind_header">controls</span>
412 <ul class="toc_section">
413 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
414 <li><a href="#controls_android.request.id">android.request.id</a></li>
415 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
416 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
417 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
418 <li><a href="#controls_android.request.type">android.request.type</a></li>
419 </ul>
420 </li>
421 <li>
422 <span class="toc_kind_header">static</span>
423 <ul class="toc_section">
424 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
425 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800426 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800427 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700428 </ul>
429 </li>
430 <li>
431 <span class="toc_kind_header">dynamic</span>
432 <ul class="toc_section">
433 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
434 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
435 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
436 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800437 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700438 </ul>
439 </li>
440 </ul> <!-- toc_section -->
441 </li>
442 <li>
443 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
444 <ul class="toc_section">
445 <li>
446 <span class="toc_kind_header">controls</span>
447 <ul class="toc_section">
448 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
449 </ul>
450 </li>
451 <li>
452 <span class="toc_kind_header">static</span>
453 <ul class="toc_section">
454 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
455 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
456 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
457 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
458 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
459 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
460 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
461 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
462 </ul>
463 </li>
464 <li>
465 <span class="toc_kind_header">dynamic</span>
466 <ul class="toc_section">
467 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
468 </ul>
469 </li>
470 </ul> <!-- toc_section -->
471 </li>
472 <li>
473 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
474 <ul class="toc_section">
475 <li>
476 <span class="toc_kind_header">controls</span>
477 <ul class="toc_section">
478 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
479 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
480 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800481 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
482 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700483 </ul>
484 </li>
485 <li>
486 <span class="toc_kind_header">static</span>
487 <ul class="toc_section">
488
489 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700490 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700491 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
492 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
493 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
494 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
495 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
496 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
497
498 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
499 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
500 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
501 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
502 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
503 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
504 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
505 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
506 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
507 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
508 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
509 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
510 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800511 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700512 </ul>
513 </li>
514 <li>
515 <span class="toc_kind_header">dynamic</span>
516 <ul class="toc_section">
517 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
518 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
519 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
520 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700521 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800522 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700523 </ul>
524 </li>
525 </ul> <!-- toc_section -->
526 </li>
527 <li>
528 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
529 <ul class="toc_section">
530 <li>
531 <span class="toc_kind_header">controls</span>
532 <ul class="toc_section">
533 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
534 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
535 </ul>
536 </li>
537 <li>
538 <span class="toc_kind_header">dynamic</span>
539 <ul class="toc_section">
540 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
541 </ul>
542 </li>
543 </ul> <!-- toc_section -->
544 </li>
545 <li>
546 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
547 <ul class="toc_section">
548 <li>
549 <span class="toc_kind_header">controls</span>
550 <ul class="toc_section">
551 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
552 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
553 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700554 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700555 </ul>
556 </li>
557 <li>
558 <span class="toc_kind_header">static</span>
559 <ul class="toc_section">
560
561 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
562 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
563 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
564 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
565 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
566 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
567
568 </ul>
569 </li>
570 <li>
571 <span class="toc_kind_header">dynamic</span>
572 <ul class="toc_section">
573 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
574 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
575 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
576 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
577 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
578 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
579 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
580 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
581 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700582 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
583 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
584 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
585 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700586 </ul>
587 </li>
588 </ul> <!-- toc_section -->
589 </li>
590 <li>
591 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
592 <ul class="toc_section">
593 <li>
594 <span class="toc_kind_header">controls</span>
595 <ul class="toc_section">
596 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
597 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
598 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
599 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
600 </ul>
601 </li>
602 <li>
603 <span class="toc_kind_header">static</span>
604 <ul class="toc_section">
605 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
606 </ul>
607 </li>
608 <li>
609 <span class="toc_kind_header">dynamic</span>
610 <ul class="toc_section">
611 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
612 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
613 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
614 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
615 </ul>
616 </li>
617 </ul> <!-- toc_section -->
618 </li>
619 <li>
620 <span class="toc_section_header"><a href="#section_led">led</a></span>
621 <ul class="toc_section">
622 <li>
623 <span class="toc_kind_header">controls</span>
624 <ul class="toc_section">
625 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
626 </ul>
627 </li>
628 <li>
629 <span class="toc_kind_header">dynamic</span>
630 <ul class="toc_section">
631 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
632 </ul>
633 </li>
634 <li>
635 <span class="toc_kind_header">static</span>
636 <ul class="toc_section">
637 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
638 </ul>
639 </li>
640 </ul> <!-- toc_section -->
641 </li>
642 <li>
643 <span class="toc_section_header"><a href="#section_info">info</a></span>
644 <ul class="toc_section">
645 <li>
646 <span class="toc_kind_header">static</span>
647 <ul class="toc_section">
648 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
649 </ul>
650 </li>
651 </ul> <!-- toc_section -->
652 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700653 <li>
654 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
655 <ul class="toc_section">
656 <li>
657 <span class="toc_kind_header">controls</span>
658 <ul class="toc_section">
659 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
660 </ul>
661 </li>
662 <li>
663 <span class="toc_kind_header">dynamic</span>
664 <ul class="toc_section">
665 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
666 </ul>
667 </li>
668 </ul> <!-- toc_section -->
669 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800670 <li>
671 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
672 <ul class="toc_section">
673 <li>
674 <span class="toc_kind_header">dynamic</span>
675 <ul class="toc_section">
676 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
677 </ul>
678 </li>
679 <li>
680 <span class="toc_kind_header">static</span>
681 <ul class="toc_section">
682 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
683 </ul>
684 </li>
685 </ul> <!-- toc_section -->
686 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800687 </ul>
688
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700689
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800690 <h1>Properties</h1>
691 <table class="properties">
692
693 <thead class="thead_dummy">
694 <tr>
695 <th class="th_name">Property Name</th>
696 <th class="th_type">Type</th>
697 <th class="th_description">Description</th>
698 <th class="th_units">Units</th>
699 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800700 <th class="th_tags">Tags</th>
701 </tr>
702 </thead> <!-- so that the first occurrence of thead is not
703 above the first occurrence of tr -->
704<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800705 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800706
707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800708 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800709
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700710 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800711 <tr>
712 <th class="th_name">Property Name</th>
713 <th class="th_type">Type</th>
714 <th class="th_description">Description</th>
715 <th class="th_units">Units</th>
716 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800717 <th class="th_tags">Tags</th>
718 </tr>
719 </thead>
720
721 <tbody>
722
723
724
725
726
727
728
729
730
731
732 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800733 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800734 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800737 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700739 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800740
741 <ul class="entry_type_enum">
742 <li>
743 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800744 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
Igor Murashkin43817ad2014-01-10 15:58:35 -0800745and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
746<p>All advanced white balance adjustments (not specified
747by our white balance pipeline) must be disabled.<wbr/></p>
748<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
749TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
750this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800751 </li>
752 <li>
753 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800754 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
755output.<wbr/></p>
756<p>Advanced white balance adjustments above and beyond
757the specified white balance pipeline may be applied.<wbr/></p>
758<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
759the camera device uses the last frame's AWB values
760(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800761 </li>
762 <li>
763 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800764 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
765may be reduced by high quality.<wbr/></p>
766<p>Advanced white balance adjustments above and beyond
767the specified white balance pipeline may be applied.<wbr/></p>
768<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
769the camera device uses the last frame's AWB values
770(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800771 </li>
772 </ul>
773
774 </td> <!-- entry_type -->
775
776 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800777 <p>The mode control selects how the image data is converted from the
778sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800779 </td>
780
781 <td class="entry_units">
782 </td>
783
784 <td class="entry_range">
785 </td>
786
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800787 <td class="entry_tags">
788 </td>
789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800790 </tr>
791 <tr class="entries_header">
792 <th class="th_details" colspan="5">Details</th>
793 </tr>
794 <tr class="entry_cont">
795 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800796 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
797control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
798application controls how the color mapping is performed.<wbr/></p>
799<p>We define the expected processing pipeline below.<wbr/> For consistency
800across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
801<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
802do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
803<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
804camera device (in the results) and be roughly correct.<wbr/></p>
805<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
806FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
807as what was produced by the camera device in the earlier frame.<wbr/></p>
808<p>The expected processing pipeline is as follows:</p>
809<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
810<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
811gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
812matrix (applied after demosaic).<wbr/></p>
813<p>The 4-channel white-balance gains are defined as:</p>
814<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
815</code></pre>
816<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
817output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
818These may be identical for a given camera device implementation; if
819the camera device does not support a separate gain for even/<wbr/>odd green
820channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
821<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
822<p>The matrices for color transforms are defined as a 9-entry vector:</p>
823<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
824</code></pre>
825<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
826to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
827<p>with colors as follows:</p>
828<pre><code>r' = I0r + I1g + I2b
829g' = I3r + I4g + I5b
830b' = I6r + I7g + I8b
831</code></pre>
832<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
833values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800834 </td>
835 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800836
837
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800838 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
839 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800840
841
842 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800843 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800844 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800845 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800846 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700847 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800848 <span class="entry_type_container">x</span>
849
850 <span class="entry_type_array">
851 3 x 3
852 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700853 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800854 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800855
856
857 </td> <!-- entry_type -->
858
859 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800860 <p>A color transform matrix to use to transform
861from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800862 </td>
863
864 <td class="entry_units">
865 </td>
866
867 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800868 <p>Output values are expected to be in the range
869(0,<wbr/>1)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800870 </td>
871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800872 <td class="entry_tags">
873 </td>
874
875 </tr>
876 <tr class="entries_header">
877 <th class="th_details" colspan="5">Details</th>
878 </tr>
879 <tr class="entry_cont">
880 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800881 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800882<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800883directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800884<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -0800885<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800886for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -0800887reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700888 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800890
891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
893 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700894
895
896 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800897 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800898 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800899 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700900 <td class="entry_type">
901 <span class="entry_type_name">float</span>
902 <span class="entry_type_container">x</span>
903
904 <span class="entry_type_array">
905 4
906 </span>
907 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800908 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700909
910
911 </td> <!-- entry_type -->
912
913 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800914 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800915white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700916 </td>
917
918 <td class="entry_units">
919 </td>
920
921 <td class="entry_range">
922 </td>
923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800924 <td class="entry_tags">
925 </td>
926
927 </tr>
928 <tr class="entries_header">
929 <th class="th_details" colspan="5">Details</th>
930 </tr>
931 <tr class="entry_cont">
932 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800933 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800934the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
935for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
936is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800937does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800938it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
939<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800940<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800941<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800942directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800943<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800944<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800945the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800946 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800948
949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800952
953
954
955 <!-- end of kind -->
956 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800957 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700959 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800960 <tr>
961 <th class="th_name">Property Name</th>
962 <th class="th_type">Type</th>
963 <th class="th_description">Description</th>
964 <th class="th_units">Units</th>
965 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800966 <th class="th_tags">Tags</th>
967 </tr>
968 </thead>
969
970 <tbody>
971
972
973
974
975
976
977
978
979
980
Zhijun He69fc0ea2013-07-17 09:42:58 -0700981 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800983 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800985 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700986 <span class="entry_type_name">rational</span>
987 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800988
Zhijun He69fc0ea2013-07-17 09:42:58 -0700989 <span class="entry_type_array">
990 3 x 3
991 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700992 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800993 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800994
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800995
996 </td> <!-- entry_type -->
997
998 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800999 <p>A color transform matrix to use to transform
1000from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001001 </td>
1002
1003 <td class="entry_units">
1004 </td>
1005
1006 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001007 <p>Output values are expected to be in the range
1008(0,<wbr/>1)</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001009 </td>
1010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001011 <td class="entry_tags">
1012 </td>
1013
1014 </tr>
1015 <tr class="entries_header">
1016 <th class="th_details" colspan="5">Details</th>
1017 </tr>
1018 <tr class="entry_cont">
1019 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001020 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001021<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001022directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001023<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08001024<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001025for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -08001026reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001027 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001029
1030
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001031 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1032 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001033
1034
1035 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001036 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001037 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001038 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001039 <td class="entry_type">
1040 <span class="entry_type_name">float</span>
1041 <span class="entry_type_container">x</span>
1042
1043 <span class="entry_type_array">
1044 4
1045 </span>
1046 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001047 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001048
1049
1050 </td> <!-- entry_type -->
1051
1052 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001053 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001054white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001055 </td>
1056
1057 <td class="entry_units">
1058 </td>
1059
1060 <td class="entry_range">
1061 </td>
1062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001063 <td class="entry_tags">
1064 </td>
1065
1066 </tr>
1067 <tr class="entries_header">
1068 <th class="th_details" colspan="5">Details</th>
1069 </tr>
1070 <tr class="entry_cont">
1071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001072 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001073the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1074for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1075is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001076does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001077it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1078<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001079<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001080<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001081directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001082<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001083<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001084the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001085 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001086 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001087
1088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001089 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1090 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001091
1092
1093
1094 <!-- end of kind -->
1095 </tbody>
1096
1097 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001098 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001099
1100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001101 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001103 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001104 <tr>
1105 <th class="th_name">Property Name</th>
1106 <th class="th_type">Type</th>
1107 <th class="th_description">Description</th>
1108 <th class="th_units">Units</th>
1109 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001110 <th class="th_tags">Tags</th>
1111 </tr>
1112 </thead>
1113
1114 <tbody>
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001126 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001127 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001130 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001133
1134 <ul class="entry_type_enum">
1135 <li>
1136 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001137 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1138avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001139 </li>
1140 <li>
1141 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001142 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1143avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001144 </li>
1145 <li>
1146 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001147 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1148avoid banding problems with 60Hz illumination
1149sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001150 </li>
1151 <li>
1152 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001153 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1154antibanding routine to the current illumination
1155conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001156 </li>
1157 </ul>
1158
1159 </td> <!-- entry_type -->
1160
1161 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001162 <p>The desired setting for the camera device's auto-exposure
1163algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001164 </td>
1165
1166 <td class="entry_units">
1167 </td>
1168
1169 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001170 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001171 </td>
1172
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001173 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001174 <ul class="entry_tags">
1175 <li><a href="#tag_BC">BC</a></li>
1176 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001177 </td>
1178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001179 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001180 <tr class="entries_header">
1181 <th class="th_details" colspan="5">Details</th>
1182 </tr>
1183 <tr class="entry_cont">
1184 <td class="entry_details" colspan="5">
1185 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1186lights,<wbr/> flicker at the rate of the power supply frequency
1187(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1188typically not noticeable to a person,<wbr/> it can be visible to
1189a camera device.<wbr/> If a camera sets its exposure time to the
1190wrong value,<wbr/> the flicker may become visible in the
1191viewfinder as flicker or in a final captured image,<wbr/> as a
1192set of variable-brightness bands across the image.<wbr/></p>
1193<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1194include antibanding routines that ensure that the chosen
1195exposure value will not cause such banding.<wbr/> The choice of
1196exposure time depends on the rate of flicker,<wbr/> which the
1197camera device can detect automatically,<wbr/> or the expected
1198rate can be selected by the application using this
1199control.<wbr/></p>
1200<p>A given camera device may not support all of the possible
1201options for the antibanding mode.<wbr/> The
1202<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1203the available modes for a given camera device.<wbr/></p>
1204<p>The default mode is AUTO,<wbr/> which must be supported by all
1205camera devices.<wbr/></p>
1206<p>If manual exposure control is enabled (by setting
1207<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1208then this setting has no effect,<wbr/> and the application must
1209ensure it selects exposure times that do not cause banding
1210issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1211the application in this.<wbr/></p>
1212 </td>
1213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001214
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001215 <tr class="entries_header">
1216 <th class="th_details" colspan="5">HAL Implementation Details</th>
1217 </tr>
1218 <tr class="entry_cont">
1219 <td class="entry_details" colspan="5">
1220 <p>For all capture request templates,<wbr/> this field must be set
1221to AUTO.<wbr/> AUTO is the only mode that must supported;
1222OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1223<p>If manual exposure control is enabled (by setting
1224<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1225then the exposure values provided by the application must not be
1226adjusted for antibanding.<wbr/></p>
1227 </td>
1228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001232
1233
1234 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001235 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001236 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001237 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001238 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001239 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001240
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001241 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001242
1243
1244 </td> <!-- entry_type -->
1245
1246 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001247 <p>Adjustment to AE target image
1248brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001249 </td>
1250
1251 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001252 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001253 </td>
1254
1255 <td class="entry_range">
1256 </td>
1257
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001258 <td class="entry_tags">
1259 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001260 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001261 </ul>
1262 </td>
1263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001264 </tr>
1265 <tr class="entries_header">
1266 <th class="th_details" colspan="5">Details</th>
1267 </tr>
1268 <tr class="entry_cont">
1269 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001270 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001271exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001272compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001273 </td>
1274 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001275
1276
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001277 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1278 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001279
1280
1281 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001282 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001283 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001284 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001285 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001286 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001287
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001288 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001289
1290 <ul class="entry_type_enum">
1291 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001292 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001293 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1294is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001295 </li>
1296 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001297 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001298 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1299must not update the exposure and sensitivity parameters
1300while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001301 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001302 </ul>
1303
1304 </td> <!-- entry_type -->
1305
1306 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001307 <p>Whether AE is currently locked to its latest
1308calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001309 </td>
1310
1311 <td class="entry_units">
1312 </td>
1313
1314 <td class="entry_range">
1315 </td>
1316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001317 <td class="entry_tags">
1318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001319 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001320 </ul>
1321 </td>
1322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001323 </tr>
1324 <tr class="entries_header">
1325 <th class="th_details" colspan="5">Details</th>
1326 </tr>
1327 <tr class="entry_cont">
1328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001329 <p>Note that even when AE is locked,<wbr/> the flash may be
1330fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1331ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001332 </td>
1333 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001334
1335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001338
1339
1340 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001341 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001342 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001343 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001344 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001345 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001346
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001347 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001348
1349 <ul class="entry_type_enum">
1350 <li>
1351 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001352 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1353the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1354<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1355<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1356device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1357a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001358 </li>
1359 <li>
1360 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001361 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1362with no flash control.<wbr/> The application's values for
1363<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1364<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1365<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1366application has control over the various
1367android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001368 </li>
1369 <li>
1370 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001371 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1372the camera's flash unit,<wbr/> firing it in low-light
1373conditions.<wbr/> The flash may be fired during a
1374precapture sequence (triggered by
1375<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1376for captures for which the
1377<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1378STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001379 </li>
1380 <li>
1381 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001382 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1383the camera's flash unit,<wbr/> always firing it for still
1384captures.<wbr/> The flash may be fired during a precapture
1385sequence (triggered by
1386<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1387be fired for captures for which the
1388<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1389STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001390 </li>
1391 <li>
1392 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001393 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1394reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1395a red eye reduction flash will fire during the
1396precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001397 </li>
1398 </ul>
1399
1400 </td> <!-- entry_type -->
1401
1402 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001403 <p>The desired mode for the camera device's
1404auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001405 </td>
1406
1407 <td class="entry_units">
1408 </td>
1409
1410 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001411 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001412 </td>
1413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001414 <td class="entry_tags">
1415 <ul class="entry_tags">
1416 <li><a href="#tag_BC">BC</a></li>
1417 </ul>
1418 </td>
1419
1420 </tr>
1421 <tr class="entries_header">
1422 <th class="th_details" colspan="5">Details</th>
1423 </tr>
1424 <tr class="entry_cont">
1425 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001426 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1427AUTO.<wbr/></p>
1428<p>When set to any of the ON modes,<wbr/> the camera device's
1429auto-exposure routine is enabled,<wbr/> overriding the
1430application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1431and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1432<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1433<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1434is selected,<wbr/> the camera device's flash unit controls are
1435also overridden.<wbr/></p>
1436<p>The FLASH modes are only available if the camera device
1437has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1438<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1439ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1440<p>When set to any of the ON modes,<wbr/> the values chosen by the
1441camera device auto-exposure routine for the overridden
1442fields for a given capture will be available in its
1443CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001444 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001446
1447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001450
1451
1452 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001454 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001458 <span class="entry_type_container">x</span>
1459
1460 <span class="entry_type_array">
1461 5 x area_count
1462 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001463 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001464
1465
1466 </td> <!-- entry_type -->
1467
1468 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001469 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001470metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001471 </td>
1472
1473 <td class="entry_units">
1474 </td>
1475
1476 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001477 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001478 </td>
1479
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001480 <td class="entry_tags">
1481 <ul class="entry_tags">
1482 <li><a href="#tag_BC">BC</a></li>
1483 </ul>
1484 </td>
1485
1486 </tr>
1487 <tr class="entries_header">
1488 <th class="th_details" colspan="5">Details</th>
1489 </tr>
1490 <tr class="entry_cont">
1491 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001492 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001493xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001494specified coordinates.<wbr/></p>
1495<p>The coordinate system is based on the active pixel array,<wbr/>
1496with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001497(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1498<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001499bottom-right pixel in the active pixel array.<wbr/> The weight
1500should be nonnegative.<wbr/></p>
1501<p>If all regions have 0 weight,<wbr/> then no specific metering area
1502needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001503outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001504should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001505used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001506 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001507 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001508
1509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001510 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1511 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001512
1513
1514 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001515 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001516 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001517 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001518 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001519 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001520 <span class="entry_type_container">x</span>
1521
1522 <span class="entry_type_array">
1523 2
1524 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001525 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001526
1527
1528 </td> <!-- entry_type -->
1529
1530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001531 <p>Range over which fps can be adjusted to
1532maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001533 </td>
1534
1535 <td class="entry_units">
1536 </td>
1537
1538 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001539 <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001540 </td>
1541
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001542 <td class="entry_tags">
1543 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001544 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001545 </ul>
1546 </td>
1547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001548 </tr>
1549 <tr class="entries_header">
1550 <th class="th_details" colspan="5">Details</th>
1551 </tr>
1552 <tr class="entry_cont">
1553 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001554 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001555of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001556 </td>
1557 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001558
1559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001560 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1561 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001562
1563
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001564 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001565 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001566 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001567 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001568 <td class="entry_type">
1569 <span class="entry_type_name entry_type_name_enum">byte</span>
1570
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001571 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001572
1573 <ul class="entry_type_enum">
1574 <li>
1575 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001576 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001577 </li>
1578 <li>
1579 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001580 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1581by the camera device.<wbr/> The exact effect of the precapture
1582trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001583 </li>
1584 </ul>
1585
1586 </td> <!-- entry_type -->
1587
1588 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001589 <p>Whether the camera device will trigger a precapture
1590metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001591 </td>
1592
1593 <td class="entry_units">
1594 </td>
1595
1596 <td class="entry_range">
1597 </td>
1598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001599 <td class="entry_tags">
1600 <ul class="entry_tags">
1601 <li><a href="#tag_BC">BC</a></li>
1602 </ul>
1603 </td>
1604
1605 </tr>
1606 <tr class="entries_header">
1607 <th class="th_details" colspan="5">Details</th>
1608 </tr>
1609 <tr class="entry_cont">
1610 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001611 <p>This entry is normally set to IDLE,<wbr/> or is not
1612included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001613set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001614precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001615<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001616AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1617state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001618 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001619 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001620
1621
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001622 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1623 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001624
1625
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001626 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001627 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001628 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001629 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001630 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001631 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001632
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001633 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001634
1635 <ul class="entry_type_enum">
1636 <li>
1637 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001638 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1639<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1640application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001641 </li>
1642 <li>
1643 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001644 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1645<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
1646is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1647the autofocus trigger action is called.<wbr/> When that trigger
1648is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1649the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1650<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1651and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001652 </li>
1653 <li>
1654 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001655 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1656autofocus trigger action is called.<wbr/></p>
1657<p>When that trigger is activated,<wbr/> AF must transition to
1658ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1659NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1660position to default,<wbr/> and sets the AF state to
1661INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001662 </li>
1663 <li>
1664 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001665 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1666position continually to attempt to provide a
1667constantly-in-focus image stream.<wbr/></p>
1668<p>The focusing behavior should be suitable for good quality
1669video recording; typically this means slower focus
1670movement and no overshoots.<wbr/> When the AF trigger is not
1671involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1672and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1673states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1674the algorithm should immediately transition into
1675AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1676lens position until a cancel AF trigger is received.<wbr/></p>
1677<p>Once cancel is received,<wbr/> the algorithm should transition
1678back to INACTIVE and resume passive scan.<wbr/> Note that this
1679behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1680ongoing PASSIVE_<wbr/>SCAN must immediately be
1681canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001682 </li>
1683 <li>
1684 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001685 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1686position continually to attempt to provide a
1687constantly-in-focus image stream.<wbr/></p>
1688<p>The focusing behavior should be suitable for still image
1689capture; typically this means focusing as fast as
1690possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1691algorithm should start in INACTIVE state,<wbr/> and then
1692transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1693appropriate as it attempts to maintain focus.<wbr/> When the AF
1694trigger is activated,<wbr/> the algorithm should finish its
1695PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1696AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1697lens position until a cancel AF trigger is received.<wbr/></p>
1698<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1699should transition back to INACTIVE and then act as if it
1700has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001701 </li>
1702 <li>
1703 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001704 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1705trigger is ignored,<wbr/> AF state should always be
1706INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001707 </li>
1708 </ul>
1709
1710 </td> <!-- entry_type -->
1711
1712 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001713 <p>Whether AF is currently enabled,<wbr/> and what
1714mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001715 </td>
1716
1717 <td class="entry_units">
1718 </td>
1719
1720 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001721 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001722 </td>
1723
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001724 <td class="entry_tags">
1725 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001726 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001727 </ul>
1728 </td>
1729
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001730 </tr>
1731 <tr class="entries_header">
1732 <th class="th_details" colspan="5">Details</th>
1733 </tr>
1734 <tr class="entry_cont">
1735 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001736 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08001737<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1738the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1739in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001740 </td>
1741 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001742
1743
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001744 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1745 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001746
1747
1748 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001749 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001750 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001751 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001752 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001753 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001754 <span class="entry_type_container">x</span>
1755
1756 <span class="entry_type_array">
1757 5 x area_count
1758 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001759 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001760
1761
1762 </td> <!-- entry_type -->
1763
1764 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001765 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001766estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001767 </td>
1768
1769 <td class="entry_units">
1770 </td>
1771
1772 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001773 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001774 </td>
1775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001776 <td class="entry_tags">
1777 <ul class="entry_tags">
1778 <li><a href="#tag_BC">BC</a></li>
1779 </ul>
1780 </td>
1781
1782 </tr>
1783 <tr class="entries_header">
1784 <th class="th_details" colspan="5">Details</th>
1785 </tr>
1786 <tr class="entry_cont">
1787 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001788 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001789xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001790specified coordinates.<wbr/></p>
1791<p>The coordinate system is based on the active pixel array,<wbr/>
1792with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001793(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1794<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001795bottom-right pixel in the active pixel array.<wbr/> The weight
1796should be nonnegative.<wbr/></p>
1797<p>If all regions have 0 weight,<wbr/> then no specific focus area
1798needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001799outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001800should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001801used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001802 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001803 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001804
1805
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001806 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1807 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001808
1809
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001810 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001811 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001812 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001813 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001814 <td class="entry_type">
1815 <span class="entry_type_name entry_type_name_enum">byte</span>
1816
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001817 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001818
1819 <ul class="entry_type_enum">
1820 <li>
1821 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001822 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001823 </li>
1824 <li>
1825 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001826 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001827 </li>
1828 <li>
1829 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001830 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1831state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001832 </li>
1833 </ul>
1834
1835 </td> <!-- entry_type -->
1836
1837 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001838 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001839 </td>
1840
1841 <td class="entry_units">
1842 </td>
1843
1844 <td class="entry_range">
1845 </td>
1846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001847 <td class="entry_tags">
1848 <ul class="entry_tags">
1849 <li><a href="#tag_BC">BC</a></li>
1850 </ul>
1851 </td>
1852
1853 </tr>
1854 <tr class="entries_header">
1855 <th class="th_details" colspan="5">Details</th>
1856 </tr>
1857 <tr class="entry_cont">
1858 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001859 <p>This entry is normally set to IDLE,<wbr/> or is not
1860included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001861<p>When included and set to START,<wbr/> the camera device will trigger the
1862autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1863<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1864and return to its initial AF state.<wbr/></p>
1865<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what that means for each AF mode.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001866 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001867 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001868
1869
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1871 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001872
1873
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001874 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001875 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001876 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001877 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001878 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001879 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001880
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001881 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001882
1883 <ul class="entry_type_enum">
1884 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001885 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001886 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1887algorithm is free to update its parameters if in AUTO
1888mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001889 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001890 <li>
1891 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001892 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1893algorithm must not update the exposure and sensitivity
1894parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001895 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001896 </ul>
1897
1898 </td> <!-- entry_type -->
1899
1900 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001901 <p>Whether AWB is currently locked to its
1902latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001903 </td>
1904
1905 <td class="entry_units">
1906 </td>
1907
1908 <td class="entry_range">
1909 </td>
1910
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001911 <td class="entry_tags">
1912 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001913 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001914 </ul>
1915 </td>
1916
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001917 </tr>
1918 <tr class="entries_header">
1919 <th class="th_details" colspan="5">Details</th>
1920 </tr>
1921 <tr class="entry_cont">
1922 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001923 <p>Note that AWB lock is only meaningful for AUTO
1924mode; in other modes,<wbr/> AWB is already fixed to a specific
1925setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001926 </td>
1927 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001928
1929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001930 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1931 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001932
1933
1934 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001935 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001936 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001937 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001938 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001939 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001940
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001941 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001942
1943 <ul class="entry_type_enum">
1944 <li>
1945 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001946 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1947the application-selected color transform matrix
1948(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1949(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1950device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001951 </li>
1952 <li>
1953 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001954 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1955the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1956and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001957 </li>
1958 <li>
1959 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001960 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1961the camera device uses incandescent light as the assumed scene
1962illumination for white balance.<wbr/> While the exact white balance
1963transforms are up to the camera device,<wbr/> they will approximately
1964match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001965 </li>
1966 <li>
1967 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001968 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1969the camera device uses fluorescent light as the assumed scene
1970illumination for white balance.<wbr/> While the exact white balance
1971transforms are up to the camera device,<wbr/> they will approximately
1972match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001973 </li>
1974 <li>
1975 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001976 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1977the camera device uses warm fluorescent light as the assumed scene
1978illumination for white balance.<wbr/> While the exact white balance
1979transforms are up to the camera device,<wbr/> they will approximately
1980match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001981 </li>
1982 <li>
1983 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001984 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1985the camera device uses daylight light as the assumed scene
1986illumination for white balance.<wbr/> While the exact white balance
1987transforms are up to the camera device,<wbr/> they will approximately
1988match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001989 </li>
1990 <li>
1991 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001992 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1993the camera device uses cloudy daylight light as the assumed scene
1994illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001995 </li>
1996 <li>
1997 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001998 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1999the camera device uses twilight light as the assumed scene
2000illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002001 </li>
2002 <li>
2003 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002004 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2005the camera device uses shade light as the assumed scene
2006illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002007 </li>
2008 </ul>
2009
2010 </td> <!-- entry_type -->
2011
2012 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002013 <p>Whether AWB is currently setting the color
2014transform fields,<wbr/> and what its illumination target
2015is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002016 </td>
2017
2018 <td class="entry_units">
2019 </td>
2020
2021 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002022 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002023 </td>
2024
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002025 <td class="entry_tags">
2026 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002027 <li><a href="#tag_BC">BC</a></li>
2028 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002029 </ul>
2030 </td>
2031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002032 </tr>
2033 <tr class="entries_header">
2034 <th class="th_details" colspan="5">Details</th>
2035 </tr>
2036 <tr class="entry_cont">
2037 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002038 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2039<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2040routine is enabled,<wbr/> overriding the application's selected
2041<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
2042<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2043<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2044routine is disabled.<wbr/> The applicantion manually controls the white
2045balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2046and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2047<p>When set to any other modes,<wbr/> the camera device's auto white balance
2048routine is disabled.<wbr/> The camera device uses each particular illumination
2049target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002050 </td>
2051 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002052
2053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002054 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2055 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002056
2057
2058 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002059 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002060 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002061 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002062 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002063 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002064 <span class="entry_type_container">x</span>
2065
2066 <span class="entry_type_array">
2067 5 x area_count
2068 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002069 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002070
2071
2072 </td> <!-- entry_type -->
2073
2074 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002075 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002076estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002077 </td>
2078
2079 <td class="entry_units">
2080 </td>
2081
2082 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002083 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002084 </td>
2085
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002086 <td class="entry_tags">
2087 <ul class="entry_tags">
2088 <li><a href="#tag_BC">BC</a></li>
2089 </ul>
2090 </td>
2091
2092 </tr>
2093 <tr class="entries_header">
2094 <th class="th_details" colspan="5">Details</th>
2095 </tr>
2096 <tr class="entry_cont">
2097 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002098 <p>Only used in AUTO mode.<wbr/></p>
2099<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002100xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08002101specified coordinates.<wbr/></p>
2102<p>The coordinate system is based on the active pixel array,<wbr/>
2103with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002104(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2105<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08002106bottom-right pixel in the active pixel array.<wbr/> The weight
2107should be nonnegative.<wbr/></p>
2108<p>If all regions have 0 weight,<wbr/> then no specific metering area
2109needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002110outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08002111should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002112used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002113 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002114 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002115
2116
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002117 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2118 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002119
2120
2121 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002122 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002123 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002124 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002125 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002126 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002127
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002128 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002129
2130 <ul class="entry_type_enum">
2131 <li>
2132 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002133 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2134categories.<wbr/> Default to preview-like
2135behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002136 </li>
2137 <li>
2138 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002139 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2140precapture trigger may be used to start off a metering
2141w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002142 </li>
2143 <li>
2144 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002145 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2146usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002147 </li>
2148 <li>
2149 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002150 <span class="entry_type_enum_notes"><p>This request is for a video recording
2151usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002152 </li>
2153 <li>
2154 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002155 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2156image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002157 </li>
2158 <li>
2159 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002160 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2161application will stream full-resolution images and
2162reprocess one or several later for a final
2163capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002164 </li>
2165 </ul>
2166
2167 </td> <!-- entry_type -->
2168
2169 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002170 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2171auto-focus,<wbr/> auto-white balance) routines about the purpose
2172of this capture,<wbr/> to help the camera device to decide optimal 3A
2173strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002174 </td>
2175
2176 <td class="entry_units">
2177 </td>
2178
2179 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002180 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002181 </td>
2182
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002183 <td class="entry_tags">
2184 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002185 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002186 </ul>
2187 </td>
2188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002189 </tr>
2190 <tr class="entries_header">
2191 <th class="th_details" colspan="5">Details</th>
2192 </tr>
2193 <tr class="entry_cont">
2194 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002195 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2196and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002197 </td>
2198 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002199
2200
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002201 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2202 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002203
2204
2205 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002206 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002207 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002208 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002209 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002210 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002211
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002212 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002213
2214 <ul class="entry_type_enum">
2215 <li>
2216 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002217 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002218 </li>
2219 <li>
2220 <span class="entry_type_enum_name">MONO</span>
2221 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002222 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2223a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002224 </li>
2225 <li>
2226 <span class="entry_type_enum_name">NEGATIVE</span>
2227 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002228 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2229are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002230 </li>
2231 <li>
2232 <span class="entry_type_enum_name">SOLARIZE</span>
2233 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002234 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2235image is wholly or partially reversed in
2236tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002237 </li>
2238 <li>
2239 <span class="entry_type_enum_name">SEPIA</span>
2240 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002241 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2242gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002243 </li>
2244 <li>
2245 <span class="entry_type_enum_name">POSTERIZE</span>
2246 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002247 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2248discrete regions of tone rather than a continuous
2249gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002250 </li>
2251 <li>
2252 <span class="entry_type_enum_name">WHITEBOARD</span>
2253 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002254 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2255as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002256 </li>
2257 <li>
2258 <span class="entry_type_enum_name">BLACKBOARD</span>
2259 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002260 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2261as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002262 </li>
2263 <li>
2264 <span class="entry_type_enum_name">AQUA</span>
2265 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002266 <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002267 </li>
2268 </ul>
2269
2270 </td> <!-- entry_type -->
2271
2272 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002273 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002274 </td>
2275
2276 <td class="entry_units">
2277 </td>
2278
2279 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002280 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002281 </td>
2282
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002283 <td class="entry_tags">
2284 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002285 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002286 </ul>
2287 </td>
2288
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002289 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002290 <tr class="entries_header">
2291 <th class="th_details" colspan="5">Details</th>
2292 </tr>
2293 <tr class="entry_cont">
2294 <td class="entry_details" colspan="5">
2295 <p>When this mode is set,<wbr/> a color effect will be applied
2296to images produced by the camera device.<wbr/> The interpretation
2297and implementation of these color effects is left to the
2298implementor of the camera device,<wbr/> and should not be
2299depended on to be consistent (or present) across all
2300devices.<wbr/></p>
2301<p>A color effect will only be applied if
2302<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2303 </td>
2304 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002305
2306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002307 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2308 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002309
2310
2311 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002312 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002313 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002314 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002315 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002316 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002317
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002318 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002319
2320 <ul class="entry_type_enum">
2321 <li>
2322 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002323 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2324routines are disabled,<wbr/> no other settings in
2325android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002326 </li>
2327 <li>
2328 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002329 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2330Manual control of capture parameters is disabled.<wbr/> All
2331controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2332effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002333 </li>
2334 <li>
2335 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002336 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2337control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2338controls; the HAL must ignore those settings while
2339USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2340scene mode).<wbr/> Other control entries are still active.<wbr/>
2341This setting can only be used if availableSceneModes !=
2342UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002343 </li>
2344 </ul>
2345
2346 </td> <!-- entry_type -->
2347
2348 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002349 <p>Overall mode of 3A control
2350routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002351 </td>
2352
2353 <td class="entry_units">
2354 </td>
2355
2356 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002357 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002358 </td>
2359
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002360 <td class="entry_tags">
2361 <ul class="entry_tags">
2362 <li><a href="#tag_BC">BC</a></li>
2363 </ul>
2364 </td>
2365
2366 </tr>
2367 <tr class="entries_header">
2368 <th class="th_details" colspan="5">Details</th>
2369 </tr>
2370 <tr class="entry_cont">
2371 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002372 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002373by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002374capture parameters itself.<wbr/></p>
2375<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002376android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08002377<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002378android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002379one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002380as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002381<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002382 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002383 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002384
2385
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002386 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2387 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002388
2389
2390 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002391 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002392 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002393 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002394 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002395 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002396
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002397 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002398
2399 <ul class="entry_type_enum">
2400 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002401 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002402 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002403 <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002404 </li>
2405 <li>
2406 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002407 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2408detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2409auto-exposure routines.<wbr/> If face detection statistics are
2410disabled (i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
2411this should still operate correctly (but will not return
2412face detection statistics to the framework).<wbr/></p>
2413<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2414<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2415remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002416 </li>
2417 <li>
2418 <span class="entry_type_enum_name">ACTION</span>
2419 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002420 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2421Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002422 </li>
2423 <li>
2424 <span class="entry_type_enum_name">PORTRAIT</span>
2425 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002426 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002427 </li>
2428 <li>
2429 <span class="entry_type_enum_name">LANDSCAPE</span>
2430 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002431 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002432 </li>
2433 <li>
2434 <span class="entry_type_enum_name">NIGHT</span>
2435 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002436 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002437 </li>
2438 <li>
2439 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2440 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002441 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2442settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002443 </li>
2444 <li>
2445 <span class="entry_type_enum_name">THEATRE</span>
2446 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002447 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2448remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002449 </li>
2450 <li>
2451 <span class="entry_type_enum_name">BEACH</span>
2452 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002453 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002454 </li>
2455 <li>
2456 <span class="entry_type_enum_name">SNOW</span>
2457 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002458 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002459 </li>
2460 <li>
2461 <span class="entry_type_enum_name">SUNSET</span>
2462 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002463 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002464 </li>
2465 <li>
2466 <span class="entry_type_enum_name">STEADYPHOTO</span>
2467 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002468 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2469device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002470 </li>
2471 <li>
2472 <span class="entry_type_enum_name">FIREWORKS</span>
2473 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002474 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002475 </li>
2476 <li>
2477 <span class="entry_type_enum_name">SPORTS</span>
2478 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002479 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2480Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002481 </li>
2482 <li>
2483 <span class="entry_type_enum_name">PARTY</span>
2484 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002485 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2486people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002487 </li>
2488 <li>
2489 <span class="entry_type_enum_name">CANDLELIGHT</span>
2490 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002491 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2492is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002493 </li>
2494 <li>
2495 <span class="entry_type_enum_name">BARCODE</span>
2496 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002497 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2498for use by camera applications that wish to read the
2499barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002500 </li>
2501 </ul>
2502
2503 </td> <!-- entry_type -->
2504
2505 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002506 <p>A camera mode optimized for conditions typical in a particular
2507capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002508 </td>
2509
2510 <td class="entry_units">
2511 </td>
2512
2513 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002514 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002515 </td>
2516
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002517 <td class="entry_tags">
2518 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002519 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002520 </ul>
2521 </td>
2522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002523 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002524 <tr class="entries_header">
2525 <th class="th_details" colspan="5">Details</th>
2526 </tr>
2527 <tr class="entry_cont">
2528 <td class="entry_details" colspan="5">
2529 <p>This is the mode that that is active when
2530<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/>
2531these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2532<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> while in use.<wbr/></p>
2533<p>The interpretation and implementation of these scene modes is left
2534to the implementor of the camera device.<wbr/> Their behavior will not be
2535consistent across all devices,<wbr/> and any given device may only implement
2536a subset of these modes.<wbr/></p>
2537 </td>
2538 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002539
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002540 <tr class="entries_header">
2541 <th class="th_details" colspan="5">HAL Implementation Details</th>
2542 </tr>
2543 <tr class="entry_cont">
2544 <td class="entry_details" colspan="5">
2545 <p>HAL implementations that include scene modes are expected to provide
2546the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2547<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
2548<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2549 </td>
2550 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002552 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002554
2555
2556 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002557 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002558 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002561 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002562
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002563 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002564
2565 <ul class="entry_type_enum">
2566 <li>
2567 <span class="entry_type_enum_name">OFF</span>
2568 </li>
2569 <li>
2570 <span class="entry_type_enum_name">ON</span>
2571 </li>
2572 </ul>
2573
2574 </td> <!-- entry_type -->
2575
2576 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002577 <p>Whether video stabilization is
2578active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002579 </td>
2580
2581 <td class="entry_units">
2582 </td>
2583
2584 <td class="entry_range">
2585 </td>
2586
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002587 <td class="entry_tags">
2588 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002589 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002590 </ul>
2591 </td>
2592
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002593 </tr>
2594 <tr class="entries_header">
2595 <th class="th_details" colspan="5">Details</th>
2596 </tr>
2597 <tr class="entry_cont">
2598 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002599 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002600<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream
Igor Murashkin0b080452013-12-27 15:30:25 -08002601stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002602 </td>
2603 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002604
2605
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002606 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2607 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002608
2609
2610
2611 <!-- end of kind -->
2612 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002613 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002614
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002615 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002616 <tr>
2617 <th class="th_name">Property Name</th>
2618 <th class="th_type">Type</th>
2619 <th class="th_description">Description</th>
2620 <th class="th_units">Units</th>
2621 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002622 <th class="th_tags">Tags</th>
2623 </tr>
2624 </thead>
2625
2626 <tbody>
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002638 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002639 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002640 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002641 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002642 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002643 <span class="entry_type_container">x</span>
2644
2645 <span class="entry_type_array">
2646 n
2647 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002648 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002649 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002650
2651
2652 </td> <!-- entry_type -->
2653
2654 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002655 <p>The set of auto-exposure antibanding modes that are
2656supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002657 </td>
2658
2659 <td class="entry_units">
2660 </td>
2661
2662 <td class="entry_range">
2663 </td>
2664
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002665 <td class="entry_tags">
2666 </td>
2667
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002668 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002669 <tr class="entries_header">
2670 <th class="th_details" colspan="5">Details</th>
2671 </tr>
2672 <tr class="entry_cont">
2673 <td class="entry_details" colspan="5">
2674 <p>Not all of the auto-exposure anti-banding modes may be
2675supported by a given camera device.<wbr/> This field lists the
2676valid anti-banding modes that the application may request
2677for this camera device; they must include AUTO.<wbr/></p>
2678 </td>
2679 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002680
2681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002682 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2683 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002684
2685
2686 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002687 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002688 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002689 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002690 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002691 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002692 <span class="entry_type_container">x</span>
2693
2694 <span class="entry_type_array">
2695 n
2696 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002697 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002698 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002699
2700
2701 </td> <!-- entry_type -->
2702
2703 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002704 <p>The set of auto-exposure modes that are supported by this
2705camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002706 </td>
2707
2708 <td class="entry_units">
2709 </td>
2710
2711 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002712 </td>
2713
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002714 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002715 <ul class="entry_tags">
2716 <li><a href="#tag_BC">BC</a></li>
2717 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002718 </td>
2719
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002720 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002721 <tr class="entries_header">
2722 <th class="th_details" colspan="5">Details</th>
2723 </tr>
2724 <tr class="entry_cont">
2725 <td class="entry_details" colspan="5">
2726 <p>Not all the auto-exposure modes may be supported by a
2727given camera device,<wbr/> especially if no flash unit is
2728available.<wbr/> This entry lists the valid modes for
2729<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2730<p>All camera devices support ON,<wbr/> and all camera devices with
2731flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2732ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2733<p>Full-capability camera devices always support OFF mode,<wbr/>
2734which enables application control of camera exposure time,<wbr/>
2735sensitivity,<wbr/> and frame duration.<wbr/></p>
2736 </td>
2737 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002738
2739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002740 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2741 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002742
2743
2744 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002745 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002746 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002747 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002748 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002749 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002750 <span class="entry_type_container">x</span>
2751
2752 <span class="entry_type_array">
2753 2 x n
2754 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002755 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002756 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002757
2758
2759 </td> <!-- entry_type -->
2760
2761 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002762 <p>List of frame rate ranges supported by the
2763AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002764 </td>
2765
2766 <td class="entry_units">
2767 </td>
2768
2769 <td class="entry_range">
2770 </td>
2771
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002772 <td class="entry_tags">
2773 </td>
2774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002776
2777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002778 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002780
2781
2782 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002783 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002784 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002785 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002786 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002787 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002788 <span class="entry_type_container">x</span>
2789
2790 <span class="entry_type_array">
2791 2
2792 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002793 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002794
2795
2796 </td> <!-- entry_type -->
2797
2798 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002799 <p>Maximum and minimum exposure compensation
2800setting,<wbr/> in counts of
2801android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002802 </td>
2803
2804 <td class="entry_units">
2805 </td>
2806
2807 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002808 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2809size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002810 </td>
2811
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002812 <td class="entry_tags">
2813 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002814 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002815 </ul>
2816 </td>
2817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002818 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002819
2820
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002821 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2822 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002823
2824
2825 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002826 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002827 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002828 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002829 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002830 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002831
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002832 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002833
2834
2835 </td> <!-- entry_type -->
2836
2837 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002838 <p>Smallest step by which exposure compensation
2839can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002840 </td>
2841
2842 <td class="entry_units">
2843 </td>
2844
2845 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002846 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002847 </td>
2848
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002849 <td class="entry_tags">
2850 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002851 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002852 </ul>
2853 </td>
2854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002855 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002856
2857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002858 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2859 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002860
2861
2862 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002863 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002864 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002865 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002866 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002867 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002868 <span class="entry_type_container">x</span>
2869
2870 <span class="entry_type_array">
2871 n
2872 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002873 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002874 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002875
2876
2877 </td> <!-- entry_type -->
2878
2879 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002880 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002881selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002882 </td>
2883
2884 <td class="entry_units">
2885 </td>
2886
2887 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002888 </td>
2889
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002890 <td class="entry_tags">
2891 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002892 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002893 </ul>
2894 </td>
2895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002896 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002897 <tr class="entries_header">
2898 <th class="th_details" colspan="5">Details</th>
2899 </tr>
2900 <tr class="entry_cont">
2901 <td class="entry_details" colspan="5">
2902 <p>Not all the auto-focus modes may be supported by a
2903given camera device.<wbr/> This entry lists the valid modes for
2904<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2905<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2906adjustable focuser units (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>)
2907will support AUTO mode.<wbr/></p>
2908 </td>
2909 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002910
2911
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002912 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2913 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002914
2915
2916 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002917 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002918 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002919 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002920 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002921 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002922 <span class="entry_type_container">x</span>
2923
2924 <span class="entry_type_array">
2925 n
2926 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002927 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002928 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002929
2930
2931 </td> <!-- entry_type -->
2932
2933 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002934 <p>List containing the subset of color effects
2935specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2936this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002937 </td>
2938
2939 <td class="entry_units">
2940 </td>
2941
2942 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002943 <p>Any subset of enums from those specified in
2944<a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a>.<wbr/> OFF must be included in any subset.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002945 </td>
2946
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002947 <td class="entry_tags">
2948 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002949 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002950 </ul>
2951 </td>
2952
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002953 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002954 <tr class="entries_header">
2955 <th class="th_details" colspan="5">Details</th>
2956 </tr>
2957 <tr class="entry_cont">
2958 <td class="entry_details" colspan="5">
2959 <p>This list contains the color effect modes that can be applied to
2960images produced by the camera device.<wbr/> Only modes that have
2961been fully implemented for the current device may be included here.<wbr/>
2962Implementations are not expected to be consistent across all devices.<wbr/>
2963If no color effect modes are available for a device,<wbr/> this should
2964simply be set to OFF.<wbr/></p>
2965<p>A color effect will only be applied if
2966<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2967 </td>
2968 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002969
2970
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002971 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2972 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002973
2974
2975 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002976 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002977 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002978 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002979 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002980 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002981 <span class="entry_type_container">x</span>
2982
2983 <span class="entry_type_array">
2984 n
2985 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002986 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002987 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002988
2989
2990 </td> <!-- entry_type -->
2991
2992 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002993 <p>List containing a subset of scene modes
2994specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002995 </td>
2996
2997 <td class="entry_units">
2998 </td>
2999
3000 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003001 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
3002not including DISABLED,<wbr/> or solely DISABLED if no
3003scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3004if face detection is supported (i.<wbr/>e.<wbr/><code><a href="#static_android.statistics.info.maxFaceCount">android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count</a> &gt; 0</code>).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003005 </td>
3006
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003007 <td class="entry_tags">
3008 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003009 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003010 </ul>
3011 </td>
3012
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003013 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003014 <tr class="entries_header">
3015 <th class="th_details" colspan="5">Details</th>
3016 </tr>
3017 <tr class="entry_cont">
3018 <td class="entry_details" colspan="5">
3019 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3020Only scene modes that have been fully implemented for the
3021camera device may be included here.<wbr/> Implementations are not expected
3022to be consistent across all devices.<wbr/> If no scene modes are supported
3023by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3024 </td>
3025 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003026
3027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003028 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3029 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003030
3031
3032 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003033 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003034 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003035 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003036 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003037 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003038 <span class="entry_type_container">x</span>
3039
3040 <span class="entry_type_array">
3041 n
3042 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003043 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003044 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003045
3046
3047 </td> <!-- entry_type -->
3048
3049 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003050 <p>List of video stabilization modes that can
3051be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003052 </td>
3053
3054 <td class="entry_units">
3055 </td>
3056
3057 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003058 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003059 </td>
3060
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003061 <td class="entry_tags">
3062 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003063 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003064 </ul>
3065 </td>
3066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003067 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003068
3069
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003070 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3071 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003072
3073
3074 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003075 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003076 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003077 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003078 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003079 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003080 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003081
Alex Raya4251d92013-04-30 16:43:44 -07003082 <span class="entry_type_array">
3083 n
3084 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003085 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003086 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003087
3088
3089 </td> <!-- entry_type -->
3090
3091 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003092 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3093that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003094 </td>
3095
3096 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003097 </td>
3098
3099 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003100 </td>
3101
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102 <td class="entry_tags">
3103 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003104 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003105 </ul>
3106 </td>
3107
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003108 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003109 <tr class="entries_header">
3110 <th class="th_details" colspan="5">Details</th>
3111 </tr>
3112 <tr class="entry_cont">
3113 <td class="entry_details" colspan="5">
3114 <p>Not all the auto-white-balance modes may be supported by a
3115given camera device.<wbr/> This entry lists the valid modes for
3116<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3117<p>All camera devices will support ON mode.<wbr/></p>
3118<p>Full-capability camera devices will always support OFF mode,<wbr/>
3119which enables application control of white balance,<wbr/> by using
3120<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>(<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> must be set to TRANSFORM_<wbr/>MATRIX).<wbr/></p>
3121 </td>
3122 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003123
3124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003125 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3126 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003127
3128
3129 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003130 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003131 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003132 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003133 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003134 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003135
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003136 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003137
3138
3139 </td> <!-- entry_type -->
3140
3141 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003142 <p>For AE,<wbr/> AWB,<wbr/> and AF,<wbr/> how many individual
3143regions can be listed for metering?</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003144 </td>
3145
3146 <td class="entry_units">
3147 </td>
3148
3149 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08003150 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003151 </td>
3152
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003153 <td class="entry_tags">
3154 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003155 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003156 </ul>
3157 </td>
3158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003159 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003160
3161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003162 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3163 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003164
3165
3166 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003167 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003168 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003169 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003170 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003171 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003172 <span class="entry_type_container">x</span>
3173
3174 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003175 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003176 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003177 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003178
3179
3180 </td> <!-- entry_type -->
3181
3182 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003183 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3184settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003185 </td>
3186
3187 <td class="entry_units">
3188 </td>
3189
3190 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003191 <p>For each available scene mode,<wbr/> the list must contain three
3192entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3193<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
3194by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3195where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003196 </td>
3197
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003198 <td class="entry_tags">
3199 <ul class="entry_tags">
3200 <li><a href="#tag_BC">BC</a></li>
3201 </ul>
3202 </td>
3203
3204 </tr>
3205 <tr class="entries_header">
3206 <th class="th_details" colspan="5">Details</th>
3207 </tr>
3208 <tr class="entry_cont">
3209 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003210 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3211to 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/>
3212and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3213that scene mode.<wbr/></p>
3214<p>The order of this list matches that of availableSceneModes,<wbr/>
3215with 3 entries for each mode.<wbr/> The overrides listed
3216for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3217mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3218<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
3219used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3220is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3221overrides should be set to 0.<wbr/></p>
3222<p>For example,<wbr/> if availableSceneModes contains
3223<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3224expects sceneModeOverrides to have 9 entries formatted like:
3225<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3226ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003227 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003229
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003230 <tr class="entries_header">
3231 <th class="th_details" colspan="5">HAL Implementation Details</th>
3232 </tr>
3233 <tr class="entry_cont">
3234 <td class="entry_details" colspan="5">
3235 <p>To maintain backward compatibility,<wbr/> this list will be made available
3236in the static metadata of the camera service.<wbr/> The camera service will
3237use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3238<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
3239mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3240 </td>
3241 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003242
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003243 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3244 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003245
3246
3247
3248 <!-- end of kind -->
3249 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003250 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003251
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003252 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003253 <tr>
3254 <th class="th_name">Property Name</th>
3255 <th class="th_type">Type</th>
3256 <th class="th_description">Description</th>
3257 <th class="th_units">Units</th>
3258 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003259 <th class="th_tags">Tags</th>
3260 </tr>
3261 </thead>
3262
3263 <tbody>
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003275 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003276 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003277 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003278 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003279 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003280
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003281 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003282
3283
3284 </td> <!-- entry_type -->
3285
3286 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003287 <p>The ID sent with the latest
3288CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003289 </td>
3290
3291 <td class="entry_units">
3292 </td>
3293
3294 <td class="entry_range">
3295 </td>
3296
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003297 <td class="entry_tags">
3298 </td>
3299
3300 </tr>
3301 <tr class="entries_header">
3302 <th class="th_details" colspan="5">Details</th>
3303 </tr>
3304 <tr class="entry_cont">
3305 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003306 <p>Must be 0 if no
3307CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3308by HAL.<wbr/> Always updated even if AE algorithm ignores the
3309trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003310 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003311 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003312
3313
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003314 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3315 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003316
3317
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003318 <tr class="entry" id="dynamic_android.control.aeMode">
3319 <td class="entry_name" rowspan="3">
3320 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3321 </td>
3322 <td class="entry_type">
3323 <span class="entry_type_name entry_type_name_enum">byte</span>
3324
3325 <span class="entry_type_visibility"> [public]</span>
3326
3327 <ul class="entry_type_enum">
3328 <li>
3329 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003330 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3331the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3332<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3333<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3334device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3335a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003336 </li>
3337 <li>
3338 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003339 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3340with no flash control.<wbr/> The application's values for
3341<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3342<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3343<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3344application has control over the various
3345android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003346 </li>
3347 <li>
3348 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003349 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3350the camera's flash unit,<wbr/> firing it in low-light
3351conditions.<wbr/> The flash may be fired during a
3352precapture sequence (triggered by
3353<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3354for captures for which the
3355<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3356STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003357 </li>
3358 <li>
3359 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003360 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3361the camera's flash unit,<wbr/> always firing it for still
3362captures.<wbr/> The flash may be fired during a precapture
3363sequence (triggered by
3364<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3365be fired for captures for which the
3366<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3367STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003368 </li>
3369 <li>
3370 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003371 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3372reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3373a red eye reduction flash will fire during the
3374precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003375 </li>
3376 </ul>
3377
3378 </td> <!-- entry_type -->
3379
3380 <td class="entry_description">
3381 <p>The desired mode for the camera device's
3382auto-exposure routine.<wbr/></p>
3383 </td>
3384
3385 <td class="entry_units">
3386 </td>
3387
3388 <td class="entry_range">
3389 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3390 </td>
3391
3392 <td class="entry_tags">
3393 <ul class="entry_tags">
3394 <li><a href="#tag_BC">BC</a></li>
3395 </ul>
3396 </td>
3397
3398 </tr>
3399 <tr class="entries_header">
3400 <th class="th_details" colspan="5">Details</th>
3401 </tr>
3402 <tr class="entry_cont">
3403 <td class="entry_details" colspan="5">
3404 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3405AUTO.<wbr/></p>
3406<p>When set to any of the ON modes,<wbr/> the camera device's
3407auto-exposure routine is enabled,<wbr/> overriding the
3408application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3409and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3410<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3411<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3412is selected,<wbr/> the camera device's flash unit controls are
3413also overridden.<wbr/></p>
3414<p>The FLASH modes are only available if the camera device
3415has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3416<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3417ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3418<p>When set to any of the ON modes,<wbr/> the values chosen by the
3419camera device auto-exposure routine for the overridden
3420fields for a given capture will be available in its
3421CaptureResult.<wbr/></p>
3422 </td>
3423 </tr>
3424
3425
3426 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3427 <!-- end of entry -->
3428
3429
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003430 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003431 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003432 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003433 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003434 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003435 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003436 <span class="entry_type_container">x</span>
3437
3438 <span class="entry_type_array">
3439 5 x area_count
3440 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003441 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003442
3443
3444 </td> <!-- entry_type -->
3445
3446 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003447 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003448metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003449 </td>
3450
3451 <td class="entry_units">
3452 </td>
3453
3454 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003455 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003456 </td>
3457
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003458 <td class="entry_tags">
3459 <ul class="entry_tags">
3460 <li><a href="#tag_BC">BC</a></li>
3461 </ul>
3462 </td>
3463
3464 </tr>
3465 <tr class="entries_header">
3466 <th class="th_details" colspan="5">Details</th>
3467 </tr>
3468 <tr class="entry_cont">
3469 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003470 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003471xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003472specified coordinates.<wbr/></p>
3473<p>The coordinate system is based on the active pixel array,<wbr/>
3474with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003475(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3476<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 -08003477bottom-right pixel in the active pixel array.<wbr/> The weight
3478should be nonnegative.<wbr/></p>
3479<p>If all regions have 0 weight,<wbr/> then no specific metering area
3480needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003481outside 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 -08003482should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003483used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003484 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003485 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003486
3487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003488 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3489 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003490
3491
3492 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003493 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003494 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003495 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003496 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003497 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003498
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003499 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003500
3501 <ul class="entry_type_enum">
3502 <li>
3503 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003504 <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 -08003505this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003506 </li>
3507 <li>
3508 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003509 <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 -08003510for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003511 </li>
3512 <li>
3513 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003514 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003515current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003516 </li>
3517 <li>
3518 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003519 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003520 </li>
3521 <li>
3522 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003523 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3524needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003525capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003526 </li>
3527 <li>
3528 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003529 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003530(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3531and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003532completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003533FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003534 </li>
3535 </ul>
3536
3537 </td> <!-- entry_type -->
3538
3539 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003540 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003541 </td>
3542
3543 <td class="entry_units">
3544 </td>
3545
3546 <td class="entry_range">
3547 </td>
3548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003549 <td class="entry_tags">
3550 </td>
3551
3552 </tr>
3553 <tr class="entries_header">
3554 <th class="th_details" colspan="5">Details</th>
3555 </tr>
3556 <tr class="entry_cont">
3557 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003558 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3559resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3560or <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
3561the algorithm states to INACTIVE.<wbr/></p>
3562<p>The camera device can do several state transitions between two results,<wbr/> if it is
3563allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3564seen in a result.<wbr/></p>
3565<p>The state in the result is the state for this image (in sync with this image): if
3566AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3567be good to use.<wbr/></p>
3568<p>Below are state transition tables for different AE modes.<wbr/></p>
3569<table>
3570<thead>
3571<tr>
3572<th align="center">State</th>
3573<th align="center">Transition Cause</th>
3574<th align="center">New State</th>
3575<th align="center">Notes</th>
3576</tr>
3577</thead>
3578<tbody>
3579<tr>
3580<td align="center">INACTIVE</td>
3581<td align="center"></td>
3582<td align="center">INACTIVE</td>
3583<td align="center">Camera device auto exposure algorithm is disabled</td>
3584</tr>
3585</tbody>
3586</table>
3587<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3588<table>
3589<thead>
3590<tr>
3591<th align="center">State</th>
3592<th align="center">Transition Cause</th>
3593<th align="center">New State</th>
3594<th align="center">Notes</th>
3595</tr>
3596</thead>
3597<tbody>
3598<tr>
3599<td align="center">INACTIVE</td>
3600<td align="center">Camera device initiates AE scan</td>
3601<td align="center">SEARCHING</td>
3602<td align="center">Values changing</td>
3603</tr>
3604<tr>
3605<td align="center">INACTIVE</td>
3606<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3607<td align="center">LOCKED</td>
3608<td align="center">Values locked</td>
3609</tr>
3610<tr>
3611<td align="center">SEARCHING</td>
3612<td align="center">Camera device finishes AE scan</td>
3613<td align="center">CONVERGED</td>
3614<td align="center">Good values,<wbr/> not changing</td>
3615</tr>
3616<tr>
3617<td align="center">SEARCHING</td>
3618<td align="center">Camera device finishes AE scan</td>
3619<td align="center">FLASH_<wbr/>REQUIRED</td>
3620<td align="center">Converged but too dark w/<wbr/>o flash</td>
3621</tr>
3622<tr>
3623<td align="center">SEARCHING</td>
3624<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3625<td align="center">LOCKED</td>
3626<td align="center">Values locked</td>
3627</tr>
3628<tr>
3629<td align="center">CONVERGED</td>
3630<td align="center">Camera device initiates AE scan</td>
3631<td align="center">SEARCHING</td>
3632<td align="center">Values changing</td>
3633</tr>
3634<tr>
3635<td align="center">CONVERGED</td>
3636<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3637<td align="center">LOCKED</td>
3638<td align="center">Values locked</td>
3639</tr>
3640<tr>
3641<td align="center">FLASH_<wbr/>REQUIRED</td>
3642<td align="center">Camera device initiates AE scan</td>
3643<td align="center">SEARCHING</td>
3644<td align="center">Values changing</td>
3645</tr>
3646<tr>
3647<td align="center">FLASH_<wbr/>REQUIRED</td>
3648<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3649<td align="center">LOCKED</td>
3650<td align="center">Values locked</td>
3651</tr>
3652<tr>
3653<td align="center">LOCKED</td>
3654<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3655<td align="center">SEARCHING</td>
3656<td align="center">Values not good after unlock</td>
3657</tr>
3658<tr>
3659<td align="center">LOCKED</td>
3660<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3661<td align="center">CONVERGED</td>
3662<td align="center">Values good after unlock</td>
3663</tr>
3664<tr>
3665<td align="center">LOCKED</td>
3666<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3667<td align="center">FLASH_<wbr/>REQUIRED</td>
3668<td align="center">Exposure good,<wbr/> but too dark</td>
3669</tr>
3670<tr>
3671<td align="center">PRECAPTURE</td>
3672<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3673<td align="center">CONVERGED</td>
3674<td align="center">Ready for high-quality capture</td>
3675</tr>
3676<tr>
3677<td align="center">PRECAPTURE</td>
3678<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3679<td align="center">LOCKED</td>
3680<td align="center">Ready for high-quality capture</td>
3681</tr>
3682<tr>
3683<td align="center">Any state</td>
3684<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3685<td align="center">PRECAPTURE</td>
3686<td align="center">Start AE precapture metering sequence</td>
3687</tr>
3688</tbody>
3689</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003690 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003691 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003692
3693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3695 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003696
3697
3698 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003699 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003700 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003701 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003702 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003703 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003704
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003705 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003706
3707 <ul class="entry_type_enum">
3708 <li>
3709 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003710 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3711<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3712application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003713 </li>
3714 <li>
3715 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003716 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3717<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
3718is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3719the autofocus trigger action is called.<wbr/> When that trigger
3720is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3721the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3722<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3723and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003724 </li>
3725 <li>
3726 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003727 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3728autofocus trigger action is called.<wbr/></p>
3729<p>When that trigger is activated,<wbr/> AF must transition to
3730ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3731NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3732position to default,<wbr/> and sets the AF state to
3733INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003734 </li>
3735 <li>
3736 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003737 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3738position continually to attempt to provide a
3739constantly-in-focus image stream.<wbr/></p>
3740<p>The focusing behavior should be suitable for good quality
3741video recording; typically this means slower focus
3742movement and no overshoots.<wbr/> When the AF trigger is not
3743involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3744and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3745states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3746the algorithm should immediately transition into
3747AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3748lens position until a cancel AF trigger is received.<wbr/></p>
3749<p>Once cancel is received,<wbr/> the algorithm should transition
3750back to INACTIVE and resume passive scan.<wbr/> Note that this
3751behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3752ongoing PASSIVE_<wbr/>SCAN must immediately be
3753canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003754 </li>
3755 <li>
3756 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003757 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3758position continually to attempt to provide a
3759constantly-in-focus image stream.<wbr/></p>
3760<p>The focusing behavior should be suitable for still image
3761capture; typically this means focusing as fast as
3762possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3763algorithm should start in INACTIVE state,<wbr/> and then
3764transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3765appropriate as it attempts to maintain focus.<wbr/> When the AF
3766trigger is activated,<wbr/> the algorithm should finish its
3767PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3768AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3769lens position until a cancel AF trigger is received.<wbr/></p>
3770<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3771should transition back to INACTIVE and then act as if it
3772has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003773 </li>
3774 <li>
3775 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003776 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3777trigger is ignored,<wbr/> AF state should always be
3778INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003779 </li>
3780 </ul>
3781
3782 </td> <!-- entry_type -->
3783
3784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003785 <p>Whether AF is currently enabled,<wbr/> and what
3786mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003787 </td>
3788
3789 <td class="entry_units">
3790 </td>
3791
3792 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003793 <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 -08003794 </td>
3795
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003796 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003797 <ul class="entry_tags">
3798 <li><a href="#tag_BC">BC</a></li>
3799 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003800 </td>
3801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003802 </tr>
3803 <tr class="entries_header">
3804 <th class="th_details" colspan="5">Details</th>
3805 </tr>
3806 <tr class="entry_cont">
3807 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003808 <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 -08003809<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3810the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3811in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003812 </td>
3813 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003814
3815
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003816 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3817 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003818
3819
3820 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003821 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003822 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003823 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003824 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003825 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003826 <span class="entry_type_container">x</span>
3827
3828 <span class="entry_type_array">
3829 5 x area_count
3830 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003831 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003832
3833
3834 </td> <!-- entry_type -->
3835
3836 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003837 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003838estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003839 </td>
3840
3841 <td class="entry_units">
3842 </td>
3843
3844 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003845 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003846 </td>
3847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003848 <td class="entry_tags">
3849 <ul class="entry_tags">
3850 <li><a href="#tag_BC">BC</a></li>
3851 </ul>
3852 </td>
3853
3854 </tr>
3855 <tr class="entries_header">
3856 <th class="th_details" colspan="5">Details</th>
3857 </tr>
3858 <tr class="entry_cont">
3859 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003860 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003861xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003862specified coordinates.<wbr/></p>
3863<p>The coordinate system is based on the active pixel array,<wbr/>
3864with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003865(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3866<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 -08003867bottom-right pixel in the active pixel array.<wbr/> The weight
3868should be nonnegative.<wbr/></p>
3869<p>If all regions have 0 weight,<wbr/> then no specific focus area
3870needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003871outside 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 -08003872should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003873used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003874 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003875 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003876
3877
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003878 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3879 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003880
3881
3882 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003883 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003884 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003885 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003886 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003887 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003888
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003889 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003890
3891 <ul class="entry_type_enum">
3892 <li>
3893 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003894 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3895to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3896this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003897 </li>
3898 <li>
3899 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003900 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3901currently doing an AF scan initiated by a continuous
3902autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003903 </li>
3904 <li>
3905 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003906 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3907believes it is in focus,<wbr/> but may restart scanning at
3908any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003909 </li>
3910 <li>
3911 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003912 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3913an AF scan because it was triggered by AF
3914trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003915 </li>
3916 <li>
3917 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003918 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3919believes it is focused correctly and is
3920locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003921 </li>
3922 <li>
3923 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003924 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3925failed to focus successfully and is
3926locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003927 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003928 <li>
3929 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003930 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3931passive scan without finding focus,<wbr/> and may restart
3932scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003933 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003934 </ul>
3935
3936 </td> <!-- entry_type -->
3937
3938 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003939 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003940 </td>
3941
3942 <td class="entry_units">
3943 </td>
3944
3945 <td class="entry_range">
3946 </td>
3947
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003948 <td class="entry_tags">
3949 </td>
3950
3951 </tr>
3952 <tr class="entries_header">
3953 <th class="th_details" colspan="5">Details</th>
3954 </tr>
3955 <tr class="entry_cont">
3956 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003957 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3958resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3959or <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
3960the algorithm states to INACTIVE.<wbr/></p>
3961<p>The camera device can do several state transitions between two results,<wbr/> if it is
3962allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3963seen in a result.<wbr/></p>
3964<p>The state in the result is the state for this image (in sync with this image): if
3965AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3966be sharp.<wbr/></p>
3967<p>Below are state transition tables for different AF modes.<wbr/></p>
3968<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>
3969<table>
3970<thead>
3971<tr>
3972<th align="center">State</th>
3973<th align="center">Transition Cause</th>
3974<th align="center">New State</th>
3975<th align="center">Notes</th>
3976</tr>
3977</thead>
3978<tbody>
3979<tr>
3980<td align="center">INACTIVE</td>
3981<td align="center"></td>
3982<td align="center">INACTIVE</td>
3983<td align="center">Never changes</td>
3984</tr>
3985</tbody>
3986</table>
3987<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>
3988<table>
3989<thead>
3990<tr>
3991<th align="center">State</th>
3992<th align="center">Transition Cause</th>
3993<th align="center">New State</th>
3994<th align="center">Notes</th>
3995</tr>
3996</thead>
3997<tbody>
3998<tr>
3999<td align="center">INACTIVE</td>
4000<td align="center">AF_<wbr/>TRIGGER</td>
4001<td align="center">ACTIVE_<wbr/>SCAN</td>
4002<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4003</tr>
4004<tr>
4005<td align="center">ACTIVE_<wbr/>SCAN</td>
4006<td align="center">AF sweep done</td>
4007<td align="center">FOCUSED_<wbr/>LOCKED</td>
4008<td align="center">Focused,<wbr/> Lens now locked</td>
4009</tr>
4010<tr>
4011<td align="center">ACTIVE_<wbr/>SCAN</td>
4012<td align="center">AF sweep done</td>
4013<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4014<td align="center">Not focused,<wbr/> Lens now locked</td>
4015</tr>
4016<tr>
4017<td align="center">ACTIVE_<wbr/>SCAN</td>
4018<td align="center">AF_<wbr/>CANCEL</td>
4019<td align="center">INACTIVE</td>
4020<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4021</tr>
4022<tr>
4023<td align="center">FOCUSED_<wbr/>LOCKED</td>
4024<td align="center">AF_<wbr/>CANCEL</td>
4025<td align="center">INACTIVE</td>
4026<td align="center">Cancel/<wbr/>reset AF</td>
4027</tr>
4028<tr>
4029<td align="center">FOCUSED_<wbr/>LOCKED</td>
4030<td align="center">AF_<wbr/>TRIGGER</td>
4031<td align="center">ACTIVE_<wbr/>SCAN</td>
4032<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4033</tr>
4034<tr>
4035<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4036<td align="center">AF_<wbr/>CANCEL</td>
4037<td align="center">INACTIVE</td>
4038<td align="center">Cancel/<wbr/>reset AF</td>
4039</tr>
4040<tr>
4041<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4042<td align="center">AF_<wbr/>TRIGGER</td>
4043<td align="center">ACTIVE_<wbr/>SCAN</td>
4044<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4045</tr>
4046<tr>
4047<td align="center">Any state</td>
4048<td align="center">Mode change</td>
4049<td align="center">INACTIVE</td>
4050<td align="center"></td>
4051</tr>
4052</tbody>
4053</table>
4054<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>
4055<table>
4056<thead>
4057<tr>
4058<th align="center">State</th>
4059<th align="center">Transition Cause</th>
4060<th align="center">New State</th>
4061<th align="center">Notes</th>
4062</tr>
4063</thead>
4064<tbody>
4065<tr>
4066<td align="center">INACTIVE</td>
4067<td align="center">Camera device initiates new scan</td>
4068<td align="center">PASSIVE_<wbr/>SCAN</td>
4069<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4070</tr>
4071<tr>
4072<td align="center">INACTIVE</td>
4073<td align="center">AF_<wbr/>TRIGGER</td>
4074<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4075<td align="center">AF state query,<wbr/> Lens now locked</td>
4076</tr>
4077<tr>
4078<td align="center">PASSIVE_<wbr/>SCAN</td>
4079<td align="center">Camera device completes current scan</td>
4080<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4081<td align="center">End AF scan,<wbr/> Lens now locked</td>
4082</tr>
4083<tr>
4084<td align="center">PASSIVE_<wbr/>SCAN</td>
4085<td align="center">Camera device fails current scan</td>
4086<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4087<td align="center">End AF scan,<wbr/> Lens now locked</td>
4088</tr>
4089<tr>
4090<td align="center">PASSIVE_<wbr/>SCAN</td>
4091<td align="center">AF_<wbr/>TRIGGER</td>
4092<td align="center">FOCUSED_<wbr/>LOCKED</td>
4093<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4094</tr>
4095<tr>
4096<td align="center">PASSIVE_<wbr/>SCAN</td>
4097<td align="center">AF_<wbr/>TRIGGER</td>
4098<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4099<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4100</tr>
4101<tr>
4102<td align="center">PASSIVE_<wbr/>SCAN</td>
4103<td align="center">AF_<wbr/>CANCEL</td>
4104<td align="center">INACTIVE</td>
4105<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4106</tr>
4107<tr>
4108<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4109<td align="center">Camera device initiates new scan</td>
4110<td align="center">PASSIVE_<wbr/>SCAN</td>
4111<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4112</tr>
4113<tr>
4114<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4115<td align="center">Camera device initiates new scan</td>
4116<td align="center">PASSIVE_<wbr/>SCAN</td>
4117<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4118</tr>
4119<tr>
4120<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4121<td align="center">AF_<wbr/>TRIGGER</td>
4122<td align="center">FOCUSED_<wbr/>LOCKED</td>
4123<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4124</tr>
4125<tr>
4126<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4127<td align="center">AF_<wbr/>TRIGGER</td>
4128<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4129<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4130</tr>
4131<tr>
4132<td align="center">FOCUSED_<wbr/>LOCKED</td>
4133<td align="center">AF_<wbr/>TRIGGER</td>
4134<td align="center">FOCUSED_<wbr/>LOCKED</td>
4135<td align="center">No effect</td>
4136</tr>
4137<tr>
4138<td align="center">FOCUSED_<wbr/>LOCKED</td>
4139<td align="center">AF_<wbr/>CANCEL</td>
4140<td align="center">INACTIVE</td>
4141<td align="center">Restart AF scan</td>
4142</tr>
4143<tr>
4144<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4145<td align="center">AF_<wbr/>TRIGGER</td>
4146<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4147<td align="center">No effect</td>
4148</tr>
4149<tr>
4150<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4151<td align="center">AF_<wbr/>CANCEL</td>
4152<td align="center">INACTIVE</td>
4153<td align="center">Restart AF scan</td>
4154</tr>
4155</tbody>
4156</table>
4157<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>
4158<table>
4159<thead>
4160<tr>
4161<th align="center">State</th>
4162<th align="center">Transition Cause</th>
4163<th align="center">New State</th>
4164<th align="center">Notes</th>
4165</tr>
4166</thead>
4167<tbody>
4168<tr>
4169<td align="center">INACTIVE</td>
4170<td align="center">Camera device initiates new scan</td>
4171<td align="center">PASSIVE_<wbr/>SCAN</td>
4172<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4173</tr>
4174<tr>
4175<td align="center">INACTIVE</td>
4176<td align="center">AF_<wbr/>TRIGGER</td>
4177<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4178<td align="center">AF state query,<wbr/> Lens now locked</td>
4179</tr>
4180<tr>
4181<td align="center">PASSIVE_<wbr/>SCAN</td>
4182<td align="center">Camera device completes current scan</td>
4183<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4184<td align="center">End AF scan,<wbr/> Lens now locked</td>
4185</tr>
4186<tr>
4187<td align="center">PASSIVE_<wbr/>SCAN</td>
4188<td align="center">Camera device fails current scan</td>
4189<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4190<td align="center">End AF scan,<wbr/> Lens now locked</td>
4191</tr>
4192<tr>
4193<td align="center">PASSIVE_<wbr/>SCAN</td>
4194<td align="center">AF_<wbr/>TRIGGER</td>
4195<td align="center">FOCUSED_<wbr/>LOCKED</td>
4196<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4197</tr>
4198<tr>
4199<td align="center">PASSIVE_<wbr/>SCAN</td>
4200<td align="center">AF_<wbr/>TRIGGER</td>
4201<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4202<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4203</tr>
4204<tr>
4205<td align="center">PASSIVE_<wbr/>SCAN</td>
4206<td align="center">AF_<wbr/>CANCEL</td>
4207<td align="center">INACTIVE</td>
4208<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4209</tr>
4210<tr>
4211<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4212<td align="center">Camera device initiates new scan</td>
4213<td align="center">PASSIVE_<wbr/>SCAN</td>
4214<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4215</tr>
4216<tr>
4217<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4218<td align="center">Camera device initiates new scan</td>
4219<td align="center">PASSIVE_<wbr/>SCAN</td>
4220<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4221</tr>
4222<tr>
4223<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4224<td align="center">AF_<wbr/>TRIGGER</td>
4225<td align="center">FOCUSED_<wbr/>LOCKED</td>
4226<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4227</tr>
4228<tr>
4229<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4230<td align="center">AF_<wbr/>TRIGGER</td>
4231<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4232<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4233</tr>
4234<tr>
4235<td align="center">FOCUSED_<wbr/>LOCKED</td>
4236<td align="center">AF_<wbr/>TRIGGER</td>
4237<td align="center">FOCUSED_<wbr/>LOCKED</td>
4238<td align="center">No effect</td>
4239</tr>
4240<tr>
4241<td align="center">FOCUSED_<wbr/>LOCKED</td>
4242<td align="center">AF_<wbr/>CANCEL</td>
4243<td align="center">INACTIVE</td>
4244<td align="center">Restart AF scan</td>
4245</tr>
4246<tr>
4247<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4248<td align="center">AF_<wbr/>TRIGGER</td>
4249<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4250<td align="center">No effect</td>
4251</tr>
4252<tr>
4253<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4254<td align="center">AF_<wbr/>CANCEL</td>
4255<td align="center">INACTIVE</td>
4256<td align="center">Restart AF scan</td>
4257</tr>
4258</tbody>
4259</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004260 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004261 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004262
4263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004264 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4265 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004266
4267
4268 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004269 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004270 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004271 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004272 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004273 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004274
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004275 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004276
4277
4278 </td> <!-- entry_type -->
4279
4280 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004281 <p>The ID sent with the latest
4282CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004283 </td>
4284
4285 <td class="entry_units">
4286 </td>
4287
4288 <td class="entry_range">
4289 </td>
4290
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004291 <td class="entry_tags">
4292 </td>
4293
4294 </tr>
4295 <tr class="entries_header">
4296 <th class="th_details" colspan="5">Details</th>
4297 </tr>
4298 <tr class="entry_cont">
4299 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004300 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4301received yet by HAL.<wbr/> Always updated even if AF algorithm
4302ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004303 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004304 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004305
4306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004307 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4308 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004309
4310
4311 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004312 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004313 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004314 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004315 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004316 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004317
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004318 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004319
4320 <ul class="entry_type_enum">
4321 <li>
4322 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004323 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4324the application-selected color transform matrix
4325(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4326(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4327device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004328 </li>
4329 <li>
4330 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004331 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4332the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4333and <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 -08004334 </li>
4335 <li>
4336 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004337 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4338the camera device uses incandescent light as the assumed scene
4339illumination for white balance.<wbr/> While the exact white balance
4340transforms are up to the camera device,<wbr/> they will approximately
4341match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004342 </li>
4343 <li>
4344 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004345 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4346the camera device uses fluorescent light as the assumed scene
4347illumination for white balance.<wbr/> While the exact white balance
4348transforms are up to the camera device,<wbr/> they will approximately
4349match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004350 </li>
4351 <li>
4352 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004353 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4354the camera device uses warm fluorescent light as the assumed scene
4355illumination for white balance.<wbr/> While the exact white balance
4356transforms are up to the camera device,<wbr/> they will approximately
4357match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004358 </li>
4359 <li>
4360 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004361 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4362the camera device uses daylight light as the assumed scene
4363illumination for white balance.<wbr/> While the exact white balance
4364transforms are up to the camera device,<wbr/> they will approximately
4365match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004366 </li>
4367 <li>
4368 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004369 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4370the camera device uses cloudy daylight light as the assumed scene
4371illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004372 </li>
4373 <li>
4374 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004375 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4376the camera device uses twilight light as the assumed scene
4377illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004378 </li>
4379 <li>
4380 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004381 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4382the camera device uses shade light as the assumed scene
4383illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004384 </li>
4385 </ul>
4386
4387 </td> <!-- entry_type -->
4388
4389 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004390 <p>Whether AWB is currently setting the color
4391transform fields,<wbr/> and what its illumination target
4392is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004393 </td>
4394
4395 <td class="entry_units">
4396 </td>
4397
4398 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004399 <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 -08004400 </td>
4401
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004402 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004403 <ul class="entry_tags">
4404 <li><a href="#tag_BC">BC</a></li>
4405 <li><a href="#tag_AWB">AWB</a></li>
4406 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004407 </td>
4408
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004409 </tr>
4410 <tr class="entries_header">
4411 <th class="th_details" colspan="5">Details</th>
4412 </tr>
4413 <tr class="entry_cont">
4414 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004415 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4416<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4417routine is enabled,<wbr/> overriding the application's selected
4418<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
4419<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4420<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4421routine is disabled.<wbr/> The applicantion manually controls the white
4422balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4423and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4424<p>When set to any other modes,<wbr/> the camera device's auto white balance
4425routine is disabled.<wbr/> The camera device uses each particular illumination
4426target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004427 </td>
4428 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004429
4430
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004431 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4432 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004433
4434
4435 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004436 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004437 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004438 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004439 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004440 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004441 <span class="entry_type_container">x</span>
4442
4443 <span class="entry_type_array">
4444 5 x area_count
4445 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004446 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004447
4448
4449 </td> <!-- entry_type -->
4450
4451 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004452 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004453estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004454 </td>
4455
4456 <td class="entry_units">
4457 </td>
4458
4459 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004460 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004461 </td>
4462
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004463 <td class="entry_tags">
4464 <ul class="entry_tags">
4465 <li><a href="#tag_BC">BC</a></li>
4466 </ul>
4467 </td>
4468
4469 </tr>
4470 <tr class="entries_header">
4471 <th class="th_details" colspan="5">Details</th>
4472 </tr>
4473 <tr class="entry_cont">
4474 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004475 <p>Only used in AUTO mode.<wbr/></p>
4476<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004477xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08004478specified coordinates.<wbr/></p>
4479<p>The coordinate system is based on the active pixel array,<wbr/>
4480with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004481(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4482<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 -08004483bottom-right pixel in the active pixel array.<wbr/> The weight
4484should be nonnegative.<wbr/></p>
4485<p>If all regions have 0 weight,<wbr/> then no specific metering area
4486needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004487outside 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 -08004488should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004489used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004490 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004491 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004492
4493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004494 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4495 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004496
4497
4498 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004499 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004500 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004501 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004502 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004503 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004504
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004505 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004506
4507 <ul class="entry_type_enum">
4508 <li>
4509 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004510 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4511starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004512 </li>
4513 <li>
4514 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004515 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004516values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004517 </li>
4518 <li>
4519 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004520 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004521current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004522 </li>
4523 <li>
4524 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004525 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004526 </li>
4527 </ul>
4528
4529 </td> <!-- entry_type -->
4530
4531 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004532 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004533 </td>
4534
4535 <td class="entry_units">
4536 </td>
4537
4538 <td class="entry_range">
4539 </td>
4540
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004541 <td class="entry_tags">
4542 </td>
4543
4544 </tr>
4545 <tr class="entries_header">
4546 <th class="th_details" colspan="5">Details</th>
4547 </tr>
4548 <tr class="entry_cont">
4549 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004550 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4551resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4552or <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
4553the algorithm states to INACTIVE.<wbr/></p>
4554<p>The camera device can do several state transitions between two results,<wbr/> if it is
4555allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4556a result.<wbr/></p>
4557<p>The state in the result is the state for this image (in sync with this image): if
4558AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4559be good to use.<wbr/></p>
4560<p>Below are state transition tables for different AWB modes.<wbr/></p>
4561<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4562<table>
4563<thead>
4564<tr>
4565<th align="center">State</th>
4566<th align="center">Transition Cause</th>
4567<th align="center">New State</th>
4568<th align="center">Notes</th>
4569</tr>
4570</thead>
4571<tbody>
4572<tr>
4573<td align="center">INACTIVE</td>
4574<td align="center"></td>
4575<td align="center">INACTIVE</td>
4576<td align="center">Camera device auto white balance algorithm is disabled</td>
4577</tr>
4578</tbody>
4579</table>
4580<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4581<table>
4582<thead>
4583<tr>
4584<th align="center">State</th>
4585<th align="center">Transition Cause</th>
4586<th align="center">New State</th>
4587<th align="center">Notes</th>
4588</tr>
4589</thead>
4590<tbody>
4591<tr>
4592<td align="center">INACTIVE</td>
4593<td align="center">Camera device initiates AWB scan</td>
4594<td align="center">SEARCHING</td>
4595<td align="center">Values changing</td>
4596</tr>
4597<tr>
4598<td align="center">INACTIVE</td>
4599<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4600<td align="center">LOCKED</td>
4601<td align="center">Values locked</td>
4602</tr>
4603<tr>
4604<td align="center">SEARCHING</td>
4605<td align="center">Camera device finishes AWB scan</td>
4606<td align="center">CONVERGED</td>
4607<td align="center">Good values,<wbr/> not changing</td>
4608</tr>
4609<tr>
4610<td align="center">SEARCHING</td>
4611<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4612<td align="center">LOCKED</td>
4613<td align="center">Values locked</td>
4614</tr>
4615<tr>
4616<td align="center">CONVERGED</td>
4617<td align="center">Camera device initiates AWB scan</td>
4618<td align="center">SEARCHING</td>
4619<td align="center">Values changing</td>
4620</tr>
4621<tr>
4622<td align="center">CONVERGED</td>
4623<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4624<td align="center">LOCKED</td>
4625<td align="center">Values locked</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">SEARCHING</td>
4631<td align="center">Values not good after unlock</td>
4632</tr>
4633<tr>
4634<td align="center">LOCKED</td>
4635<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4636<td align="center">CONVERGED</td>
4637<td align="center">Values good after unlock</td>
4638</tr>
4639</tbody>
4640</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004641 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004642 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004643
4644
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004645 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4646 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004647
4648
4649 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004650 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004651 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004652 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004653 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004654 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004655
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004656 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004657
4658 <ul class="entry_type_enum">
4659 <li>
4660 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004661 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4662routines are disabled,<wbr/> no other settings in
4663android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004664 </li>
4665 <li>
4666 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004667 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4668Manual control of capture parameters is disabled.<wbr/> All
4669controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4670effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004671 </li>
4672 <li>
4673 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004674 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4675control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4676controls; the HAL must ignore those settings while
4677USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4678scene mode).<wbr/> Other control entries are still active.<wbr/>
4679This setting can only be used if availableSceneModes !=
4680UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004681 </li>
4682 </ul>
4683
4684 </td> <!-- entry_type -->
4685
4686 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004687 <p>Overall mode of 3A control
4688routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004689 </td>
4690
4691 <td class="entry_units">
4692 </td>
4693
4694 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004695 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004696 </td>
4697
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004698 <td class="entry_tags">
4699 <ul class="entry_tags">
4700 <li><a href="#tag_BC">BC</a></li>
4701 </ul>
4702 </td>
4703
4704 </tr>
4705 <tr class="entries_header">
4706 <th class="th_details" colspan="5">Details</th>
4707 </tr>
4708 <tr class="entry_cont">
4709 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004710 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004711by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004712capture parameters itself.<wbr/></p>
4713<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004714android.<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 -08004715<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004716android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004717one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004718as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004719<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 -08004720 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004721 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004722
4723
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004724 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4725 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004726
4727
4728
4729 <!-- end of kind -->
4730 </tbody>
4731
4732 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004733 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004734
4735
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004736 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004737
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004738 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004739 <tr>
4740 <th class="th_name">Property Name</th>
4741 <th class="th_type">Type</th>
4742 <th class="th_description">Description</th>
4743 <th class="th_units">Units</th>
4744 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004745 <th class="th_tags">Tags</th>
4746 </tr>
4747 </thead>
4748
4749 <tbody>
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004761 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004762 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004763 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004764 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004765 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004766
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004767 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004768
4769 <ul class="entry_type_enum">
4770 <li>
4771 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004772 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4773Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004774 </li>
4775 <li>
4776 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004777 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4778rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004779 </li>
4780 </ul>
4781
4782 </td> <!-- entry_type -->
4783
4784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004785 <p>Controls the quality of the demosaicing
4786processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004787 </td>
4788
4789 <td class="entry_units">
4790 </td>
4791
4792 <td class="entry_range">
4793 </td>
4794
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004795 <td class="entry_tags">
4796 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004797 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004798 </ul>
4799 </td>
4800
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004801 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004802
4803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004804 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4805 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004806
4807
4808
4809 <!-- end of kind -->
4810 </tbody>
4811
4812 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004813 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004814
4815
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004816 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004817
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004818 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004819 <tr>
4820 <th class="th_name">Property Name</th>
4821 <th class="th_type">Type</th>
4822 <th class="th_description">Description</th>
4823 <th class="th_units">Units</th>
4824 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004825 <th class="th_tags">Tags</th>
4826 </tr>
4827 </thead>
4828
4829 <tbody>
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004841 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004842 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004843 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004844 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004845 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004846
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004847 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004848
4849 <ul class="entry_type_enum">
4850 <li>
4851 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004852 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004853 </li>
4854 <li>
4855 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004856 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4857output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004858 </li>
4859 <li>
4860 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004861 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4862quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004863 </li>
4864 </ul>
4865
4866 </td> <!-- entry_type -->
4867
4868 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004869 <p>Operation mode for edge
4870enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004871 </td>
4872
4873 <td class="entry_units">
4874 </td>
4875
4876 <td class="entry_range">
4877 </td>
4878
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004879 <td class="entry_tags">
4880 </td>
4881
4882 </tr>
4883 <tr class="entries_header">
4884 <th class="th_details" colspan="5">Details</th>
4885 </tr>
4886 <tr class="entry_cont">
4887 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004888 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4889enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004890<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004891will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004892camera device will use the highest-quality enhancement algorithms,<wbr/>
4893even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004894not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004895 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004896 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004897
4898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004899 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4900 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004901
4902
4903 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004904 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004905 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004906 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004907 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004908 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004909
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004910 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004911
4912
4913 </td> <!-- entry_type -->
4914
4915 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004916 <p>Control the amount of edge enhancement
4917applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004918 </td>
4919
4920 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004921 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004922 </td>
4923
4924 <td class="entry_range">
4925 </td>
4926
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004927 <td class="entry_tags">
4928 </td>
4929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004930 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004931
4932
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004933 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4934 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004935
4936
4937
4938 <!-- end of kind -->
4939 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004940 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004941
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004942 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004943 <tr>
4944 <th class="th_name">Property Name</th>
4945 <th class="th_type">Type</th>
4946 <th class="th_description">Description</th>
4947 <th class="th_units">Units</th>
4948 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004949 <th class="th_tags">Tags</th>
4950 </tr>
4951 </thead>
4952
4953 <tbody>
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004965 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004966 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004967 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004968 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004969 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004970
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004971 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004972
4973 <ul class="entry_type_enum">
4974 <li>
4975 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004976 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004977 </li>
4978 <li>
4979 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004980 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4981output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004982 </li>
4983 <li>
4984 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004985 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4986quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004987 </li>
4988 </ul>
4989
4990 </td> <!-- entry_type -->
4991
4992 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004993 <p>Operation mode for edge
4994enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004995 </td>
4996
4997 <td class="entry_units">
4998 </td>
4999
5000 <td class="entry_range">
5001 </td>
5002
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005003 <td class="entry_tags">
5004 </td>
5005
5006 </tr>
5007 <tr class="entries_header">
5008 <th class="th_details" colspan="5">Details</th>
5009 </tr>
5010 <tr class="entry_cont">
5011 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005012 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5013enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005014<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005015will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005016camera device will use the highest-quality enhancement algorithms,<wbr/>
5017even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005018not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005019 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005020 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005021
5022
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005023 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5024 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005025
5026
5027
5028 <!-- end of kind -->
5029 </tbody>
5030
5031 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005032 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005033
5034
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005035 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005036
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005037 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005038 <tr>
5039 <th class="th_name">Property Name</th>
5040 <th class="th_type">Type</th>
5041 <th class="th_description">Description</th>
5042 <th class="th_units">Units</th>
5043 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005044 <th class="th_tags">Tags</th>
5045 </tr>
5046 </thead>
5047
5048 <tbody>
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005060 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005061 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005062 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005064 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005065
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005066 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005067
5068
5069 </td> <!-- entry_type -->
5070
5071 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005072 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005073 </td>
5074
5075 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005076 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005077 </td>
5078
5079 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005080 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005081 </td>
5082
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005083 <td class="entry_tags">
5084 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005085 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005086 </ul>
5087 </td>
5088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005089 </tr>
5090 <tr class="entries_header">
5091 <th class="th_details" colspan="5">Details</th>
5092 </tr>
5093 <tr class="entry_cont">
5094 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005095 <p>Power for snapshot may use a different scale than
5096for torch mode.<wbr/> Only one entry for torch mode will be
5097used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005098 </td>
5099 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005100
5101
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005102 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5103 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005104
5105
5106 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005107 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005108 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005109 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005110 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005111 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005112
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005113 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005114
5115
5116 </td> <!-- entry_type -->
5117
5118 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005119 <p>Firing time of flash relative to start of
5120exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005121 </td>
5122
5123 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005124 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005125 </td>
5126
5127 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005128 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005129 </td>
5130
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005131 <td class="entry_tags">
5132 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005133 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005134 </ul>
5135 </td>
5136
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005137 </tr>
5138 <tr class="entries_header">
5139 <th class="th_details" colspan="5">Details</th>
5140 </tr>
5141 <tr class="entry_cont">
5142 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005143 <p>Clamped to (0,<wbr/> exposure time - flash
5144duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005145 </td>
5146 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005147
5148
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005149 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5150 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005151
5152
5153 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005154 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005155 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005156 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005157 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005158 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005159
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005160 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005161
5162 <ul class="entry_type_enum">
5163 <li>
5164 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005165 <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 -08005166 </li>
5167 <li>
5168 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005169 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5170for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5171<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005172 </li>
5173 <li>
5174 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005175 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005176 </li>
5177 </ul>
5178
5179 </td> <!-- entry_type -->
5180
5181 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005182 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005183 </td>
5184
5185 <td class="entry_units">
5186 </td>
5187
5188 <td class="entry_range">
5189 </td>
5190
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005191 <td class="entry_tags">
5192 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005193 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005194 </ul>
5195 </td>
5196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005197 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005198 <tr class="entries_header">
5199 <th class="th_details" colspan="5">Details</th>
5200 </tr>
5201 <tr class="entry_cont">
5202 <td class="entry_details" colspan="5">
5203 <p>This control is only effective when flash unit is available
5204(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
5205<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/>
5206Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5207ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5208<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5209<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5210device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5211control should be used along with AE precapture metering sequence
5212(<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>
5213<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5214for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5215 </td>
5216 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005217
5218
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005219 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5220 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005221
5222
5223
5224 <!-- end of kind -->
5225 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005226 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005227
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005228 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005229 <tr>
5230 <th class="th_name">Property Name</th>
5231 <th class="th_type">Type</th>
5232 <th class="th_description">Description</th>
5233 <th class="th_units">Units</th>
5234 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005235 <th class="th_tags">Tags</th>
5236 </tr>
5237 </thead>
5238
5239 <tbody>
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005253 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005254 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005255 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005256 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005257 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005258
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005259 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005260
5261
5262 </td> <!-- entry_type -->
5263
5264 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005265 <p>Whether this camera has a
5266flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005267 </td>
5268
5269 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005270 boolean (0 = false,<wbr/> otherwise true)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005271 </td>
5272
5273 <td class="entry_range">
5274 </td>
5275
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005276 <td class="entry_tags">
5277 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005278 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005279 </ul>
5280 </td>
5281
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005282 </tr>
5283 <tr class="entries_header">
5284 <th class="th_details" colspan="5">Details</th>
5285 </tr>
5286 <tr class="entry_cont">
5287 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005288 <p>If no flash,<wbr/> none of the flash controls do
5289anything.<wbr/> All other metadata should return 0</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005290 </td>
5291 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005292
5293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005294 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5295 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005296
5297
5298 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005299 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005300 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005301 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005302 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005303 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005304
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005305 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005306
5307
5308 </td> <!-- entry_type -->
5309
5310 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005311 <p>Time taken before flash can fire
5312again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005313 </td>
5314
5315 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005316 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005317 </td>
5318
5319 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005320 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005321 </td>
5322
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005323 <td class="entry_tags">
5324 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005325 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005326 </ul>
5327 </td>
5328
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005329 </tr>
5330 <tr class="entries_header">
5331 <th class="th_details" colspan="5">Details</th>
5332 </tr>
5333 <tr class="entry_cont">
5334 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005335 <p>1 second too long/<wbr/>too short for recharge? Should
5336this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005337 </td>
5338 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005339
5340
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005341 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5342 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005343
5344
5345
5346
5347
5348 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005349 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005350 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005351 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005352 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005353 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005354
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005355 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005356
5357
5358 </td> <!-- entry_type -->
5359
5360 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005361 <p>The x,<wbr/>y whitepoint of the
5362flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005363 </td>
5364
5365 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005366 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005367 </td>
5368
5369 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005370 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005371 </td>
5372
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005373 <td class="entry_tags">
5374 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005375 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005376 </ul>
5377 </td>
5378
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005379 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005380
5381
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005382 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5383 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005384
5385
5386 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005387 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005388 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005389 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005390 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005391 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005392
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005393 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005394
5395
5396 </td> <!-- entry_type -->
5397
5398 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005399 <p>Max energy output of the flash for a full
5400power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005401 </td>
5402
5403 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005404 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005405 </td>
5406
5407 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005408 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005409 </td>
5410
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005411 <td class="entry_tags">
5412 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005413 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005414 </ul>
5415 </td>
5416
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005417 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005418
5419
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005420 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5421 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005422
5423
5424
5425 <!-- end of kind -->
5426 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005427 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005428
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005429 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005430 <tr>
5431 <th class="th_name">Property Name</th>
5432 <th class="th_type">Type</th>
5433 <th class="th_description">Description</th>
5434 <th class="th_units">Units</th>
5435 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005436 <th class="th_tags">Tags</th>
5437 </tr>
5438 </thead>
5439
5440 <tbody>
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005452 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005453 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005454 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005455 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005456 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005457
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005458 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005459
5460
5461 </td> <!-- entry_type -->
5462
5463 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005464 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005465 </td>
5466
5467 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005468 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005469 </td>
5470
5471 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005472 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005473 </td>
5474
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005475 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005476 <ul class="entry_tags">
5477 <li><a href="#tag_V1">V1</a></li>
5478 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005479 </td>
5480
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005481 </tr>
5482 <tr class="entries_header">
5483 <th class="th_details" colspan="5">Details</th>
5484 </tr>
5485 <tr class="entry_cont">
5486 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005487 <p>Power for snapshot may use a different scale than
5488for torch mode.<wbr/> Only one entry for torch mode will be
5489used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005490 </td>
5491 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005492
5493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005494 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5495 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005496
5497
5498 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005499 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005500 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005501 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005502 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005503 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005504
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005505 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005506
5507
5508 </td> <!-- entry_type -->
5509
5510 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005511 <p>Firing time of flash relative to start of
5512exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005513 </td>
5514
5515 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005516 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005517 </td>
5518
5519 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005520 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005521 </td>
5522
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005523 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005524 <ul class="entry_tags">
5525 <li><a href="#tag_V1">V1</a></li>
5526 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005527 </td>
5528
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005529 </tr>
5530 <tr class="entries_header">
5531 <th class="th_details" colspan="5">Details</th>
5532 </tr>
5533 <tr class="entry_cont">
5534 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005535 <p>Clamped to (0,<wbr/> exposure time - flash
5536duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005537 </td>
5538 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005539
5540
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005541 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5542 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005543
5544
5545 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005546 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005547 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005548 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005549 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005550 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005551
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005552 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005553
5554 <ul class="entry_type_enum">
5555 <li>
5556 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005557 <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 -08005558 </li>
5559 <li>
5560 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005561 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5562for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5563<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005564 </li>
5565 <li>
5566 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005567 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005568 </li>
5569 </ul>
5570
5571 </td> <!-- entry_type -->
5572
5573 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005574 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005575 </td>
5576
5577 <td class="entry_units">
5578 </td>
5579
5580 <td class="entry_range">
5581 </td>
5582
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005583 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005584 <ul class="entry_tags">
5585 <li><a href="#tag_BC">BC</a></li>
5586 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005587 </td>
5588
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005589 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005590 <tr class="entries_header">
5591 <th class="th_details" colspan="5">Details</th>
5592 </tr>
5593 <tr class="entry_cont">
5594 <td class="entry_details" colspan="5">
5595 <p>This control is only effective when flash unit is available
5596(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
5597<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/>
5598Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5599ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5600<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5601<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5602device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5603control should be used along with AE precapture metering sequence
5604(<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>
5605<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5606for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5607 </td>
5608 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005609
5610
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005611 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5612 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005613
5614
5615 <tr class="entry" id="dynamic_android.flash.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005616 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005617 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005618 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005619 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005620 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005621
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005622 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005623
5624 <ul class="entry_type_enum">
5625 <li>
5626 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005627 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005628 </li>
5629 <li>
5630 <span class="entry_type_enum_name">CHARGING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005631 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5632charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005633 </li>
5634 <li>
5635 <span class="entry_type_enum_name">READY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005636 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5637ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005638 </li>
5639 <li>
5640 <span class="entry_type_enum_name">FIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005641 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash fired
5642for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005643 </li>
5644 </ul>
5645
5646 </td> <!-- entry_type -->
5647
5648 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005649 <p>Current state of the flash
5650unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005651 </td>
5652
5653 <td class="entry_units">
5654 </td>
5655
5656 <td class="entry_range">
5657 </td>
5658
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005659 <td class="entry_tags">
5660 </td>
5661
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005662 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005663
5664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005665 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5666 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005667
5668
5669
5670 <!-- end of kind -->
5671 </tbody>
5672
5673 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005674 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005675
5676
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005677 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005678
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005679 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005680 <tr>
5681 <th class="th_name">Property Name</th>
5682 <th class="th_type">Type</th>
5683 <th class="th_description">Description</th>
5684 <th class="th_units">Units</th>
5685 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005686 <th class="th_tags">Tags</th>
5687 </tr>
5688 </thead>
5689
5690 <tbody>
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005702 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005703 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005704 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005705 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005706 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005707
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005708 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005709
5710 <ul class="entry_type_enum">
5711 <li>
5712 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005713 <span class="entry_type_enum_notes"><p>No geometric correction is
5714applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005715 </li>
5716 <li>
5717 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005718 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5719bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005720 </li>
5721 <li>
5722 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005723 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5724quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005725 </li>
5726 </ul>
5727
5728 </td> <!-- entry_type -->
5729
5730 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005731 <p>Operating mode of geometric
5732correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005733 </td>
5734
5735 <td class="entry_units">
5736 </td>
5737
5738 <td class="entry_range">
5739 </td>
5740
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005741 <td class="entry_tags">
5742 </td>
5743
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005744 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005745
5746
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005747 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5748 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005749
5750
5751 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005752 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005753 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005754 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005755 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005756 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005757
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005758 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005759
5760
5761 </td> <!-- entry_type -->
5762
5763 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005764 <p>Control the amount of shading correction
5765applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005766 </td>
5767
5768 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005769 unitless: 1-10; 10 is full shading
5770 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005771 </td>
5772
5773 <td class="entry_range">
5774 </td>
5775
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005776 <td class="entry_tags">
5777 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005778 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005779 </ul>
5780 </td>
5781
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005782 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005783
5784
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005785 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5786 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005787
5788
5789
5790 <!-- end of kind -->
5791 </tbody>
5792
5793 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005794 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005795
5796
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005797 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005798
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005799 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005800 <tr>
5801 <th class="th_name">Property Name</th>
5802 <th class="th_type">Type</th>
5803 <th class="th_description">Description</th>
5804 <th class="th_units">Units</th>
5805 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005806 <th class="th_tags">Tags</th>
5807 </tr>
5808 </thead>
5809
5810 <tbody>
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005822 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005823 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005824 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005825 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005826 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005827
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005828 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005829
5830 <ul class="entry_type_enum">
5831 <li>
5832 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005833 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5834applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005835 </li>
5836 <li>
5837 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005838 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5839Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005840 </li>
5841 <li>
5842 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005843 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5844quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005845 </li>
5846 </ul>
5847
5848 </td> <!-- entry_type -->
5849
5850 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005851 <p>Set operational mode for hot pixel
5852correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005853 </td>
5854
5855 <td class="entry_units">
5856 </td>
5857
5858 <td class="entry_range">
5859 </td>
5860
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005861 <td class="entry_tags">
5862 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005863 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005864 </ul>
5865 </td>
5866
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005867 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005868
5869
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5871 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005872
5873
5874
5875 <!-- end of kind -->
5876 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005877 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005878
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005879 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005880 <tr>
5881 <th class="th_name">Property Name</th>
5882 <th class="th_type">Type</th>
5883 <th class="th_description">Description</th>
5884 <th class="th_units">Units</th>
5885 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005886 <th class="th_tags">Tags</th>
5887 </tr>
5888 </thead>
5889
5890 <tbody>
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005904 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005905 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005906 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005907 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005908 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005909 <span class="entry_type_container">x</span>
5910
5911 <span class="entry_type_array">
5912 2 x n
5913 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005914 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005915 <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 -08005916
5917
5918 </td> <!-- entry_type -->
5919
5920 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005921 <p>Location of hot/<wbr/>defective pixels on
5922sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005923 </td>
5924
5925 <td class="entry_units">
5926 </td>
5927
5928 <td class="entry_range">
5929 </td>
5930
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005931 <td class="entry_tags">
5932 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005933 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005934 </ul>
5935 </td>
5936
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005937 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005938
5939
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005940 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5941 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005942
5943
5944
5945
5946
5947
5948 <!-- end of kind -->
5949 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005950 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005951
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005952 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005953 <tr>
5954 <th class="th_name">Property Name</th>
5955 <th class="th_type">Type</th>
5956 <th class="th_description">Description</th>
5957 <th class="th_units">Units</th>
5958 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005959 <th class="th_tags">Tags</th>
5960 </tr>
5961 </thead>
5962
5963 <tbody>
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005975 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005976 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005977 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005978 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005979 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005980
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005981 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005982
5983 <ul class="entry_type_enum">
5984 <li>
5985 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005986 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5987applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005988 </li>
5989 <li>
5990 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005991 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5992Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005993 </li>
5994 <li>
5995 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005996 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5997quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005998 </li>
5999 </ul>
6000
6001 </td> <!-- entry_type -->
6002
6003 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006004 <p>Set operational mode for hot pixel
6005correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006006 </td>
6007
6008 <td class="entry_units">
6009 </td>
6010
6011 <td class="entry_range">
6012 </td>
6013
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006014 <td class="entry_tags">
6015 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006016 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006017 </ul>
6018 </td>
6019
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006020 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006021
6022
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006023 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6024 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006025
6026
6027
6028 <!-- end of kind -->
6029 </tbody>
6030
6031 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006032 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006033
6034
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006035 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006036
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006037 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006038 <tr>
6039 <th class="th_name">Property Name</th>
6040 <th class="th_type">Type</th>
6041 <th class="th_description">Description</th>
6042 <th class="th_units">Units</th>
6043 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006044 <th class="th_tags">Tags</th>
6045 </tr>
6046 </thead>
6047
6048 <tbody>
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006060 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006061 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006062 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006064 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006065 <span class="entry_type_container">x</span>
6066
6067 <span class="entry_type_array">
6068 3
6069 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006070 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006071 <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 -08006072
6073
6074 </td> <!-- entry_type -->
6075
6076 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006077 <p>GPS coordinates to include in output JPEG
6078EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006079 </td>
6080
6081 <td class="entry_units">
6082 </td>
6083
6084 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006085 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006086 </td>
6087
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006088 <td class="entry_tags">
6089 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006090 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006091 </ul>
6092 </td>
6093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006094 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006095
6096
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006097 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6098 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006099
6100
6101 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006102 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006103 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006104 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006105 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006106 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006107
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006108 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006109
6110
6111 </td> <!-- entry_type -->
6112
6113 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006114 <p>32 characters describing GPS algorithm to
6115include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006116 </td>
6117
6118 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006119 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006120 </td>
6121
6122 <td class="entry_range">
6123 </td>
6124
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006125 <td class="entry_tags">
6126 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006127 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006128 </ul>
6129 </td>
6130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006131 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006132
6133
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006134 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6135 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006136
6137
6138 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006139 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006140 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006141 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006142 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006143 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006144
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006145 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006146
6147
6148 </td> <!-- entry_type -->
6149
6150 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006151 <p>Time GPS fix was made to include in
6152EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006153 </td>
6154
6155 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006156 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006157 </td>
6158
6159 <td class="entry_range">
6160 </td>
6161
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006162 <td class="entry_tags">
6163 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006164 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006165 </ul>
6166 </td>
6167
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006168 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006169
6170
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006171 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6172 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006173
6174
6175 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006176 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006177 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006178 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006179 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006180 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006181
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006182 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006183
6184
6185 </td> <!-- entry_type -->
6186
6187 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006188 <p>Orientation of JPEG image to
6189write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006190 </td>
6191
6192 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006193 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006194 </td>
6195
6196 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006197 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006198 </td>
6199
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006200 <td class="entry_tags">
6201 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006202 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006203 </ul>
6204 </td>
6205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006206 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006207
6208
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006209 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6210 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006211
6212
6213 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006214 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006215 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006216 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006217 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006218 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006219
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006220 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006221
6222
6223 </td> <!-- entry_type -->
6224
6225 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006226 <p>Compression quality of the final JPEG
6227image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006228 </td>
6229
6230 <td class="entry_units">
6231 </td>
6232
6233 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006234 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006235 </td>
6236
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006237 <td class="entry_tags">
6238 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006239 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006240 </ul>
6241 </td>
6242
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006243 </tr>
6244 <tr class="entries_header">
6245 <th class="th_details" colspan="5">Details</th>
6246 </tr>
6247 <tr class="entry_cont">
6248 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006249 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006250 </td>
6251 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006252
6253
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006254 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6255 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006256
6257
6258 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006259 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006260 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006261 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006262 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006263 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006264
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006265 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006266
6267
6268 </td> <!-- entry_type -->
6269
6270 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006271 <p>Compression quality of JPEG
6272thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006273 </td>
6274
6275 <td class="entry_units">
6276 </td>
6277
6278 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006279 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006280 </td>
6281
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006282 <td class="entry_tags">
6283 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006284 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006285 </ul>
6286 </td>
6287
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006288 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006289
6290
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006291 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6292 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006293
6294
6295 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006296 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006297 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006298 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006299 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006300 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006301 <span class="entry_type_container">x</span>
6302
6303 <span class="entry_type_array">
6304 2
6305 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006306 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006307
6308
6309 </td> <!-- entry_type -->
6310
6311 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006312 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006313 </td>
6314
6315 <td class="entry_units">
6316 </td>
6317
6318 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006319 <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 -08006320 </td>
6321
6322 <td class="entry_tags">
6323 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006324 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006325 </ul>
6326 </td>
6327
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006328 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006329 <tr class="entries_header">
6330 <th class="th_details" colspan="5">Details</th>
6331 </tr>
6332 <tr class="entry_cont">
6333 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006334 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6335but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006336<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6337the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006338 </td>
6339 </tr>
6340
6341
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006342 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6343 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006344
6345
6346
6347 <!-- end of kind -->
6348 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006349 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006350
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006351 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006352 <tr>
6353 <th class="th_name">Property Name</th>
6354 <th class="th_type">Type</th>
6355 <th class="th_description">Description</th>
6356 <th class="th_units">Units</th>
6357 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006358 <th class="th_tags">Tags</th>
6359 </tr>
6360 </thead>
6361
6362 <tbody>
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006374 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006375 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006376 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006377 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006378 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006379 <span class="entry_type_container">x</span>
6380
6381 <span class="entry_type_array">
6382 2 x n
6383 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006384 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006385
6386
6387 </td> <!-- entry_type -->
6388
6389 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006390 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006391 </td>
6392
6393 <td class="entry_units">
6394 </td>
6395
6396 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006397 <p>Will include at least one valid resolution,<wbr/> plus
6398(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006399 </td>
6400
6401 <td class="entry_tags">
6402 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006403 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006404 </ul>
6405 </td>
6406
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006407 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006408 <tr class="entries_header">
6409 <th class="th_details" colspan="5">Details</th>
6410 </tr>
6411 <tr class="entry_cont">
6412 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006413 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006414<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006415<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6416If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6417<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006418aspect 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 -08006419The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006420in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006421<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 -08006422one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6423and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006424<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006425</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006426 </td>
6427 </tr>
6428
6429
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006430 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6431 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006432
6433
6434 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006435 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006436 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006437 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006438 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006439 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006440
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006441 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006442
6443
6444 </td> <!-- entry_type -->
6445
6446 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006447 <p>Maximum size in bytes for the compressed
6448JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006449 </td>
6450
6451 <td class="entry_units">
6452 </td>
6453
6454 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006455 <p>Must be large enough to fit any JPEG produced by
6456the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006457 </td>
6458
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006459 <td class="entry_tags">
6460 </td>
6461
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006462 </tr>
6463 <tr class="entries_header">
6464 <th class="th_details" colspan="5">Details</th>
6465 </tr>
6466 <tr class="entry_cont">
6467 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006468 <p>This is used for sizing the gralloc buffers for
6469JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006470 </td>
6471 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006472
6473
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006474 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6475 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006476
6477
6478
6479 <!-- end of kind -->
6480 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006481 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006482
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006483 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006484 <tr>
6485 <th class="th_name">Property Name</th>
6486 <th class="th_type">Type</th>
6487 <th class="th_description">Description</th>
6488 <th class="th_units">Units</th>
6489 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006490 <th class="th_tags">Tags</th>
6491 </tr>
6492 </thead>
6493
6494 <tbody>
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006506 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006507 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006508 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006509 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006510 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006511 <span class="entry_type_container">x</span>
6512
6513 <span class="entry_type_array">
6514 3
6515 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006516 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006517 <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 -08006518
6519
6520 </td> <!-- entry_type -->
6521
6522 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006523 <p>GPS coordinates to include in output JPEG
6524EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006525 </td>
6526
6527 <td class="entry_units">
6528 </td>
6529
6530 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006531 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006532 </td>
6533
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006534 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006535 <ul class="entry_tags">
6536 <li><a href="#tag_BC">BC</a></li>
6537 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006538 </td>
6539
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006540 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006541
6542
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006543 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6544 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006545
6546
6547 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006548 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006549 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006550 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006551 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006552 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006553
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006554 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006555
6556
6557 </td> <!-- entry_type -->
6558
6559 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006560 <p>32 characters describing GPS algorithm to
6561include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006562 </td>
6563
6564 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006565 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006566 </td>
6567
6568 <td class="entry_range">
6569 </td>
6570
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006571 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006572 <ul class="entry_tags">
6573 <li><a href="#tag_BC">BC</a></li>
6574 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006575 </td>
6576
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006577 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006578
6579
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006580 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6581 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006582
6583
6584 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006585 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006586 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006587 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006588 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006589 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006590
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006591 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006592
6593
6594 </td> <!-- entry_type -->
6595
6596 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006597 <p>Time GPS fix was made to include in
6598EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006599 </td>
6600
6601 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006602 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006603 </td>
6604
6605 <td class="entry_range">
6606 </td>
6607
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006608 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006609 <ul class="entry_tags">
6610 <li><a href="#tag_BC">BC</a></li>
6611 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006612 </td>
6613
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006614 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006615
6616
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006617 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6618 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006619
6620
6621 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006622 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006623 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006624 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006625 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006626 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006627
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006628 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006629
6630
6631 </td> <!-- entry_type -->
6632
6633 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006634 <p>Orientation of JPEG image to
6635write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006636 </td>
6637
6638 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006639 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006640 </td>
6641
6642 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006643 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006644 </td>
6645
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006646 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006647 <ul class="entry_tags">
6648 <li><a href="#tag_BC">BC</a></li>
6649 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006650 </td>
6651
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006652 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006653
6654
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006655 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6656 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006657
6658
6659 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006660 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006661 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006662 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006663 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006664 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006665
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006666 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006667
6668
6669 </td> <!-- entry_type -->
6670
6671 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006672 <p>Compression quality of the final JPEG
6673image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006674 </td>
6675
6676 <td class="entry_units">
6677 </td>
6678
6679 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006680 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006681 </td>
6682
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006683 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006684 <ul class="entry_tags">
6685 <li><a href="#tag_BC">BC</a></li>
6686 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006687 </td>
6688
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006689 </tr>
6690 <tr class="entries_header">
6691 <th class="th_details" colspan="5">Details</th>
6692 </tr>
6693 <tr class="entry_cont">
6694 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006695 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006696 </td>
6697 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006698
6699
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006700 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6701 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006702
6703
6704 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006705 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006706 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006707 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006708 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006709 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006710
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006711 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006712
6713
6714 </td> <!-- entry_type -->
6715
6716 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006717 <p>The size of the compressed JPEG image,<wbr/> in
6718bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006719 </td>
6720
6721 <td class="entry_units">
6722 </td>
6723
6724 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006725 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006726 </td>
6727
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006728 <td class="entry_tags">
6729 </td>
6730
6731 </tr>
6732 <tr class="entries_header">
6733 <th class="th_details" colspan="5">Details</th>
6734 </tr>
6735 <tr class="entry_cont">
6736 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006737 <p>If no JPEG output is produced for the request,<wbr/>
6738this must be 0.<wbr/></p>
6739<p>Otherwise,<wbr/> this describes the real size of the compressed
6740JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006741if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6742has <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 -08006743the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6744500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006745 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006746 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006747
6748
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006749 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6750 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006751
6752
6753 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006754 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006755 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006756 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006757 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006758 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006759
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006760 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006761
6762
6763 </td> <!-- entry_type -->
6764
6765 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006766 <p>Compression quality of JPEG
6767thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006768 </td>
6769
6770 <td class="entry_units">
6771 </td>
6772
6773 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006774 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006775 </td>
6776
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006777 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006778 <ul class="entry_tags">
6779 <li><a href="#tag_BC">BC</a></li>
6780 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006781 </td>
6782
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006783 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006784
6785
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006786 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6787 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006788
6789
6790 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006791 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006792 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006793 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006794 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006795 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006796 <span class="entry_type_container">x</span>
6797
6798 <span class="entry_type_array">
6799 2
6800 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006801 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006802
6803
6804 </td> <!-- entry_type -->
6805
6806 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006807 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006808 </td>
6809
6810 <td class="entry_units">
6811 </td>
6812
6813 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006814 <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 -08006815 </td>
6816
6817 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006818 <ul class="entry_tags">
6819 <li><a href="#tag_BC">BC</a></li>
6820 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006821 </td>
6822
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006823 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006824 <tr class="entries_header">
6825 <th class="th_details" colspan="5">Details</th>
6826 </tr>
6827 <tr class="entry_cont">
6828 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006829 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6830but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006831<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6832the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006833 </td>
6834 </tr>
6835
6836
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006837 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6838 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006839
6840
6841
6842 <!-- end of kind -->
6843 </tbody>
6844
6845 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006846 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006847
6848
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006849 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006850
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006851 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006852 <tr>
6853 <th class="th_name">Property Name</th>
6854 <th class="th_type">Type</th>
6855 <th class="th_description">Description</th>
6856 <th class="th_units">Units</th>
6857 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006858 <th class="th_tags">Tags</th>
6859 </tr>
6860 </thead>
6861
6862 <tbody>
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006874 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006875 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006876 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006877 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006878 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006879
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006880 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006881
6882
6883 </td> <!-- entry_type -->
6884
6885 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006886 <p>The ratio of lens focal length to the effective
6887aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006888 </td>
6889
6890 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006891 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006892 </td>
6893
6894 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006895 <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 -08006896 </td>
6897
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006898 <td class="entry_tags">
6899 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006900 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006901 </ul>
6902 </td>
6903
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006904 </tr>
6905 <tr class="entries_header">
6906 <th class="th_details" colspan="5">Details</th>
6907 </tr>
6908 <tr class="entry_cont">
6909 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006910 <p>This will only be supported on the camera devices that
6911have variable aperture lens.<wbr/> The aperture value can only be
6912one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6913<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6914this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6915<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6916to achieve manual exposure control.<wbr/></p>
6917<p>The requested aperture value may take several frames to reach the
6918requested value; the camera device will report the current (intermediate)
6919aperture size in capture result metadata while the aperture is changing.<wbr/></p>
6920<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6921the ON modes,<wbr/> this will be overridden by the camera device
6922auto-exposure algorithm,<wbr/> the overridden values are then provided
6923back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006924 </td>
6925 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006926
6927
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006928 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6929 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006930
6931
6932 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006933 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006934 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006935 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006936 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006937 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006938
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006939 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006940
6941
6942 </td> <!-- entry_type -->
6943
6944 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006945 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006946 </td>
6947
6948 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006949 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006950 </td>
6951
6952 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006953 <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 -08006954 </td>
6955
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006956 <td class="entry_tags">
6957 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006958 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006959 </ul>
6960 </td>
6961
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006962 </tr>
6963 <tr class="entries_header">
6964 <th class="th_details" colspan="5">Details</th>
6965 </tr>
6966 <tr class="entry_cont">
6967 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006968 <p>This will not be supported on most camera devices.<wbr/> On devices
6969where this is supported,<wbr/> this may only be set to one of the
6970values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
6971<p>Lens filters are typically used to lower the amount of light the
6972sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
6973step is the standard logarithmic representation,<wbr/> which are
6974non-negative,<wbr/> and inversely proportional to the amount of light
6975hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
6976in no reduction of the incoming light,<wbr/> and setting this to 2 would
6977mean that the filter is set to reduce incoming light by two stops
6978(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006979 </td>
6980 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006981
6982
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006983 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6984 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006985
6986
6987 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006988 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006989 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006990 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006991 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006992 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006993
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006994 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006995
6996
6997 </td> <!-- entry_type -->
6998
6999 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007000 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007001 </td>
7002
7003 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007004 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007005 </td>
7006
7007 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007008 <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 -08007009 </td>
7010
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007011 <td class="entry_tags">
7012 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007013 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007014 </ul>
7015 </td>
7016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007017 </tr>
7018 <tr class="entries_header">
7019 <th class="th_details" colspan="5">Details</th>
7020 </tr>
7021 <tr class="entry_cont">
7022 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007023 <p>This setting controls the physical focal length of the camera
7024device's lens.<wbr/> Changing the focal length changes the field of
7025view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7026<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
7027setting won't be applied instantaneously,<wbr/> and it may take several
7028frames before the lens can move to the requested focal length.<wbr/>
7029While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7030be set to MOVING.<wbr/></p>
7031<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007032 </td>
7033 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007034
7035
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007036 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7037 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007038
7039
7040 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007041 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007042 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007043 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007044 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007045 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007046
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007047 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007048
7049
7050 </td> <!-- entry_type -->
7051
7052 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007053 <p>Distance to plane of sharpest focus,<wbr/>
7054measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007055 </td>
7056
7057 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007058 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007059 </td>
7060
7061 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007062 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007063 </td>
7064
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007065 <td class="entry_tags">
7066 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007067 <li><a href="#tag_BC">BC</a></li>
7068 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007069 </ul>
7070 </td>
7071
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007072 </tr>
7073 <tr class="entries_header">
7074 <th class="th_details" colspan="5">Details</th>
7075 </tr>
7076 <tr class="entry_cont">
7077 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007078 <p>0 = infinity focus.<wbr/> Used value should be clamped
7079to (0,<wbr/>minimum focus distance)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007080 </td>
7081 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007082
7083
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007084 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7085 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007086
7087
7088 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007089 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007090 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007091 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007092 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007093 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007094
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007095 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007096
7097 <ul class="entry_type_enum">
7098 <li>
7099 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007100 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007101 </li>
7102 <li>
7103 <span class="entry_type_enum_name">ON</span>
7104 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007105 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007106 </li>
7107 </ul>
7108
7109 </td> <!-- entry_type -->
7110
7111 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007112 <p>Sets whether the camera device uses optical image stabilization (OIS)
7113when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007114 </td>
7115
7116 <td class="entry_units">
7117 </td>
7118
7119 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007120 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007121 </td>
7122
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007123 <td class="entry_tags">
7124 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007125 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007126 </ul>
7127 </td>
7128
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007129 </tr>
7130 <tr class="entries_header">
7131 <th class="th_details" colspan="5">Details</th>
7132 </tr>
7133 <tr class="entry_cont">
7134 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007135 <p>OIS is used to compensate for motion blur due to small movements of
7136the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7137use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7138allows for longer exposure times before camera shake becomes
7139apparent.<wbr/></p>
7140<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007141 </td>
7142 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007143
7144
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007145 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7146 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007147
7148
7149
7150 <!-- end of kind -->
7151 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007152 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007153
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007154 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007155 <tr>
7156 <th class="th_name">Property Name</th>
7157 <th class="th_type">Type</th>
7158 <th class="th_description">Description</th>
7159 <th class="th_units">Units</th>
7160 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007161 <th class="th_tags">Tags</th>
7162 </tr>
7163 </thead>
7164
7165 <tbody>
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007179 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007180 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007181 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007182 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007183 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007184 <span class="entry_type_container">x</span>
7185
7186 <span class="entry_type_array">
7187 n
7188 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007189 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007190
7191
7192 </td> <!-- entry_type -->
7193
7194 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007195 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007196values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007197 </td>
7198
7199 <td class="entry_units">
7200 </td>
7201
7202 <td class="entry_range">
Zhijun He1b58d382014-01-10 10:22:53 -08007203 <p>one entry required,<wbr/> &amp;&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007204 </td>
7205
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007206 <td class="entry_tags">
7207 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007208 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007209 </ul>
7210 </td>
7211
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007212 </tr>
7213 <tr class="entries_header">
7214 <th class="th_details" colspan="5">Details</th>
7215 </tr>
7216 <tr class="entry_cont">
7217 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007218 <p>If the camera device doesn't support variable apertures,<wbr/>
7219listed value will be the fixed aperture.<wbr/></p>
7220<p>If the camera device supports variable apertures,<wbr/> the aperture value
7221in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007222 </td>
7223 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007224
7225
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007226 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7227 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007228
7229
7230 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007231 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007232 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007233 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007234 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007235 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007236 <span class="entry_type_container">x</span>
7237
7238 <span class="entry_type_array">
7239 n
7240 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007241 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007242
7243
7244 </td> <!-- entry_type -->
7245
7246 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007247 <p>List of supported neutral density filter values for
7248<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007249 </td>
7250
7251 <td class="entry_units">
7252 </td>
7253
7254 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007255 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007256 </td>
7257
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007258 <td class="entry_tags">
7259 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007260 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007261 </ul>
7262 </td>
7263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007264 </tr>
7265 <tr class="entries_header">
7266 <th class="th_details" colspan="5">Details</th>
7267 </tr>
7268 <tr class="entry_cont">
7269 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007270 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7271availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7272list contains only the exact filter density values available on
7273this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007274 </td>
7275 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007276
7277
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007278 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7279 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007280
7281
7282 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007283 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007284 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007285 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007286 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007287 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007288 <span class="entry_type_container">x</span>
7289
7290 <span class="entry_type_array">
7291 n
7292 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007293 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007294 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007295
7296
7297 </td> <!-- entry_type -->
7298
7299 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007300 <p>The available focal lengths for this device for use with
7301<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007302 </td>
7303
7304 <td class="entry_units">
7305 </td>
7306
7307 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007308 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7309contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007310 </td>
7311
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007312 <td class="entry_tags">
7313 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007314 <li><a href="#tag_BC">BC</a></li>
7315 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007316 </ul>
7317 </td>
7318
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007319 </tr>
7320 <tr class="entries_header">
7321 <th class="th_details" colspan="5">Details</th>
7322 </tr>
7323 <tr class="entry_cont">
7324 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007325 <p>If optical zoom is not supported,<wbr/> this will only report
7326a single value corresponding to the static focal length of the
7327device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7328by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007329 </td>
7330 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007331
7332
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007333 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7334 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007335
7336
7337 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007338 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007339 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007340 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007341 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007342 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007343 <span class="entry_type_container">x</span>
7344
7345 <span class="entry_type_array">
7346 n
7347 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007348 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007349 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007350
7351
7352 </td> <!-- entry_type -->
7353
7354 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007355 <p>List containing a subset of the optical image
7356stabilization (OIS) modes specified in
7357<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007358 </td>
7359
7360 <td class="entry_units">
7361 </td>
7362
7363 <td class="entry_range">
7364 </td>
7365
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007366 <td class="entry_tags">
7367 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007368 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007369 </ul>
7370 </td>
7371
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007372 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007373 <tr class="entries_header">
7374 <th class="th_details" colspan="5">Details</th>
7375 </tr>
7376 <tr class="entry_cont">
7377 <td class="entry_details" colspan="5">
7378 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7379contain only OFF.<wbr/></p>
7380 </td>
7381 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007382
7383
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007384 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7385 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007386
7387
7388 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007389 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007390 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007391 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007392 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007393 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007394 <span class="entry_type_container">x</span>
7395
7396 <span class="entry_type_array">
7397 2 x 3 x n x m
7398 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007399 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007400 <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 -08007401
7402
7403 </td> <!-- entry_type -->
7404
7405 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007406 <p>A low-resolution map for correction of
7407geometric distortions and chromatic aberrations,<wbr/> per
7408color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007409 </td>
7410
7411 <td class="entry_units">
7412 </td>
7413
7414 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007415 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007416 </td>
7417
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007418 <td class="entry_tags">
7419 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007420 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007421 </ul>
7422 </td>
7423
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007424 </tr>
7425 <tr class="entries_header">
7426 <th class="th_details" colspan="5">Details</th>
7427 </tr>
7428 <tr class="entry_cont">
7429 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007430 <p>[DNG wants a function instead].<wbr/> What's easiest
7431for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7432j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7433j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7434entry 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 -08007435 </td>
7436 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007437
7438
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007439 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7440 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007441
7442
7443 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007444 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007445 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007446 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007447 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007448 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007449 <span class="entry_type_container">x</span>
7450
7451 <span class="entry_type_array">
7452 2
7453 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007454 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007455 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007456
7457
7458 </td> <!-- entry_type -->
7459
7460 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007461 <p>Dimensions of geometric correction
7462map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007463 </td>
7464
7465 <td class="entry_units">
7466 </td>
7467
7468 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007469 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007470 </td>
7471
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007472 <td class="entry_tags">
7473 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007474 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007475 </ul>
7476 </td>
7477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007478 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007479
7480
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007481 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7482 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007483
7484
7485 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007486 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007487 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007488 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007489 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007490 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007491
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007492 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007493
7494
7495 </td> <!-- entry_type -->
7496
7497 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007498 <p>Hyperfocal distance for this lens; set to
74990 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007500 </td>
7501
7502 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007503 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007504 </td>
7505
7506 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007507 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007508 </td>
7509
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007510 <td class="entry_tags">
7511 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007512 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007513 </ul>
7514 </td>
7515
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007516 </tr>
7517 <tr class="entries_header">
7518 <th class="th_details" colspan="5">Details</th>
7519 </tr>
7520 <tr class="entry_cont">
7521 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007522 <p>The hyperfocal distance is used for the old
7523API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007524 </td>
7525 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007526
7527
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007528 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7529 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007530
7531
7532 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007533 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007534 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007535 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007536 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007537 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007538
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007539 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007540
7541
7542 </td> <!-- entry_type -->
7543
7544 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007545 <p>Shortest distance from frontmost surface
7546of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007547 </td>
7548
7549 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007550 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007551 </td>
7552
7553 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007554 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007555 </td>
7556
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007557 <td class="entry_tags">
7558 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007559 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007560 </ul>
7561 </td>
7562
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007563 </tr>
7564 <tr class="entries_header">
7565 <th class="th_details" colspan="5">Details</th>
7566 </tr>
7567 <tr class="entry_cont">
7568 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007569 <p>If the lens is fixed-focus,<wbr/> this should be
75700</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007571 </td>
7572 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007573
7574
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007575 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7576 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007577
7578
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007579 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007580 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007581 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007582 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007583 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007584 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007585 <span class="entry_type_container">x</span>
7586
7587 <span class="entry_type_array">
7588 2
7589 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007590 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007591 <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 -08007592
7593
7594 </td> <!-- entry_type -->
7595
7596 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007597 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007598 </td>
7599
7600 <td class="entry_units">
7601 </td>
7602
7603 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007604 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007605 </td>
7606
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007607 <td class="entry_tags">
7608 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007609 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007610 </ul>
7611 </td>
7612
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007613 </tr>
7614 <tr class="entries_header">
7615 <th class="th_details" colspan="5">Details</th>
7616 </tr>
7617 <tr class="entry_cont">
7618 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007619 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7620must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007621 </td>
7622 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007623
7624
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007625 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7626 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007627
7628
7629
7630
7631
7632 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007633 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007634 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007635 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007636 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007637 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007638
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007639 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007640
7641 <ul class="entry_type_enum">
7642 <li>
7643 <span class="entry_type_enum_name">FRONT</span>
7644 </li>
7645 <li>
7646 <span class="entry_type_enum_name">BACK</span>
7647 </li>
7648 </ul>
7649
7650 </td> <!-- entry_type -->
7651
7652 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007653 <p>Direction the camera faces relative to
7654device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007655 </td>
7656
7657 <td class="entry_units">
7658 </td>
7659
7660 <td class="entry_range">
7661 </td>
7662
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007663 <td class="entry_tags">
7664 </td>
7665
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007666 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007667
7668
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007669 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7670 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007671
7672
7673 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007674 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007675 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007676 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007677 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007678 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007679 <span class="entry_type_container">x</span>
7680
7681 <span class="entry_type_array">
7682 2
7683 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007684 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007685 <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 -08007686
7687
7688 </td> <!-- entry_type -->
7689
7690 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007691 <p>Relative angle of camera optical axis to the
7692perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007693 </td>
7694
7695 <td class="entry_units">
7696 </td>
7697
7698 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007699 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007700 </td>
7701
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007702 <td class="entry_tags">
7703 <ul class="entry_tags">
7704 <li><a href="#tag_ADV">ADV</a></li>
7705 </ul>
7706 </td>
7707
7708 </tr>
7709 <tr class="entries_header">
7710 <th class="th_details" colspan="5">Details</th>
7711 </tr>
7712 <tr class="entry_cont">
7713 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007714 <p>Examples:</p>
7715<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007716is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007717<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007718device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007719<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7720the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007721<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007722direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007723 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007724 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007725
7726
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007727 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7728 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007729
7730
7731 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007732 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007733 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007734 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007735 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007736 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007737 <span class="entry_type_container">x</span>
7738
7739 <span class="entry_type_array">
7740 3, location in mm, in the sensor coordinate
7741 system
7742 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007743 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007744
7745
7746 </td> <!-- entry_type -->
7747
7748 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007749 <p>Coordinates of camera optical axis on
7750device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007751 </td>
7752
7753 <td class="entry_units">
7754 </td>
7755
7756 <td class="entry_range">
7757 </td>
7758
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007759 <td class="entry_tags">
7760 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007761 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007762 </ul>
7763 </td>
7764
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007765 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007766
7767
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007768 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7769 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007770
7771
7772
7773 <!-- end of kind -->
7774 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007775 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007776
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007777 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007778 <tr>
7779 <th class="th_name">Property Name</th>
7780 <th class="th_type">Type</th>
7781 <th class="th_description">Description</th>
7782 <th class="th_units">Units</th>
7783 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007784 <th class="th_tags">Tags</th>
7785 </tr>
7786 </thead>
7787
7788 <tbody>
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007800 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007801 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007802 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007803 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007804 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007805
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007806 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007807
7808
7809 </td> <!-- entry_type -->
7810
7811 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007812 <p>The ratio of lens focal length to the effective
7813aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007814 </td>
7815
7816 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007817 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007818 </td>
7819
7820 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007821 <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 -08007822 </td>
7823
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007824 <td class="entry_tags">
7825 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007826 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007827 </ul>
7828 </td>
7829
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007830 </tr>
7831 <tr class="entries_header">
7832 <th class="th_details" colspan="5">Details</th>
7833 </tr>
7834 <tr class="entry_cont">
7835 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007836 <p>This will only be supported on the camera devices that
7837have variable aperture lens.<wbr/> The aperture value can only be
7838one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7839<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7840this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7841<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7842to achieve manual exposure control.<wbr/></p>
7843<p>The requested aperture value may take several frames to reach the
7844requested value; the camera device will report the current (intermediate)
7845aperture size in capture result metadata while the aperture is changing.<wbr/></p>
7846<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7847the ON modes,<wbr/> this will be overridden by the camera device
7848auto-exposure algorithm,<wbr/> the overridden values are then provided
7849back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007850 </td>
7851 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007852
7853
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007854 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7855 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007856
7857
7858 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007859 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007860 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007861 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007862 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007863 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007864
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007865 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007866
7867
7868 </td> <!-- entry_type -->
7869
7870 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007871 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007872 </td>
7873
7874 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007875 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007876 </td>
7877
7878 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007879 <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 -08007880 </td>
7881
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007882 <td class="entry_tags">
7883 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007884 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007885 </ul>
7886 </td>
7887
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007888 </tr>
7889 <tr class="entries_header">
7890 <th class="th_details" colspan="5">Details</th>
7891 </tr>
7892 <tr class="entry_cont">
7893 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007894 <p>This will not be supported on most camera devices.<wbr/> On devices
7895where this is supported,<wbr/> this may only be set to one of the
7896values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7897<p>Lens filters are typically used to lower the amount of light the
7898sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7899step is the standard logarithmic representation,<wbr/> which are
7900non-negative,<wbr/> and inversely proportional to the amount of light
7901hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7902in no reduction of the incoming light,<wbr/> and setting this to 2 would
7903mean that the filter is set to reduce incoming light by two stops
7904(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007905 </td>
7906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007907
7908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007911
7912
7913 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007915 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007918 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007919
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007920 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007921
7922
7923 </td> <!-- entry_type -->
7924
7925 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007926 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007927 </td>
7928
7929 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007930 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007931 </td>
7932
7933 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007934 <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 -08007935 </td>
7936
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007937 <td class="entry_tags">
7938 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007939 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007940 </ul>
7941 </td>
7942
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007943 </tr>
7944 <tr class="entries_header">
7945 <th class="th_details" colspan="5">Details</th>
7946 </tr>
7947 <tr class="entry_cont">
7948 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007949 <p>This setting controls the physical focal length of the camera
7950device's lens.<wbr/> Changing the focal length changes the field of
7951view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7952<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
7953setting won't be applied instantaneously,<wbr/> and it may take several
7954frames before the lens can move to the requested focal length.<wbr/>
7955While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7956be set to MOVING.<wbr/></p>
7957<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007958 </td>
7959 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007960
7961
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007962 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7963 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007964
7965
7966 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007967 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007968 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007969 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007970 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007971 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007972
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007973 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007974
7975
7976 </td> <!-- entry_type -->
7977
7978 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007979 <p>Distance to plane of sharpest focus,<wbr/>
7980measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007981 </td>
7982
7983 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007984 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007985 </td>
7986
7987 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007988 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007989 </td>
7990
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007991 <td class="entry_tags">
7992 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007993 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007994 </ul>
7995 </td>
7996
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007997 </tr>
7998 <tr class="entries_header">
7999 <th class="th_details" colspan="5">Details</th>
8000 </tr>
8001 <tr class="entry_cont">
8002 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008003 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008004 </td>
8005 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008006
8007
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008008 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8009 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008010
8011
8012 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008013 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008014 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008015 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008016 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008017 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008018 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008019
Zhijun He50451ad2013-09-26 10:27:47 -07008020 <span class="entry_type_array">
8021 2
8022 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008023 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008024 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008025
8026
8027 </td> <!-- entry_type -->
8028
8029 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008030 <p>The range of scene distances that are in
8031sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008032 </td>
8033
8034 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008035 pair of focus distances in diopters: (near,<wbr/>
8036 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008037 </td>
8038
8039 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008040 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008041 </td>
8042
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008043 <td class="entry_tags">
8044 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008045 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008046 </ul>
8047 </td>
8048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008049 </tr>
8050 <tr class="entries_header">
8051 <th class="th_details" colspan="5">Details</th>
8052 </tr>
8053 <tr class="entry_cont">
8054 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008055 <p>If variable focus not supported,<wbr/> can still report
8056fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008057 </td>
8058 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008059
8060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008061 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8062 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008063
8064
8065 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008066 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008067 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008068 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008069 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008070 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008071
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008072 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008073
8074 <ul class="entry_type_enum">
8075 <li>
8076 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008077 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008078 </li>
8079 <li>
8080 <span class="entry_type_enum_name">ON</span>
8081 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008082 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008083 </li>
8084 </ul>
8085
8086 </td> <!-- entry_type -->
8087
8088 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008089 <p>Sets whether the camera device uses optical image stabilization (OIS)
8090when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008091 </td>
8092
8093 <td class="entry_units">
8094 </td>
8095
8096 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008097 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008098 </td>
8099
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008100 <td class="entry_tags">
8101 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008102 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008103 </ul>
8104 </td>
8105
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008106 </tr>
8107 <tr class="entries_header">
8108 <th class="th_details" colspan="5">Details</th>
8109 </tr>
8110 <tr class="entry_cont">
8111 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008112 <p>OIS is used to compensate for motion blur due to small movements of
8113the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8114use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8115allows for longer exposure times before camera shake becomes
8116apparent.<wbr/></p>
8117<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008118 </td>
8119 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008120
8121
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008122 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8123 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008124
8125
8126 <tr class="entry" id="dynamic_android.lens.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008127 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008128 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008129 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008130 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008131 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008132
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008133 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008134
8135 <ul class="entry_type_enum">
8136 <li>
8137 <span class="entry_type_enum_name">STATIONARY</span>
8138 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008139 <li>
8140 <span class="entry_type_enum_name">MOVING</span>
8141 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008142 </ul>
8143
8144 </td> <!-- entry_type -->
8145
8146 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008147 <p>Current lens status</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008148 </td>
8149
8150 <td class="entry_units">
8151 </td>
8152
8153 <td class="entry_range">
8154 </td>
8155
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008156 <td class="entry_tags">
8157 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008158 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008159 </ul>
8160 </td>
8161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008162 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008163
8164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008165 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8166 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008167
8168
8169
8170 <!-- end of kind -->
8171 </tbody>
8172
8173 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008174 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008175
8176
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008177 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008178
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008179 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008180 <tr>
8181 <th class="th_name">Property Name</th>
8182 <th class="th_type">Type</th>
8183 <th class="th_description">Description</th>
8184 <th class="th_units">Units</th>
8185 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008186 <th class="th_tags">Tags</th>
8187 </tr>
8188 </thead>
8189
8190 <tbody>
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008202 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008203 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008204 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008205 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008206 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008207
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008208 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008209
8210 <ul class="entry_type_enum">
8211 <li>
8212 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008213 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008214 </li>
8215 <li>
8216 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008217 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8218output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008219 </li>
8220 <li>
8221 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008222 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8223quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008224 </li>
8225 </ul>
8226
8227 </td> <!-- entry_type -->
8228
8229 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008230 <p>Mode of operation for the noise reduction
8231algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008232 </td>
8233
8234 <td class="entry_units">
8235 </td>
8236
8237 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008238 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008239 </td>
8240
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008241 <td class="entry_tags">
8242 <ul class="entry_tags">
8243 <li><a href="#tag_V1">V1</a></li>
8244 </ul>
8245 </td>
8246
8247 </tr>
8248 <tr class="entries_header">
8249 <th class="th_details" colspan="5">Details</th>
8250 </tr>
8251 <tr class="entry_cont">
8252 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008253 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8254will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008255<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8256will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8257will use the highest-quality noise filtering algorithms,<wbr/>
8258even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008259slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008260 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008261 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008262
8263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008264 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8265 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008266
8267
8268 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008269 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008270 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008271 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008272 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008273 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008274
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008275 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008276
8277
8278 </td> <!-- entry_type -->
8279
8280 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008281 <p>Control the amount of noise reduction
8282applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008283 </td>
8284
8285 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008286 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008287 </td>
8288
8289 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008290 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008291 </td>
8292
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008293 <td class="entry_tags">
8294 </td>
8295
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008296 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008297
8298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008299 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8300 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008301
8302
8303
8304 <!-- end of kind -->
8305 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008306 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008307
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008308 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008309 <tr>
8310 <th class="th_name">Property Name</th>
8311 <th class="th_type">Type</th>
8312 <th class="th_description">Description</th>
8313 <th class="th_units">Units</th>
8314 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008315 <th class="th_tags">Tags</th>
8316 </tr>
8317 </thead>
8318
8319 <tbody>
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008331 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008332 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008333 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008334 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008335 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008336
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008337 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008338
8339 <ul class="entry_type_enum">
8340 <li>
8341 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008342 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008343 </li>
8344 <li>
8345 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008346 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8347output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008348 </li>
8349 <li>
8350 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008351 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8352quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008353 </li>
8354 </ul>
8355
8356 </td> <!-- entry_type -->
8357
8358 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008359 <p>Mode of operation for the noise reduction
8360algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008361 </td>
8362
8363 <td class="entry_units">
8364 </td>
8365
8366 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008367 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008368 </td>
8369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008370 <td class="entry_tags">
8371 <ul class="entry_tags">
8372 <li><a href="#tag_V1">V1</a></li>
8373 </ul>
8374 </td>
8375
8376 </tr>
8377 <tr class="entries_header">
8378 <th class="th_details" colspan="5">Details</th>
8379 </tr>
8380 <tr class="entry_cont">
8381 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008382 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8383will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008384<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8385will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8386will use the highest-quality noise filtering algorithms,<wbr/>
8387even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008388slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008389 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008390 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008391
8392
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008393 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8394 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008395
8396
8397
8398 <!-- end of kind -->
8399 </tbody>
8400
8401 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008402 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008403
8404
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008405 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008406
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008407 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008408 <tr>
8409 <th class="th_name">Property Name</th>
8410 <th class="th_type">Type</th>
8411 <th class="th_description">Description</th>
8412 <th class="th_units">Units</th>
8413 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008414 <th class="th_tags">Tags</th>
8415 </tr>
8416 </thead>
8417
8418 <tbody>
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008430 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008431 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008432 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008433 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008434 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008435
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008436 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008437
8438
8439 </td> <!-- entry_type -->
8440
8441 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008442 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008443scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008444region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8445and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008446 </td>
8447
8448 <td class="entry_units">
8449 </td>
8450
8451 <td class="entry_range">
8452 </td>
8453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008454 <td class="entry_tags">
8455 </td>
8456
8457 </tr>
8458 <tr class="entries_header">
8459 <th class="th_details" colspan="5">Details</th>
8460 </tr>
8461 <tr class="entry_cont">
8462 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008463 <p>Normalized coordinates refer to those in the
8464(-1000,<wbr/>1000) range mentioned in the
8465android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008466<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008467sensor array-relative coordinates for all region data.<wbr/> Does
8468not need to be listed in static metadata.<wbr/> Support will be
8469removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008470 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008471 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008472
8473
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008474 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8475 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008476
8477
8478 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008479 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008480 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008481 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008482 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008483 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008484
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008485 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008486
8487
8488 </td> <!-- entry_type -->
8489
8490 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008491 <p>If set to 1,<wbr/> then the camera service always
8492switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8493trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008494 </td>
8495
8496 <td class="entry_units">
8497 </td>
8498
8499 <td class="entry_range">
8500 </td>
8501
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008502 <td class="entry_tags">
8503 </td>
8504
8505 </tr>
8506 <tr class="entries_header">
8507 <th class="th_details" colspan="5">Details</th>
8508 </tr>
8509 <tr class="entry_cont">
8510 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008511 <p>HAL implementations should implement AF trigger
8512modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8513CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8514not need to be listed in static metadata.<wbr/> Support will be
8515removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008516 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008517 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008518
8519
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008520 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8521 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008522
8523
8524 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008525 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008526 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008527 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008528 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008529 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008530
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008531 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008532
8533
8534 </td> <!-- entry_type -->
8535
8536 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008537 <p>If set to 1,<wbr/> the camera service uses
8538CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8539HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8540shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008541 </td>
8542
8543 <td class="entry_units">
8544 </td>
8545
8546 <td class="entry_range">
8547 </td>
8548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008549 <td class="entry_tags">
8550 </td>
8551
8552 </tr>
8553 <tr class="entries_header">
8554 <th class="th_details" colspan="5">Details</th>
8555 </tr>
8556 <tr class="entry_cont">
8557 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008558 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008559to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008560zero-shutter-lag,<wbr/> instead of relying on an explicit
8561format setting.<wbr/> Does not need to be listed in static
8562metadata.<wbr/> Support will be removed in future versions of
8563camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008564 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008565 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008566
8567
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008568 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8569 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008570
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008571
8572 <tr class="entry" id="static_android.quirks.usePartialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008573 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008574 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008575 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008576 <td class="entry_type">
8577 <span class="entry_type_name">byte</span>
8578
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008579 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008580
8581
8582 </td> <!-- entry_type -->
8583
8584 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008585 <p>If set to 1,<wbr/> the HAL will always split result
8586metadata for a single capture into multiple buffers,<wbr/>
8587returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008588 </td>
8589
8590 <td class="entry_units">
8591 </td>
8592
8593 <td class="entry_range">
8594 </td>
8595
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008596 <td class="entry_tags">
8597 </td>
8598
8599 </tr>
8600 <tr class="entries_header">
8601 <th class="th_details" colspan="5">Details</th>
8602 </tr>
8603 <tr class="entry_cont">
8604 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008605 <p>Does not need to be listed in static
8606metadata.<wbr/> Support for partial results will be reworked in
8607future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008608working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008609consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008610 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008611 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008612
8613
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008614 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8615 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008616
8617
8618
8619 <!-- end of kind -->
8620 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008621 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008622
8623 <thead class="entries_header">
8624 <tr>
8625 <th class="th_name">Property Name</th>
8626 <th class="th_type">Type</th>
8627 <th class="th_description">Description</th>
8628 <th class="th_units">Units</th>
8629 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008630 <th class="th_tags">Tags</th>
8631 </tr>
8632 </thead>
8633
8634 <tbody>
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645 <tr class="entry" id="dynamic_android.quirks.partialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008646 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008647 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008648 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008649 <td class="entry_type">
8650 <span class="entry_type_name entry_type_name_enum">byte</span>
8651
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008652 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008653
8654 <ul class="entry_type_enum">
8655 <li>
8656 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008657 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8658for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008659 </li>
8660 <li>
8661 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008662 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8663capture.<wbr/> More result buffers for this capture will be sent
8664by the HAL,<wbr/> the last of which will be marked
8665FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008666 </li>
8667 </ul>
8668
8669 </td> <!-- entry_type -->
8670
8671 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008672 <p>Whether a result given to the framework is the
8673final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008674subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008675values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008676 </td>
8677
8678 <td class="entry_units">
8679 </td>
8680
8681 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008682 <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008683 </td>
8684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008685 <td class="entry_tags">
8686 </td>
8687
8688 </tr>
8689 <tr class="entries_header">
8690 <th class="th_details" colspan="5">Details</th>
8691 </tr>
8692 <tr class="entry_cont">
8693 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008694 <p>The entries in the result metadata buffers for a
8695single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008696FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008697requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8698always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8699before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8700in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8701capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8702only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008703 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008704 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008705
8706
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008707 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8708 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008709
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008710
8711
8712 <!-- end of kind -->
8713 </tbody>
8714
8715 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008716 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008717
8718
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008719 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008720
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008721 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008722 <tr>
8723 <th class="th_name">Property Name</th>
8724 <th class="th_type">Type</th>
8725 <th class="th_description">Description</th>
8726 <th class="th_units">Units</th>
8727 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008728 <th class="th_tags">Tags</th>
8729 </tr>
8730 </thead>
8731
8732 <tbody>
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008744 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008745 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008746 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008747 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008748 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008749
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008750 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008751
8752
8753 </td> <!-- entry_type -->
8754
8755 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008756 <p>A frame counter set by the framework.<wbr/> Must
8757be maintained unchanged in output frame.<wbr/> This value monotonically
8758increases with every new result (that is,<wbr/> each new result has a unique
8759frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008760 </td>
8761
8762 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008763 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008764 </td>
8765
8766 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008767 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008768 </td>
8769
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008770 <td class="entry_tags">
8771 </td>
8772
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008773 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008774
8775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008776 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8777 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008778
8779
8780 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008781 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008782 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008783 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008784 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008785 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008786
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008787 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008788
8789
8790 </td> <!-- entry_type -->
8791
8792 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008793 <p>An application-specified ID for the current
8794request.<wbr/> Must be maintained unchanged in output
8795frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008796 </td>
8797
8798 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008799 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008800 </td>
8801
8802 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008803 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008804 </td>
8805
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008806 <td class="entry_tags">
8807 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008808 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008809 </ul>
8810 </td>
8811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008812 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008813
8814
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008815 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8816 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008817
8818
8819 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008820 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008821 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008822 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008823 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008824 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008825 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008826
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008827 <span class="entry_type_array">
8828 n
8829 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008830 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008831
8832
8833 </td> <!-- entry_type -->
8834
8835 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008836 <p>List which camera reprocess stream is used
8837for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008838 </td>
8839
8840 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008841 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008842 </td>
8843
8844 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008845 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid
8846reprocess stream ID.<wbr/></p>
8847<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8848reprocess streams may be included in a single request; they
8849must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008850 </td>
8851
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008852 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008853 <ul class="entry_tags">
8854 <li><a href="#tag_HAL2">HAL2</a></li>
8855 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008856 </td>
8857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008858 </tr>
8859 <tr class="entries_header">
8860 <th class="th_details" colspan="5">Details</th>
8861 </tr>
8862 <tr class="entry_cont">
8863 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008864 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008865REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008866 </td>
8867 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008868
8869
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8871 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008872
8873
8874 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008875 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008876 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008877 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008878 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008879 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008880
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008881 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008882
8883 <ul class="entry_type_enum">
8884 <li>
8885 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008886 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8887for application-bound buffer data.<wbr/> If no
8888application-bound streams exist,<wbr/> no frame should be
8889placed in the output frame queue.<wbr/> If such streams
8890exist,<wbr/> a frame should be placed on the output queue
8891with null metadata but with the necessary output buffer
8892information.<wbr/> Timestamp information should still be
8893included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008894 </li>
8895 <li>
8896 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008897 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8898only be produced if they are separately
8899enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008900 </li>
8901 </ul>
8902
8903 </td> <!-- entry_type -->
8904
8905 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008906 <p>How much metadata to produce on
8907output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008908 </td>
8909
8910 <td class="entry_units">
8911 </td>
8912
8913 <td class="entry_range">
8914 </td>
8915
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008916 <td class="entry_tags">
8917 </td>
8918
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008919 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008920
8921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008922 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8923 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008924
8925
8926 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008927 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008928 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008929 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008930 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008931 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008932 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008933
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008934 <span class="entry_type_array">
8935 n
8936 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008937 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008938
8939
8940 </td> <!-- entry_type -->
8941
8942 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008943 <p>Lists which camera output streams image data
8944from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008945 </td>
8946
8947 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008948 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008949 </td>
8950
8951 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008952 <p>List must only include streams that have been
8953created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008954 </td>
8955
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008956 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008957 <ul class="entry_tags">
8958 <li><a href="#tag_HAL2">HAL2</a></li>
8959 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008960 </td>
8961
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008962 </tr>
8963 <tr class="entries_header">
8964 <th class="th_details" colspan="5">Details</th>
8965 </tr>
8966 <tr class="entry_cont">
8967 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008968 <p>If no output streams are listed,<wbr/> then the image
8969data should simply be discarded.<wbr/> The image data must
8970still be captured for metadata and statistics production,<wbr/>
8971and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008972 </td>
8973 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008974
8975
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008976 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8977 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008978
8979
8980 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008981 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008982 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008983 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008984 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008985 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008986
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008987 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008988
8989 <ul class="entry_type_enum">
8990 <li>
8991 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008992 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
8993and process it according to the
8994settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008995 </li>
8996 <li>
8997 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008998 <span class="entry_type_enum_notes"><p>Process previously captured data; the
8999android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9000source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9001needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009002 </li>
9003 </ul>
9004
9005 </td> <!-- entry_type -->
9006
9007 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009008 <p>The type of the request; either CAPTURE or
9009REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009010 </td>
9011
9012 <td class="entry_units">
9013 </td>
9014
9015 <td class="entry_range">
9016 </td>
9017
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009018 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009019 <ul class="entry_tags">
9020 <li><a href="#tag_HAL2">HAL2</a></li>
9021 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009022 </td>
9023
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009024 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009025
9026
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009027 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9028 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009029
9030
9031
9032 <!-- end of kind -->
9033 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009034 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009035
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009036 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009037 <tr>
9038 <th class="th_name">Property Name</th>
9039 <th class="th_type">Type</th>
9040 <th class="th_description">Description</th>
9041 <th class="th_units">Units</th>
9042 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009043 <th class="th_tags">Tags</th>
9044 </tr>
9045 </thead>
9046
9047 <tbody>
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009059 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009060 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009061 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009062 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009063 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009064 <span class="entry_type_container">x</span>
9065
9066 <span class="entry_type_array">
9067 3
9068 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009069 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009070
9071
9072 </td> <!-- entry_type -->
9073
9074 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009075 <p>How many output streams can be allocated at
9076the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009077 </td>
9078
9079 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009080 The number of raw sensor streams; the number of
9081 processed,<wbr/> uncompressed streams; and the number of
9082 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009083 </td>
9084
9085 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009086 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009087for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009088 </td>
9089
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009090 <td class="entry_tags">
9091 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009092 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009093 </ul>
9094 </td>
9095
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009096 </tr>
9097 <tr class="entries_header">
9098 <th class="th_details" colspan="5">Details</th>
9099 </tr>
9100 <tr class="entry_cont">
9101 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009102 <p>Video snapshot with preview callbacks requires 3
9103processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9104one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009105 </td>
9106 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009107
9108
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009109 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9110 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009111
9112
9113 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009114 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009115 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009116 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009117 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009118 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009119 <span class="entry_type_container">x</span>
9120
9121 <span class="entry_type_array">
9122 1
9123 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009124 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009125
9126
9127 </td> <!-- entry_type -->
9128
9129 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009130 <p>How many reprocessing streams of any type
9131can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009132 </td>
9133
9134 <td class="entry_units">
9135 </td>
9136
9137 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009138 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009139 </td>
9140
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009141 <td class="entry_tags">
9142 </td>
9143
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009144 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009145
9146
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009147 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9148 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009149
Igor Murashkina46e02f2014-01-09 17:43:38 -08009150
9151 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9152 <td class="entry_name" rowspan="5">
9153 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9154 </td>
9155 <td class="entry_type">
9156 <span class="entry_type_name">byte</span>
9157
9158 <span class="entry_type_visibility"> [public]</span>
9159
9160
9161 </td> <!-- entry_type -->
9162
9163 <td class="entry_description">
9164 <p>Specifies the number of maximum pipeline stages a frame
9165has to go through from when it's exposed to when it's available
9166to the framework.<wbr/></p>
9167 </td>
9168
9169 <td class="entry_units">
9170 </td>
9171
9172 <td class="entry_range">
9173 </td>
9174
9175 <td class="entry_tags">
9176 </td>
9177
9178 </tr>
9179 <tr class="entries_header">
9180 <th class="th_details" colspan="5">Details</th>
9181 </tr>
9182 <tr class="entry_cont">
9183 <td class="entry_details" colspan="5">
9184 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9185one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9186its own stages to do custom HW processing.<wbr/> Further stages may be
9187added by SW processing.<wbr/></p>
9188<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9189processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9190depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9191the max pipeline depth.<wbr/></p>
9192<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9193X frame intervals.<wbr/></p>
9194<p>This value will be 8 or less.<wbr/></p>
9195 </td>
9196 </tr>
9197
9198 <tr class="entries_header">
9199 <th class="th_details" colspan="5">HAL Implementation Details</th>
9200 </tr>
9201 <tr class="entry_cont">
9202 <td class="entry_details" colspan="5">
9203 <p>This value should be 4 or less.<wbr/></p>
9204 </td>
9205 </tr>
9206
9207 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9208 <!-- end of entry -->
9209
Igor Murashkin2e291102014-01-10 14:18:30 -08009210
9211 <tr class="entry" id="static_android.request.partialResultCount">
9212 <td class="entry_name" rowspan="3">
9213 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9214 </td>
9215 <td class="entry_type">
9216 <span class="entry_type_name">int32</span>
9217
9218 <span class="entry_type_visibility"> [public]</span>
9219
9220
9221 </td> <!-- entry_type -->
9222
9223 <td class="entry_description">
9224 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9225a result will be composed of.<wbr/></p>
9226 </td>
9227
9228 <td class="entry_units">
9229 </td>
9230
9231 <td class="entry_range">
9232 <p>&gt;= 1</p>
9233 </td>
9234
9235 <td class="entry_tags">
9236 </td>
9237
9238 </tr>
9239 <tr class="entries_header">
9240 <th class="th_details" colspan="5">Details</th>
9241 </tr>
9242 <tr class="entry_cont">
9243 <td class="entry_details" colspan="5">
9244 <p>In order to combat the pipeline latency,<wbr/> partial results
9245may be delivered to the application layer from the camera device as
9246soon as they are available.<wbr/></p>
9247<p>A value of 1 means that partial results are not supported.<wbr/></p>
9248<p>A typical use case for this might be: after requesting an AF lock the
9249new AF state might be available 50% of the way through the pipeline.<wbr/>
9250The camera device could then immediately dispatch this state via a
9251partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9252the metadata via later partial results.<wbr/></p>
9253 </td>
9254 </tr>
9255
9256
9257 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9258 <!-- end of entry -->
9259
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009260
9261
9262 <!-- end of kind -->
9263 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009264 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009265
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009266 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009267 <tr>
9268 <th class="th_name">Property Name</th>
9269 <th class="th_type">Type</th>
9270 <th class="th_description">Description</th>
9271 <th class="th_units">Units</th>
9272 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009273 <th class="th_tags">Tags</th>
9274 </tr>
9275 </thead>
9276
9277 <tbody>
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009289 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009290 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009291 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009292 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009293 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009294
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009295 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009296
9297
9298 </td> <!-- entry_type -->
9299
9300 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009301 <p>A frame counter set by the framework.<wbr/> This value monotonically
9302increases with every new result (that is,<wbr/> each new result has a unique
9303frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009304 </td>
9305
9306 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009307 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009308 </td>
9309
9310 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009311 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009312 </td>
9313
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009314 <td class="entry_tags">
9315 </td>
9316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009317 </tr>
9318 <tr class="entries_header">
9319 <th class="th_details" colspan="5">Details</th>
9320 </tr>
9321 <tr class="entry_cont">
9322 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009323 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009324 </td>
9325 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009326
9327
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009328 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9329 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009330
9331
9332 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009333 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009334 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009335 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009336 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009337 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009338
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009339 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009340
9341
9342 </td> <!-- entry_type -->
9343
9344 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009345 <p>An application-specified ID for the current
9346request.<wbr/> Must be maintained unchanged in output
9347frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009348 </td>
9349
9350 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009351 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009352 </td>
9353
9354 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009355 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009356 </td>
9357
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009358 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009359 <ul class="entry_tags">
9360 <li><a href="#tag_V1">V1</a></li>
9361 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009362 </td>
9363
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009364 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009365
9366
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009367 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9368 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009369
9370
9371 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009372 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009373 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009374 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009375 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009376 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009377
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009378 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009379
9380 <ul class="entry_type_enum">
9381 <li>
9382 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009383 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9384for application-bound buffer data.<wbr/> If no
9385application-bound streams exist,<wbr/> no frame should be
9386placed in the output frame queue.<wbr/> If such streams
9387exist,<wbr/> a frame should be placed on the output queue
9388with null metadata but with the necessary output buffer
9389information.<wbr/> Timestamp information should still be
9390included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009391 </li>
9392 <li>
9393 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009394 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9395only be produced if they are separately
9396enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009397 </li>
9398 </ul>
9399
9400 </td> <!-- entry_type -->
9401
9402 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009403 <p>How much metadata to produce on
9404output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009405 </td>
9406
9407 <td class="entry_units">
9408 </td>
9409
9410 <td class="entry_range">
9411 </td>
9412
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009413 <td class="entry_tags">
9414 </td>
9415
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009416 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009417
9418
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009419 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9420 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009421
9422
9423 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009424 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009425 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009426 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009427 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009428 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009429 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009430
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009431 <span class="entry_type_array">
9432 n
9433 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009434 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009435
9436
9437 </td> <!-- entry_type -->
9438
9439 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009440 <p>Lists which camera output streams image data
9441from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009442 </td>
9443
9444 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009445 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009446 </td>
9447
9448 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009449 <p>List must only include streams that have been
9450created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009451 </td>
9452
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009453 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009454 <ul class="entry_tags">
9455 <li><a href="#tag_HAL2">HAL2</a></li>
9456 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009457 </td>
9458
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009459 </tr>
9460 <tr class="entries_header">
9461 <th class="th_details" colspan="5">Details</th>
9462 </tr>
9463 <tr class="entry_cont">
9464 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009465 <p>If no output streams are listed,<wbr/> then the image
9466data should simply be discarded.<wbr/> The image data must
9467still be captured for metadata and statistics production,<wbr/>
9468and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009469 </td>
9470 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009471
9472
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009473 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9474 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009475
Igor Murashkina46e02f2014-01-09 17:43:38 -08009476
9477 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9478 <td class="entry_name" rowspan="5">
9479 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9480 </td>
9481 <td class="entry_type">
9482 <span class="entry_type_name">byte</span>
9483
9484 <span class="entry_type_visibility"> [public]</span>
9485
9486
9487 </td> <!-- entry_type -->
9488
9489 <td class="entry_description">
9490 <p>Specifies the number of pipeline stages the frame went
9491through from when it was exposed to when the final completed result
9492was available to the framework.<wbr/></p>
9493 </td>
9494
9495 <td class="entry_units">
9496 </td>
9497
9498 <td class="entry_range">
9499 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9500 </td>
9501
9502 <td class="entry_tags">
9503 </td>
9504
9505 </tr>
9506 <tr class="entries_header">
9507 <th class="th_details" colspan="5">Details</th>
9508 </tr>
9509 <tr class="entry_cont">
9510 <td class="entry_details" colspan="5">
9511 <p>Depending on what settings are used in the request,<wbr/> and
9512what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9513and some pipeline stages skipped.<wbr/></p>
9514<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9515 </td>
9516 </tr>
9517
9518 <tr class="entries_header">
9519 <th class="th_details" colspan="5">HAL Implementation Details</th>
9520 </tr>
9521 <tr class="entry_cont">
9522 <td class="entry_details" colspan="5">
9523 <p>This value must always represent the accurate count of how many
9524pipeline stages were actually used.<wbr/></p>
9525 </td>
9526 </tr>
9527
9528 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9529 <!-- end of entry -->
9530
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009531
9532
9533 <!-- end of kind -->
9534 </tbody>
9535
9536 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009537 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009538
9539
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009540 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009541
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009542 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009543 <tr>
9544 <th class="th_name">Property Name</th>
9545 <th class="th_type">Type</th>
9546 <th class="th_description">Description</th>
9547 <th class="th_units">Units</th>
9548 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009549 <th class="th_tags">Tags</th>
9550 </tr>
9551 </thead>
9552
9553 <tbody>
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009565 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009566 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009567 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009568 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009569 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009570 <span class="entry_type_container">x</span>
9571
9572 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009573 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009574 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009575 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009576
9577
9578 </td> <!-- entry_type -->
9579
9580 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009581 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9582<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9583(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9584output.<wbr/> Each stream must use this rectangle to produce its
9585output,<wbr/> cropping to a smaller region if necessary to
9586maintain the stream's aspect ratio.<wbr/></p>
9587<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009588 </td>
9589
9590 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009591 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9592 in pixels; (0,<wbr/>0) is top-left corner of
9593 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009594 </td>
9595
9596 <td class="entry_range">
9597 </td>
9598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009599 <td class="entry_tags">
9600 <ul class="entry_tags">
9601 <li><a href="#tag_BC">BC</a></li>
9602 </ul>
9603 </td>
9604
9605 </tr>
9606 <tr class="entries_header">
9607 <th class="th_details" colspan="5">Details</th>
9608 </tr>
9609 <tr class="entry_cont">
9610 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009611 <p>Any additional per-stream cropping must be done to
9612maximize the final pixel area of the stream.<wbr/></p>
9613<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9614ratio,<wbr/> then 4:3 streams should use the exact crop
9615region.<wbr/> 16:9 streams should further crop vertically
9616(letterbox).<wbr/></p>
9617<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9618outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9619streams should match exactly.<wbr/> These additional crops must
9620be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009621<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009622times,<wbr/> no matter what the relative aspect ratios of the
9623crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009624corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009625larger than active pixel array.<wbr/> Width and height may be
9626rounded to nearest larger supportable width,<wbr/> especially
9627for raw output,<wbr/> where only a few fixed scales may be
9628possible.<wbr/> The width and height of the crop region cannot
9629be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9630android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9631activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9632respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009633 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009634 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009635
9636
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009637 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9638 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009639
9640
9641
9642 <!-- end of kind -->
9643 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009644 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009645
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009646 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009647 <tr>
9648 <th class="th_name">Property Name</th>
9649 <th class="th_type">Type</th>
9650 <th class="th_description">Description</th>
9651 <th class="th_units">Units</th>
9652 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009653 <th class="th_tags">Tags</th>
9654 </tr>
9655 </thead>
9656
9657 <tbody>
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009669 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009670 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009671 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009672 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009673 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009674 <span class="entry_type_container">x</span>
9675
9676 <span class="entry_type_array">
9677 n
9678 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009679 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009680
9681 <ul class="entry_type_enum">
9682 <li>
9683 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009684 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009685 <span class="entry_type_enum_value">0x20</span>
9686 </li>
9687 <li>
9688 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009689 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009690 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009691 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009692 </li>
9693 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009694 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009695 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009696 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009697 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009698 </li>
9699 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009700 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9701 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009702 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009703 </li>
9704 <li>
9705 <span class="entry_type_enum_name">YCbCr_420_888</span>
9706 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009707 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009708 </li>
9709 <li>
9710 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009711 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009712 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009713 </li>
9714 </ul>
9715
9716 </td> <!-- entry_type -->
9717
9718 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009719 <p>The list of image formats that are supported by this
9720camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009721 </td>
9722
9723 <td class="entry_units">
9724 </td>
9725
9726 <td class="entry_range">
9727 </td>
9728
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009729 <td class="entry_tags">
9730 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009731 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009732 </ul>
9733 </td>
9734
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009735 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009736 <tr class="entries_header">
9737 <th class="th_details" colspan="5">Details</th>
9738 </tr>
9739 <tr class="entry_cont">
9740 <td class="entry_details" colspan="5">
9741 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9742<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9743 </td>
9744 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009745
Zhijun Heb8317e22014-01-16 09:47:07 -08009746 <tr class="entries_header">
9747 <th class="th_details" colspan="5">HAL Implementation Details</th>
9748 </tr>
9749 <tr class="entry_cont">
9750 <td class="entry_details" colspan="5">
9751 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9752system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9753<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9754gralloc module will select a format based on the usage flags provided
9755by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9756usually used by preview and recording streams,<wbr/> where the application doesn't
9757need access the image data.<wbr/></p>
9758<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9759needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9760<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9761 </td>
9762 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009763
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009764 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9765 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009766
9767
9768 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009769 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009770 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009771 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009772 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009773 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009774 <span class="entry_type_container">x</span>
9775
9776 <span class="entry_type_array">
9777 n
9778 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009779 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009780
9781
9782 </td> <!-- entry_type -->
9783
9784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009785 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009786for 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 -08009787 </td>
9788
9789 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009790 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009791 </td>
9792
9793 <td class="entry_range">
9794 </td>
9795
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009796 <td class="entry_tags">
9797 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009798 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009799 </ul>
9800 </td>
9801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009802 </tr>
9803 <tr class="entries_header">
9804 <th class="th_details" colspan="5">Details</th>
9805 </tr>
9806 <tr class="entry_cont">
9807 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009808 <p>This corresponds to the minimum steady-state frame duration when only
9809that JPEG stream is active and captured in a burst,<wbr/> with all
9810processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9811<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009812frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009813durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009814 </td>
9815 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009816
9817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009818 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9819 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009820
9821
9822 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009823 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009824 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009825 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009826 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009827 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009828 <span class="entry_type_container">x</span>
9829
9830 <span class="entry_type_array">
9831 n x 2
9832 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009833 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009834
9835
9836 </td> <!-- entry_type -->
9837
9838 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009839 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009840 </td>
9841
9842 <td class="entry_units">
9843 </td>
9844
9845 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009846 </td>
9847
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009848 <td class="entry_tags">
9849 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009850 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009851 </ul>
9852 </td>
9853
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009854 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009855 <tr class="entries_header">
9856 <th class="th_details" colspan="5">Details</th>
9857 </tr>
9858 <tr class="entry_cont">
9859 <td class="entry_details" colspan="5">
9860 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9861sensor 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>
9862 </td>
9863 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009864
Zhijun Heb8317e22014-01-16 09:47:07 -08009865 <tr class="entries_header">
9866 <th class="th_details" colspan="5">HAL Implementation Details</th>
9867 </tr>
9868 <tr class="entry_cont">
9869 <td class="entry_details" colspan="5">
9870 <p>The HAL must include sensor maximum resolution
9871(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9872and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9873 </td>
9874 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009875
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009876 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9877 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009878
9879
9880 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009881 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009882 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009883 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009884 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009885 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009886
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009887 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009888
9889
9890 </td> <!-- entry_type -->
9891
9892 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009893 <p>The maximum ratio between active area width
9894and crop region width,<wbr/> or between active area height and
9895crop region height,<wbr/> if the crop region height is larger
9896than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009897 </td>
9898
9899 <td class="entry_units">
9900 </td>
9901
9902 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009903 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009904 </td>
9905
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009906 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009907 <ul class="entry_tags">
9908 <li><a href="#tag_BC">BC</a></li>
9909 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009910 </td>
9911
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009912 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009913
9914
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009915 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9916 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009917
9918
9919 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009920 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009921 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009922 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009923 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009924 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009925 <span class="entry_type_container">x</span>
9926
9927 <span class="entry_type_array">
9928 n
9929 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009930 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009931
9932
9933 </td> <!-- entry_type -->
9934
9935 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009936 <p>For each available processed output size (defined in
9937<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
9938minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009939 </td>
9940
9941 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009942 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009943 </td>
9944
9945 <td class="entry_range">
9946 </td>
9947
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009948 <td class="entry_tags">
9949 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009950 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009951 </ul>
9952 </td>
9953
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009954 </tr>
9955 <tr class="entries_header">
9956 <th class="th_details" colspan="5">Details</th>
9957 </tr>
9958 <tr class="entry_cont">
9959 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009960 <p>This should correspond to the frame duration when only that processed
9961stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
9962set to FAST.<wbr/></p>
9963<p>When multiple streams are configured,<wbr/> the minimum frame duration will
9964be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009965 </td>
9966 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009967
9968
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009969 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9970 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009971
9972
9973 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009974 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009975 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009976 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009977 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009978 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009979 <span class="entry_type_container">x</span>
9980
9981 <span class="entry_type_array">
9982 n x 2
9983 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009984 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009985
9986
9987 </td> <!-- entry_type -->
9988
9989 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009990 <p>The resolutions available for use with
9991processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
9992platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -08009993encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009994 </td>
9995
9996 <td class="entry_units">
9997 </td>
9998
9999 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010000 </td>
10001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010002 <td class="entry_tags">
10003 <ul class="entry_tags">
10004 <li><a href="#tag_BC">BC</a></li>
10005 </ul>
10006 </td>
10007
10008 </tr>
10009 <tr class="entries_header">
10010 <th class="th_details" colspan="5">Details</th>
10011 </tr>
10012 <tr class="entry_cont">
10013 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010014 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10015<p>For a given use case,<wbr/> the actual maximum supported resolution
10016may be lower than what is listed here,<wbr/> depending on the destination
10017Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10018the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10019smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10020can provide.<wbr/></p>
10021<p>Please reference the documentation for the image data destination to
10022check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010023 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010024 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010025
Zhijun Heb8317e22014-01-16 09:47:07 -080010026 <tr class="entries_header">
10027 <th class="th_details" colspan="5">HAL Implementation Details</th>
10028 </tr>
10029 <tr class="entry_cont">
10030 <td class="entry_details" colspan="5">
10031 <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/>
10032the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10033and each below resolution if it is smaller than or equal to the sensor
10034maximum resolution (if they are not listed in JPEG sizes already):</p>
10035<ul>
10036<li>240p (320 x 240)</li>
10037<li>480p (640 x 480)</li>
10038<li>720p (1280 x 720)</li>
10039<li>1080p (1920 x 1080)</li>
10040</ul>
10041<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/>
10042the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10043 </td>
10044 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010045
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010046 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10047 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010048
10049
10050 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010051 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010052 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010053 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010054 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010055 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010056 <span class="entry_type_container">x</span>
10057
10058 <span class="entry_type_array">
10059 n
10060 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010061 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010062
10063
10064 </td> <!-- entry_type -->
10065
10066 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010067 <p>For each available processed output size (defined in
10068<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10069supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010070 </td>
10071
10072 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010073 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010074 </td>
10075
10076 <td class="entry_range">
10077 </td>
10078
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010079 <td class="entry_tags">
10080 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010081 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010082 </ul>
10083 </td>
10084
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010085 </tr>
10086 <tr class="entries_header">
10087 <th class="th_details" colspan="5">Details</th>
10088 </tr>
10089 <tr class="entry_cont">
10090 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010091 <p>Should correspond to the frame duration when only the raw stream is
10092active.<wbr/></p>
10093<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010094frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010095durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010096 </td>
10097 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010098
10099
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010100 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10101 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010102
10103
10104 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010105 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010106 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010107 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010108 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010109 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010110 <span class="entry_type_container">x</span>
10111
10112 <span class="entry_type_array">
10113 n x 2
10114 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010115 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010116
10117
10118 </td> <!-- entry_type -->
10119
10120 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010121 <p>The resolutions available for use with raw
10122sensor output streams,<wbr/> listed as width,<wbr/>
10123height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010124 </td>
10125
10126 <td class="entry_units">
10127 </td>
10128
10129 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010130 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010131 </td>
10132
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010133 <td class="entry_tags">
10134 </td>
10135
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010136 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010137
10138
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010139 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10140 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010141
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010142
10143
10144 <!-- end of kind -->
10145 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010146 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010147
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010148 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010149 <tr>
10150 <th class="th_name">Property Name</th>
10151 <th class="th_type">Type</th>
10152 <th class="th_description">Description</th>
10153 <th class="th_units">Units</th>
10154 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010155 <th class="th_tags">Tags</th>
10156 </tr>
10157 </thead>
10158
10159 <tbody>
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010171 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010172 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010173 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010174 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010175 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010176 <span class="entry_type_container">x</span>
10177
10178 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010179 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010180 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010181 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010182
10183
10184 </td> <!-- entry_type -->
10185
10186 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010187 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10188<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10189(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10190output.<wbr/> Each stream must use this rectangle to produce its
10191output,<wbr/> cropping to a smaller region if necessary to
10192maintain the stream's aspect ratio.<wbr/></p>
10193<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010194 </td>
10195
10196 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010197 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10198 in pixels; (0,<wbr/>0) is top-left corner of
10199 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010200 </td>
10201
10202 <td class="entry_range">
10203 </td>
10204
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010205 <td class="entry_tags">
10206 <ul class="entry_tags">
10207 <li><a href="#tag_BC">BC</a></li>
10208 </ul>
10209 </td>
10210
10211 </tr>
10212 <tr class="entries_header">
10213 <th class="th_details" colspan="5">Details</th>
10214 </tr>
10215 <tr class="entry_cont">
10216 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010217 <p>Any additional per-stream cropping must be done to
10218maximize the final pixel area of the stream.<wbr/></p>
10219<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10220ratio,<wbr/> then 4:3 streams should use the exact crop
10221region.<wbr/> 16:9 streams should further crop vertically
10222(letterbox).<wbr/></p>
10223<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10224outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10225streams should match exactly.<wbr/> These additional crops must
10226be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010227<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010228times,<wbr/> no matter what the relative aspect ratios of the
10229crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010230corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010231larger than active pixel array.<wbr/> Width and height may be
10232rounded to nearest larger supportable width,<wbr/> especially
10233for raw output,<wbr/> where only a few fixed scales may be
10234possible.<wbr/> The width and height of the crop region cannot
10235be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10236android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10237activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10238respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010239 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010240 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010241
10242
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010243 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10244 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010245
10246
10247
10248 <!-- end of kind -->
10249 </tbody>
10250
10251 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010252 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010253
10254
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010255 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010256
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010257 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010258 <tr>
10259 <th class="th_name">Property Name</th>
10260 <th class="th_type">Type</th>
10261 <th class="th_description">Description</th>
10262 <th class="th_units">Units</th>
10263 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010264 <th class="th_tags">Tags</th>
10265 </tr>
10266 </thead>
10267
10268 <tbody>
10269
10270
10271
10272
10273
10274
10275
10276
10277
10278
10279 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010280 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010281 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010282 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010283 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010284 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010285
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010286 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010287
10288
10289 </td> <!-- entry_type -->
10290
10291 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010292 <p>Duration each pixel is exposed to
10293light.<wbr/></p>
10294<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10295duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010296 </td>
10297
10298 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010299 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010300 </td>
10301
10302 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010303 <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 -080010304 </td>
10305
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010306 <td class="entry_tags">
10307 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010308 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010309 </ul>
10310 </td>
10311
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010312 </tr>
10313 <tr class="entries_header">
10314 <th class="th_details" colspan="5">Details</th>
10315 </tr>
10316 <tr class="entry_cont">
10317 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010318 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010319 </td>
10320 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010321
10322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010323 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10324 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010325
10326
10327 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010328 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010329 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010330 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010331 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010332 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010333
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010334 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010335
10336
10337 </td> <!-- entry_type -->
10338
10339 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010340 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010341start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010342 </td>
10343
10344 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010345 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010346 </td>
10347
10348 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010349 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10350android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10351is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010352 </td>
10353
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010354 <td class="entry_tags">
10355 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010356 <li><a href="#tag_V1">V1</a></li>
10357 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010358 </ul>
10359 </td>
10360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010361 </tr>
10362 <tr class="entries_header">
10363 <th class="th_details" colspan="5">Details</th>
10364 </tr>
10365 <tr class="entry_cont">
10366 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010367 <p>The maximum frame rate that can be supported by a camera subsystem is
10368a function of many factors:</p>
10369<ul>
10370<li>Requested resolutions of output image streams</li>
10371<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10372<li>The bandwidth of the imager interface</li>
10373<li>The bandwidth of the various ISP processing blocks</li>
10374</ul>
10375<p>Since these factors can vary greatly between different ISPs and
10376sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10377restrictions with as simple a model as possible.<wbr/></p>
10378<p>The model presented has the following characteristics:</p>
10379<ul>
10380<li>The image sensor is always configured to output the smallest
10381resolution possible given the application's requested output stream
10382sizes.<wbr/> The smallest resolution is defined as being at least as large
10383as the largest requested output stream size; the camera pipeline must
10384never digitally upsample sensor data when the crop region covers the
10385whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10386resolutions are configured,<wbr/> the sensor can provide a higher frame
10387rate.<wbr/></li>
10388<li>Since any request may use any or all the currently configured
10389output streams,<wbr/> the sensor and ISP must be configured to support
10390scaling a single capture to all the streams at the same time.<wbr/> This
10391means the camera pipeline must be ready to produce the largest
10392requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10393frame rate of a given configured stream set is governed only by the
10394largest requested stream resolution.<wbr/></li>
10395<li>Using more than one output stream in a request does not affect the
10396frame duration.<wbr/></li>
10397<li>JPEG streams act like processed YUV streams in requests for which
10398they are not included; in requests in which they are directly
10399referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10400JPEG stream requires the underlying YUV data to always be ready for
10401use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10402frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10403<li>The JPEG processor can run concurrently to the rest of the camera
10404pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10405</ul>
10406<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10407is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10408These are used to determine the maximum frame rate /<wbr/> minimum frame
10409duration that is possible for a given stream configuration.<wbr/></p>
10410<p>Specifically,<wbr/> the application can use the following rules to
10411determine the minimum frame duration it can request from the HAL
10412device:</p>
10413<ol>
10414<li>Given the application's currently configured set of output
10415streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10416<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10417<code>SP</code>.<wbr/></li>
10418<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10419count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10420<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10421<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
10422no exact match for <code>RP == RJ</code> (in particular there isn't an available
10423processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10424to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10425there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10426the processed resolution closest to <code>RJ</code>.<wbr/></li>
10427<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
10428no exact match for <code>RR == RP</code> (in particular there isn't an available
10429raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10430or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10431there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10432the raw resolution closest to <code>RP</code>.<wbr/></li>
10433<li>Look up the matching minimum frame durations in the property lists
10434<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10435<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10436<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10437minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10438<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10439supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10440<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10441supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10442<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10443the application,<wbr/> then the HAL will have to delay JPEG-using requests
10444whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10445This will happen whenever a JPEG-using request starts capture less
10446than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10447supported frame duration will vary between the values calculated in
10448#6 and #7.<wbr/></li>
10449</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010450 </td>
10451 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010452
10453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010454 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10455 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010456
10457
10458 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010459 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010460 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010461 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010462 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010463 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010464
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010465 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010466
10467
10468 </td> <!-- entry_type -->
10469
10470 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010471 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010472implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010473below 'maximum analog sensitivity'.<wbr/></p>
10474<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10475gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010476 </td>
10477
10478 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010479 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010480 </td>
10481
10482 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010483 <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 -080010484 </td>
10485
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010486 <td class="entry_tags">
10487 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010488 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010489 </ul>
10490 </td>
10491
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010492 </tr>
10493 <tr class="entries_header">
10494 <th class="th_details" colspan="5">Details</th>
10495 </tr>
10496 <tr class="entry_cont">
10497 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010498 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010499 </td>
10500 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010501
10502
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010503 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10504 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010505
Igor Murashkina46e02f2014-01-09 17:43:38 -080010506
10507 <tr class="entry" id="controls_android.sensor.testPatternData">
10508 <td class="entry_name" rowspan="5">
10509 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10510 </td>
10511 <td class="entry_type">
10512 <span class="entry_type_name">int32</span>
10513 <span class="entry_type_container">x</span>
10514
10515 <span class="entry_type_array">
10516 4
10517 </span>
10518 <span class="entry_type_visibility"> [public]</span>
10519
10520
10521 </td> <!-- entry_type -->
10522
10523 <td class="entry_description">
10524 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10525when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10526 </td>
10527
10528 <td class="entry_units">
10529 </td>
10530
10531 <td class="entry_range">
10532 <p>Optional.<wbr/>
10533Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10534SOLID_<wbr/>COLOR.<wbr/></p>
10535 </td>
10536
10537 <td class="entry_tags">
10538 </td>
10539
10540 </tr>
10541 <tr class="entries_header">
10542 <th class="th_details" colspan="5">Details</th>
10543 </tr>
10544 <tr class="entry_cont">
10545 <td class="entry_details" colspan="5">
10546 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10547The camera device then uses the most significant X bits
10548that correspond to how many bits are in its Bayer raw sensor
10549output.<wbr/></p>
10550<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1055110 most significant bits from each color channel.<wbr/></p>
10552 </td>
10553 </tr>
10554
10555 <tr class="entries_header">
10556 <th class="th_details" colspan="5">HAL Implementation Details</th>
10557 </tr>
10558 <tr class="entry_cont">
10559 <td class="entry_details" colspan="5">
10560
10561 </td>
10562 </tr>
10563
10564 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10565 <!-- end of entry -->
10566
10567
10568 <tr class="entry" id="controls_android.sensor.testPatternMode">
10569 <td class="entry_name" rowspan="5">
10570 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10571 </td>
10572 <td class="entry_type">
10573 <span class="entry_type_name entry_type_name_enum">int32</span>
10574
10575 <span class="entry_type_visibility"> [public]</span>
10576
10577 <ul class="entry_type_enum">
10578 <li>
10579 <span class="entry_type_enum_name">OFF</span>
10580 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10581device returns captures from the image sensor.<wbr/></p></span>
10582 </li>
10583 <li>
10584 <span class="entry_type_enum_name">SOLID_COLOR</span>
10585 <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
10586respective color channel provided in
10587<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10588<p>For example:</p>
10589<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10590</code></pre>
10591<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10592<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10593</code></pre>
10594<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10595are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10596 </li>
10597 <li>
10598 <span class="entry_type_enum_name">COLOR_BARS</span>
10599 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10600<p>The vertical bars (left-to-right) are as follows:</p>
10601<ul>
10602<li>100% white</li>
10603<li>yellow</li>
10604<li>cyan</li>
10605<li>green</li>
10606<li>magenta</li>
10607<li>red</li>
10608<li>blue</li>
10609<li>black</li>
10610</ul>
10611<p>In general the image would look like the following:</p>
10612<pre><code>W Y C G M R B K
10613W Y C G M R B K
10614W Y C G M R B K
10615W Y C G M R B K
10616W Y C G M R B K
10617.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10618.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10619.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10620
10621(B = Blue,<wbr/> K = Black)
10622</code></pre>
10623<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10624When this is not possible,<wbr/> the bar size should be rounded
10625down to the nearest integer and the pattern can repeat
10626on the right side.<wbr/></p>
10627<p>Each bar's height must always take up the full sensor
10628pixel array height.<wbr/></p>
10629<p>Each pixel in this test pattern must be set to either
106300% intensity or 100% intensity.<wbr/></p></span>
10631 </li>
10632 <li>
10633 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10634 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10635each bar should start at its specified color at the top,<wbr/>
10636and fade to gray at the bottom.<wbr/></p>
10637<p>Furthermore each bar is further subdivided into a left and
10638right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10639and the right half should have a quantized gradient.<wbr/></p>
10640<p>In particular,<wbr/> the right half's should consist of blocks of the
10641same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10642<p>The least significant bits in the quantized gradient should
10643be copied from the most significant bits of the smooth gradient.<wbr/></p>
10644<p>The height of each bar should always be a multiple of 128.<wbr/>
10645When this is not the case,<wbr/> the pattern should repeat at the bottom
10646of the image.<wbr/></p></span>
10647 </li>
10648 <li>
10649 <span class="entry_type_enum_name">PN9</span>
10650 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10651generated from a PN9 512-bit sequence (typically implemented
10652in hardware with a linear feedback shift register).<wbr/></p>
10653<p>The generator should be reset at the beginning of each frame,<wbr/>
10654and thus each subsequent raw frame with this test pattern should
10655be exactly the same as the last.<wbr/></p></span>
10656 </li>
10657 <li>
10658 <span class="entry_type_enum_name">CUSTOM1</span>
10659 <span class="entry_type_enum_value">256</span>
10660 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10661available only on this camera device are at least this numeric
10662value.<wbr/></p>
10663<p>All of the custom test patterns will be static
10664(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10665 </li>
10666 </ul>
10667
10668 </td> <!-- entry_type -->
10669
10670 <td class="entry_description">
10671 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10672doing a real exposure from the camera.<wbr/></p>
10673 </td>
10674
10675 <td class="entry_units">
10676 </td>
10677
10678 <td class="entry_range">
10679 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10680<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10681 </td>
10682
10683 <td class="entry_tags">
10684 </td>
10685
10686 </tr>
10687 <tr class="entries_header">
10688 <th class="th_details" colspan="5">Details</th>
10689 </tr>
10690 <tr class="entry_cont">
10691 <td class="entry_details" colspan="5">
10692 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10693by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10694work as normal.<wbr/></p>
10695<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10696occur (and that the test pattern remain unmodified,<wbr/> since the flash
10697would not actually affect it).<wbr/></p>
10698 </td>
10699 </tr>
10700
10701 <tr class="entries_header">
10702 <th class="th_details" colspan="5">HAL Implementation Details</th>
10703 </tr>
10704 <tr class="entry_cont">
10705 <td class="entry_details" colspan="5">
10706 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10707<p>The HAL may choose to substitute test patterns from the sensor
10708with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10709indistinguishable to the ISP whether the data came from the
10710sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10711 </td>
10712 </tr>
10713
10714 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10715 <!-- end of entry -->
10716
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010717
10718
10719 <!-- end of kind -->
10720 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010721 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010722
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010723 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010724 <tr>
10725 <th class="th_name">Property Name</th>
10726 <th class="th_type">Type</th>
10727 <th class="th_description">Description</th>
10728 <th class="th_units">Units</th>
10729 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010730 <th class="th_tags">Tags</th>
10731 </tr>
10732 </thead>
10733
10734 <tbody>
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010748 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010749 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010750 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010751 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010752 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010753 <span class="entry_type_container">x</span>
10754
10755 <span class="entry_type_array">
10756 4
10757 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010758 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010759 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010760
10761
10762 </td> <!-- entry_type -->
10763
10764 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010765 <p>Area of raw data which corresponds to only
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010766active pixels; smaller or equal to
Igor Murashkin0b080452013-12-27 15:30:25 -080010767pixelArraySize.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010768 </td>
10769
10770 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010771 xmin,<wbr/> ymin,<wbr/> width,<wbr/> height.<wbr/> Top left of full
10772 pixel array is (0,<wbr/>0)
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010773 </td>
10774
10775 <td class="entry_range">
10776 </td>
10777
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010778 <td class="entry_tags">
10779 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010780 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010781 </ul>
10782 </td>
10783
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010784 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010785
10786
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010787 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10788 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010789
10790
Zhijun He69fc0ea2013-07-17 09:42:58 -070010791 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010792 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010793 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010794 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010795 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010796 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010797 <span class="entry_type_container">x</span>
10798
10799 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010800 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010801 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010802 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010803 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010804
10805
10806 </td> <!-- entry_type -->
10807
10808 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010809 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010810 </td>
10811
10812 <td class="entry_units">
10813 </td>
10814
10815 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010816 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010817 </td>
10818
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010819 <td class="entry_tags">
10820 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010821 <li><a href="#tag_BC">BC</a></li>
10822 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010823 </ul>
10824 </td>
10825
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010826 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010827
10828
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010829 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10830 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010831
10832
10833 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010834 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010835 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010836 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010837 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010838 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010839
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010840 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010841
10842 <ul class="entry_type_enum">
10843 <li>
10844 <span class="entry_type_enum_name">RGGB</span>
10845 </li>
10846 <li>
10847 <span class="entry_type_enum_name">GRBG</span>
10848 </li>
10849 <li>
10850 <span class="entry_type_enum_name">GBRG</span>
10851 </li>
10852 <li>
10853 <span class="entry_type_enum_name">BGGR</span>
10854 </li>
10855 <li>
10856 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010857 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10858values for each pixel,<wbr/> instead of just 1 16-bit value
10859per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010860 </li>
10861 </ul>
10862
10863 </td> <!-- entry_type -->
10864
10865 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010866 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010867represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010868the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010869 </td>
10870
10871 <td class="entry_units">
10872 </td>
10873
10874 <td class="entry_range">
10875 </td>
10876
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010877 <td class="entry_tags">
10878 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010879 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010880 </ul>
10881 </td>
10882
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010883 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010884
10885
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010886 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10887 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010888
10889
10890 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010891 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010892 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010893 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010894 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010895 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010896 <span class="entry_type_container">x</span>
10897
10898 <span class="entry_type_array">
10899 2
10900 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010901 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010902 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010903
10904
10905 </td> <!-- entry_type -->
10906
10907 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010908 <p>Range of valid exposure
10909times</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010910 </td>
10911
10912 <td class="entry_units">
10913 </td>
10914
10915 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010916 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 30e9 (30
10917sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010918 </td>
10919
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010920 <td class="entry_tags">
10921 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010922 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010923 </ul>
10924 </td>
10925
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010926 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010927
10928
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010929 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10930 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010931
10932
10933 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010934 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010935 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010936 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010937 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010938 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010939
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010940 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010941
10942
10943 </td> <!-- entry_type -->
10944
10945 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010946 <p>Maximum possible frame duration (minimum frame
10947rate)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010948 </td>
10949
10950 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010951 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010952 </td>
10953
10954 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010955 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010956 </td>
10957
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010958 <td class="entry_tags">
10959 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010960 <li><a href="#tag_BC">BC</a></li>
10961 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010962 </ul>
10963 </td>
10964
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010965 </tr>
10966 <tr class="entries_header">
10967 <th class="th_details" colspan="5">Details</th>
10968 </tr>
10969 <tr class="entry_cont">
10970 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010971 <p>Minimum duration is a function of resolution,<wbr/>
10972processing settings.<wbr/> See
10973android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
10974android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010975<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 -080010976 </td>
10977 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010978
10979
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010980 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10981 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010982
10983
10984 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010985 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010986 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010987 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010988 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010989 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010990 <span class="entry_type_container">x</span>
10991
10992 <span class="entry_type_array">
10993 2
10994 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070010995 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010996 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010997
10998
10999 </td> <!-- entry_type -->
11000
11001 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011002 <p>The physical dimensions of the full pixel
11003array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011004 </td>
11005
11006 <td class="entry_units">
11007 </td>
11008
11009 <td class="entry_range">
11010 </td>
11011
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011012 <td class="entry_tags">
11013 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011014 <li><a href="#tag_V1">V1</a></li>
11015 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011016 </ul>
11017 </td>
11018
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011019 </tr>
11020 <tr class="entries_header">
11021 <th class="th_details" colspan="5">Details</th>
11022 </tr>
11023 <tr class="entry_cont">
11024 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011025 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011026 </td>
11027 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011028
11029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011030 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11031 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011032
11033
11034 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011035 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011036 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011037 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011038 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011039 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011040 <span class="entry_type_container">x</span>
11041
11042 <span class="entry_type_array">
11043 2
11044 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011045 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011046
11047
11048 </td> <!-- entry_type -->
11049
11050 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011051 <p>Dimensions of full pixel array,<wbr/> possibly
11052including black calibration pixels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011053 </td>
11054
11055 <td class="entry_units">
11056 </td>
11057
11058 <td class="entry_range">
11059 </td>
11060
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011061 <td class="entry_tags">
11062 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011063 <li><a href="#tag_DNG">DNG</a></li>
11064 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011065 </ul>
11066 </td>
11067
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011068 </tr>
11069 <tr class="entries_header">
11070 <th class="th_details" colspan="5">Details</th>
11071 </tr>
11072 <tr class="entry_cont">
11073 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011074 <p>Maximum output resolution for raw format must
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011075match this in
Igor Murashkin0b080452013-12-27 15:30:25 -080011076android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Sizes<wbr/>Per<wbr/>Format</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011077 </td>
11078 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011079
11080
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011081 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11082 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011083
11084
11085 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011086 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011087 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011088 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011089 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011090 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011091
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011092 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011093
11094
11095 </td> <!-- entry_type -->
11096
11097 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011098 <p>Maximum raw value output by
11099sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011100 </td>
11101
11102 <td class="entry_units">
11103 </td>
11104
11105 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011106 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011107 </td>
11108
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011109 <td class="entry_tags">
11110 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011111 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011112 </ul>
11113 </td>
11114
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011115 </tr>
11116 <tr class="entries_header">
11117 <th class="th_details" colspan="5">Details</th>
11118 </tr>
11119 <tr class="entry_cont">
11120 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011121 <p>Defines sensor bit depth (10-14 bits is
11122expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011123 </td>
11124 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011125
11126
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011127 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11128 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011129
11130
11131
11132
11133
11134 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011135 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011136 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011137 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011138 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011139 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011140
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011141 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011142
11143
11144 </td> <!-- entry_type -->
11145
11146 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011147 <p>Gain factor from electrons to raw units when
11148ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011149 </td>
11150
11151 <td class="entry_units">
11152 </td>
11153
11154 <td class="entry_range">
11155 </td>
11156
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011157 <td class="entry_tags">
11158 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011159 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011160 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011161 </ul>
11162 </td>
11163
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011164 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011165
11166
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011167 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11168 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011169
11170
11171 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011172 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011173 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011174 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011175 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011176 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011177 <span class="entry_type_container">x</span>
11178
11179 <span class="entry_type_array">
11180 4
11181 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011182 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011183 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011184
11185
11186 </td> <!-- entry_type -->
11187
11188 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011189 <p>A fixed black level offset for each of the
11190Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011191 </td>
11192
11193 <td class="entry_units">
11194 </td>
11195
11196 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011197 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011198 </td>
11199
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011200 <td class="entry_tags">
11201 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011202 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011203 </ul>
11204 </td>
11205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011206 </tr>
11207 <tr class="entries_header">
11208 <th class="th_details" colspan="5">Details</th>
11209 </tr>
11210 <tr class="entry_cont">
11211 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011212 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11213tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011214 </td>
11215 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011216
11217
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011218 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11219 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011220
11221
11222 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011223 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011224 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011225 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011226 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011227 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011228 <span class="entry_type_container">x</span>
11229
11230 <span class="entry_type_array">
11231 9
11232 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011233 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011234 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011235
11236
11237 </td> <!-- entry_type -->
11238
11239 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011240 <p>Per-device calibration on top of color space
11241transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011242 </td>
11243
11244 <td class="entry_units">
11245 </td>
11246
11247 <td class="entry_range">
11248 </td>
11249
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011250 <td class="entry_tags">
11251 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011252 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011253 </ul>
11254 </td>
11255
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011256 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011257
11258
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011259 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11260 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011261
11262
11263 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011264 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011265 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011266 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011267 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011268 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011269 <span class="entry_type_container">x</span>
11270
11271 <span class="entry_type_array">
11272 9
11273 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011274 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011275 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011276
11277
11278 </td> <!-- entry_type -->
11279
11280 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011281 <p>Per-device calibration on top of color space
11282transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011283 </td>
11284
11285 <td class="entry_units">
11286 </td>
11287
11288 <td class="entry_range">
11289 </td>
11290
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011291 <td class="entry_tags">
11292 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011293 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011294 </ul>
11295 </td>
11296
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011297 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011298
11299
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011300 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11301 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011302
11303
11304 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011305 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011306 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011307 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011308 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011309 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011310 <span class="entry_type_container">x</span>
11311
11312 <span class="entry_type_array">
11313 9
11314 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011315 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011316 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011317
11318
11319 </td> <!-- entry_type -->
11320
11321 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011322 <p>Linear mapping from XYZ (D50) color space to
11323reference linear sensor color,<wbr/> for first reference
11324illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011325 </td>
11326
11327 <td class="entry_units">
11328 </td>
11329
11330 <td class="entry_range">
11331 </td>
11332
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011333 <td class="entry_tags">
11334 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011335 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011336 </ul>
11337 </td>
11338
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011339 </tr>
11340 <tr class="entries_header">
11341 <th class="th_details" colspan="5">Details</th>
11342 </tr>
11343 <tr class="entry_cont">
11344 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011345 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11346black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11347At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011348 </td>
11349 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011350
11351
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011352 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11353 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011354
11355
11356 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011357 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011358 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011359 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011360 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011361 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011362 <span class="entry_type_container">x</span>
11363
11364 <span class="entry_type_array">
11365 9
11366 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011367 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011368 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011369
11370
11371 </td> <!-- entry_type -->
11372
11373 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011374 <p>Linear mapping from XYZ (D50) color space to
11375reference linear sensor color,<wbr/> for second reference
11376illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011377 </td>
11378
11379 <td class="entry_units">
11380 </td>
11381
11382 <td class="entry_range">
11383 </td>
11384
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011385 <td class="entry_tags">
11386 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011387 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011388 </ul>
11389 </td>
11390
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011391 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011392
11393
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011394 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11395 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011396
11397
11398 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011399 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011400 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011401 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011402 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011403 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011404 <span class="entry_type_container">x</span>
11405
11406 <span class="entry_type_array">
11407 9
11408 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011409 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011410 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011411
11412
11413 </td> <!-- entry_type -->
11414
11415 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011416 <p>Used by DNG for better WB
11417adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011418 </td>
11419
11420 <td class="entry_units">
11421 </td>
11422
11423 <td class="entry_range">
11424 </td>
11425
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011426 <td class="entry_tags">
11427 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011428 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011429 </ul>
11430 </td>
11431
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011432 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011433
11434
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011435 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11436 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011437
11438
11439 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011440 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011441 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011442 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011443 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011444 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011445 <span class="entry_type_container">x</span>
11446
11447 <span class="entry_type_array">
11448 9
11449 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011450 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011451 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011452
11453
11454 </td> <!-- entry_type -->
11455
11456 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011457 <p>Used by DNG for better WB
11458adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011459 </td>
11460
11461 <td class="entry_units">
11462 </td>
11463
11464 <td class="entry_range">
11465 </td>
11466
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011467 <td class="entry_tags">
11468 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011469 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011470 </ul>
11471 </td>
11472
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011473 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011474
11475
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011476 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11477 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011478
11479
11480 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011481 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011482 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011483 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011484 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011485 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011486
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011487 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011488
11489
11490 </td> <!-- entry_type -->
11491
11492 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011493 <p>Maximum sensitivity that is implemented
11494purely through analog gain</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011495 </td>
11496
11497 <td class="entry_units">
11498 </td>
11499
11500 <td class="entry_range">
11501 </td>
11502
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011503 <td class="entry_tags">
11504 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011505 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011506 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011507 </ul>
11508 </td>
11509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011510 </tr>
11511 <tr class="entries_header">
11512 <th class="th_details" colspan="5">Details</th>
11513 </tr>
11514 <tr class="entry_cont">
11515 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011516 <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 -080011517equal to this,<wbr/> all applied gain must be analog.<wbr/> For
11518values above this,<wbr/> it can be a mix of analog and
11519digital</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011520 </td>
11521 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011522
11523
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011524 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11525 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011526
11527
11528 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011529 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011530 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011531 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011532 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011533 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011534 <span class="entry_type_container">x</span>
11535
11536 <span class="entry_type_array">
11537 2
11538 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011539 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011540 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011541
11542
11543 </td> <!-- entry_type -->
11544
11545 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011546 <p>Estimation of sensor noise
11547characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011548 </td>
11549
11550 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011551 var(raw pixel value) = electrons * (baseGainFactor
11552 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11553 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011554 </td>
11555
11556 <td class="entry_range">
11557 </td>
11558
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011559 <td class="entry_tags">
11560 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011561 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011562 </ul>
11563 </td>
11564
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011565 </tr>
11566 <tr class="entries_header">
11567 <th class="th_details" colspan="5">Details</th>
11568 </tr>
11569 <tr class="entry_cont">
11570 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011571 <p>A represents sensor read noise before analog
11572amplification; B represents noise from A/<wbr/>D conversion and
11573other circuits after amplification.<wbr/> Both noise sources
11574are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11575across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011576 </td>
11577 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011578
11579
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011580 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11581 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011582
11583
11584 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011585 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011586 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011587 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011588 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011589 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011590
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011591 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011592
11593
11594 </td> <!-- entry_type -->
11595
11596 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011597 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011598image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011599screen in its native orientation.<wbr/> Also defines the
11600direction of rolling shutter readout,<wbr/> which is from top
11601to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011602 </td>
11603
11604 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011605 degrees clockwise rotation,<wbr/> only multiples of
11606 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011607 </td>
11608
11609 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011610 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011611 </td>
11612
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011613 <td class="entry_tags">
11614 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011615 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011616 </ul>
11617 </td>
11618
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011619 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011620
11621
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011622 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11623 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011624
11625
11626 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011627 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011628 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011629 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011630 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011631 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011632
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011633 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011634
11635 <ul class="entry_type_enum">
11636 <li>
11637 <span class="entry_type_enum_name">DAYLIGHT</span>
11638 <span class="entry_type_enum_value">1</span>
11639 </li>
11640 <li>
11641 <span class="entry_type_enum_name">FLUORESCENT</span>
11642 <span class="entry_type_enum_value">2</span>
11643 </li>
11644 <li>
11645 <span class="entry_type_enum_name">TUNGSTEN</span>
11646 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011647 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011648 </li>
11649 <li>
11650 <span class="entry_type_enum_name">FLASH</span>
11651 <span class="entry_type_enum_value">4</span>
11652 </li>
11653 <li>
11654 <span class="entry_type_enum_name">FINE_WEATHER</span>
11655 <span class="entry_type_enum_value">9</span>
11656 </li>
11657 <li>
11658 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11659 <span class="entry_type_enum_value">10</span>
11660 </li>
11661 <li>
11662 <span class="entry_type_enum_name">SHADE</span>
11663 <span class="entry_type_enum_value">11</span>
11664 </li>
11665 <li>
11666 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11667 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011668 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011669 </li>
11670 <li>
11671 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11672 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011673 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011674 </li>
11675 <li>
11676 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11677 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011678 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011679 </li>
11680 <li>
11681 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11682 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011683 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011684 </li>
11685 <li>
11686 <span class="entry_type_enum_name">STANDARD_A</span>
11687 <span class="entry_type_enum_value">17</span>
11688 </li>
11689 <li>
11690 <span class="entry_type_enum_name">STANDARD_B</span>
11691 <span class="entry_type_enum_value">18</span>
11692 </li>
11693 <li>
11694 <span class="entry_type_enum_name">STANDARD_C</span>
11695 <span class="entry_type_enum_value">19</span>
11696 </li>
11697 <li>
11698 <span class="entry_type_enum_name">D55</span>
11699 <span class="entry_type_enum_value">20</span>
11700 </li>
11701 <li>
11702 <span class="entry_type_enum_name">D65</span>
11703 <span class="entry_type_enum_value">21</span>
11704 </li>
11705 <li>
11706 <span class="entry_type_enum_name">D75</span>
11707 <span class="entry_type_enum_value">22</span>
11708 </li>
11709 <li>
11710 <span class="entry_type_enum_name">D50</span>
11711 <span class="entry_type_enum_value">23</span>
11712 </li>
11713 <li>
11714 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11715 <span class="entry_type_enum_value">24</span>
11716 </li>
11717 </ul>
11718
11719 </td> <!-- entry_type -->
11720
11721 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011722 <p>Light source used to define transform
117231</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011724 </td>
11725
11726 <td class="entry_units">
11727 </td>
11728
11729 <td class="entry_range">
11730 </td>
11731
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011732 <td class="entry_tags">
11733 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011734 <li><a href="#tag_DNG">DNG</a></li>
11735 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011736 </ul>
11737 </td>
11738
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011739 </tr>
11740 <tr class="entries_header">
11741 <th class="th_details" colspan="5">Details</th>
11742 </tr>
11743 <tr class="entry_cont">
11744 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011745 <p>[EXIF LightSource tag] Must all these be
11746supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011747 </td>
11748 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011749
11750
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011751 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11752 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011753
11754
11755 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011756 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011757 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011758 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011759 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011760 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011761
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011762 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011763
11764
11765 </td> <!-- entry_type -->
11766
11767 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011768 <p>Light source used to define transform
117692</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011770 </td>
11771
11772 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011773 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011774 </td>
11775
11776 <td class="entry_range">
11777 </td>
11778
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011779 <td class="entry_tags">
11780 </td>
11781
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011782 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011783
11784
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011785 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11786 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011787
Igor Murashkina46e02f2014-01-09 17:43:38 -080011788
11789 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11790 <td class="entry_name" rowspan="1">
11791 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11792 </td>
11793 <td class="entry_type">
11794 <span class="entry_type_name">byte</span>
11795
11796 <span class="entry_type_visibility"> [public]</span>
11797
11798
11799 </td> <!-- entry_type -->
11800
11801 <td class="entry_description">
11802 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11803pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11804 </td>
11805
11806 <td class="entry_units">
11807 </td>
11808
11809 <td class="entry_range">
11810 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11811 </td>
11812
11813 <td class="entry_tags">
11814 </td>
11815
11816 </tr>
11817
11818
11819 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11820 <!-- end of entry -->
11821
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011822
11823
11824 <!-- end of kind -->
11825 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011826 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011827
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011828 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011829 <tr>
11830 <th class="th_name">Property Name</th>
11831 <th class="th_type">Type</th>
11832 <th class="th_description">Description</th>
11833 <th class="th_units">Units</th>
11834 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011835 <th class="th_tags">Tags</th>
11836 </tr>
11837 </thead>
11838
11839 <tbody>
11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011851 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011852 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011853 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011854 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011855 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011856
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011857 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011858
11859
11860 </td> <!-- entry_type -->
11861
11862 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011863 <p>Duration each pixel is exposed to
11864light.<wbr/></p>
11865<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11866duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011867 </td>
11868
11869 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011870 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011871 </td>
11872
11873 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011874 <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 -080011875 </td>
11876
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011877 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011878 <ul class="entry_tags">
11879 <li><a href="#tag_V1">V1</a></li>
11880 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011881 </td>
11882
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011883 </tr>
11884 <tr class="entries_header">
11885 <th class="th_details" colspan="5">Details</th>
11886 </tr>
11887 <tr class="entry_cont">
11888 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011889 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011890 </td>
11891 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011892
11893
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011894 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11895 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011896
11897
11898 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011899 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011900 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011901 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011902 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011903 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011904
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011905 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011906
11907
11908 </td> <!-- entry_type -->
11909
11910 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011911 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011912start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011913 </td>
11914
11915 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011916 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011917 </td>
11918
11919 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011920 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
11921android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
11922is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011923 </td>
11924
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011925 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011926 <ul class="entry_tags">
11927 <li><a href="#tag_V1">V1</a></li>
11928 <li><a href="#tag_BC">BC</a></li>
11929 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011930 </td>
11931
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011932 </tr>
11933 <tr class="entries_header">
11934 <th class="th_details" colspan="5">Details</th>
11935 </tr>
11936 <tr class="entry_cont">
11937 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011938 <p>The maximum frame rate that can be supported by a camera subsystem is
11939a function of many factors:</p>
11940<ul>
11941<li>Requested resolutions of output image streams</li>
11942<li>Availability of binning /<wbr/> skipping modes on the imager</li>
11943<li>The bandwidth of the imager interface</li>
11944<li>The bandwidth of the various ISP processing blocks</li>
11945</ul>
11946<p>Since these factors can vary greatly between different ISPs and
11947sensors,<wbr/> the camera abstraction tries to represent the bandwidth
11948restrictions with as simple a model as possible.<wbr/></p>
11949<p>The model presented has the following characteristics:</p>
11950<ul>
11951<li>The image sensor is always configured to output the smallest
11952resolution possible given the application's requested output stream
11953sizes.<wbr/> The smallest resolution is defined as being at least as large
11954as the largest requested output stream size; the camera pipeline must
11955never digitally upsample sensor data when the crop region covers the
11956whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
11957resolutions are configured,<wbr/> the sensor can provide a higher frame
11958rate.<wbr/></li>
11959<li>Since any request may use any or all the currently configured
11960output streams,<wbr/> the sensor and ISP must be configured to support
11961scaling a single capture to all the streams at the same time.<wbr/> This
11962means the camera pipeline must be ready to produce the largest
11963requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
11964frame rate of a given configured stream set is governed only by the
11965largest requested stream resolution.<wbr/></li>
11966<li>Using more than one output stream in a request does not affect the
11967frame duration.<wbr/></li>
11968<li>JPEG streams act like processed YUV streams in requests for which
11969they are not included; in requests in which they are directly
11970referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
11971JPEG stream requires the underlying YUV data to always be ready for
11972use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
11973frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
11974<li>The JPEG processor can run concurrently to the rest of the camera
11975pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
11976</ul>
11977<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
11978is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
11979These are used to determine the maximum frame rate /<wbr/> minimum frame
11980duration that is possible for a given stream configuration.<wbr/></p>
11981<p>Specifically,<wbr/> the application can use the following rules to
11982determine the minimum frame duration it can request from the HAL
11983device:</p>
11984<ol>
11985<li>Given the application's currently configured set of output
11986streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
11987<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
11988<code>SP</code>.<wbr/></li>
11989<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
11990count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
11991<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
11992<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
11993no exact match for <code>RP == RJ</code> (in particular there isn't an available
11994processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
11995to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
11996there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
11997the processed resolution closest to <code>RJ</code>.<wbr/></li>
11998<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
11999no exact match for <code>RR == RP</code> (in particular there isn't an available
12000raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12001or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12002there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12003the raw resolution closest to <code>RP</code>.<wbr/></li>
12004<li>Look up the matching minimum frame durations in the property lists
12005<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12006<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12007<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12008minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12009<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12010supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12011<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12012supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12013<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12014the application,<wbr/> then the HAL will have to delay JPEG-using requests
12015whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12016This will happen whenever a JPEG-using request starts capture less
12017than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12018supported frame duration will vary between the values calculated in
12019#6 and #7.<wbr/></li>
12020</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012021 </td>
12022 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012023
12024
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012025 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12026 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012027
12028
12029 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012030 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012031 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012032 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012033 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012034 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012035
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012036 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012037
12038
12039 </td> <!-- entry_type -->
12040
12041 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012042 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012043implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012044below 'maximum analog sensitivity'.<wbr/></p>
12045<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12046gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012047 </td>
12048
12049 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012050 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012051 </td>
12052
12053 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012054 <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 -080012055 </td>
12056
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012057 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012058 <ul class="entry_tags">
12059 <li><a href="#tag_V1">V1</a></li>
12060 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012061 </td>
12062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012063 </tr>
12064 <tr class="entries_header">
12065 <th class="th_details" colspan="5">Details</th>
12066 </tr>
12067 <tr class="entry_cont">
12068 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012069 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012070 </td>
12071 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012072
12073
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012074 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12075 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012076
12077
12078 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012079 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012080 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012081 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012082 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012083 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012084
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012085 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012086
12087
12088 </td> <!-- entry_type -->
12089
12090 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012091 <p>Time at start of exposure of first
12092row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012093 </td>
12094
12095 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012096 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012097 </td>
12098
12099 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012100 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012101 </td>
12102
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012103 <td class="entry_tags">
12104 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012105 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012106 </ul>
12107 </td>
12108
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012109 </tr>
12110 <tr class="entries_header">
12111 <th class="th_details" colspan="5">Details</th>
12112 </tr>
12113 <tr class="entry_cont">
12114 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012115 <p>Monotonic,<wbr/> should be synced to other timestamps in
12116system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012117 </td>
12118 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012119
12120
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012121 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12122 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012123
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012124
12125 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012126 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012127 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012128 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012129 <td class="entry_type">
12130 <span class="entry_type_name">float</span>
12131
12132 <span class="entry_type_visibility"> [public]</span>
12133
12134
12135 </td> <!-- entry_type -->
12136
12137 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012138 <p>The temperature of the sensor,<wbr/> sampled at the time
12139exposure began for this frame.<wbr/></p>
12140<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12141somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012142 </td>
12143
12144 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012145 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012146 </td>
12147
12148 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012149 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012150 </td>
12151
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012152 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012153 <ul class="entry_tags">
12154 <li><a href="#tag_FULL">FULL</a></li>
12155 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012156 </td>
12157
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012158 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012159
12160
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012161 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12162 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012163
Igor Murashkina46e02f2014-01-09 17:43:38 -080012164
12165 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12166 <td class="entry_name" rowspan="5">
12167 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12168 </td>
12169 <td class="entry_type">
12170 <span class="entry_type_name entry_type_name_enum">int32</span>
12171
12172 <span class="entry_type_visibility"> [public]</span>
12173
12174 <ul class="entry_type_enum">
12175 <li>
12176 <span class="entry_type_enum_name">OFF</span>
12177 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12178device returns captures from the image sensor.<wbr/></p></span>
12179 </li>
12180 <li>
12181 <span class="entry_type_enum_name">SOLID_COLOR</span>
12182 <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
12183respective color channel provided in
12184<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12185<p>For example:</p>
12186<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12187</code></pre>
12188<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12189<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12190</code></pre>
12191<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12192are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12193 </li>
12194 <li>
12195 <span class="entry_type_enum_name">COLOR_BARS</span>
12196 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12197<p>The vertical bars (left-to-right) are as follows:</p>
12198<ul>
12199<li>100% white</li>
12200<li>yellow</li>
12201<li>cyan</li>
12202<li>green</li>
12203<li>magenta</li>
12204<li>red</li>
12205<li>blue</li>
12206<li>black</li>
12207</ul>
12208<p>In general the image would look like the following:</p>
12209<pre><code>W Y C G M R B K
12210W Y C G M R B K
12211W Y C G M R B K
12212W Y C G M R B K
12213W Y C G M R B K
12214.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12215.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12216.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12217
12218(B = Blue,<wbr/> K = Black)
12219</code></pre>
12220<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12221When this is not possible,<wbr/> the bar size should be rounded
12222down to the nearest integer and the pattern can repeat
12223on the right side.<wbr/></p>
12224<p>Each bar's height must always take up the full sensor
12225pixel array height.<wbr/></p>
12226<p>Each pixel in this test pattern must be set to either
122270% intensity or 100% intensity.<wbr/></p></span>
12228 </li>
12229 <li>
12230 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12231 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12232each bar should start at its specified color at the top,<wbr/>
12233and fade to gray at the bottom.<wbr/></p>
12234<p>Furthermore each bar is further subdivided into a left and
12235right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12236and the right half should have a quantized gradient.<wbr/></p>
12237<p>In particular,<wbr/> the right half's should consist of blocks of the
12238same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12239<p>The least significant bits in the quantized gradient should
12240be copied from the most significant bits of the smooth gradient.<wbr/></p>
12241<p>The height of each bar should always be a multiple of 128.<wbr/>
12242When this is not the case,<wbr/> the pattern should repeat at the bottom
12243of the image.<wbr/></p></span>
12244 </li>
12245 <li>
12246 <span class="entry_type_enum_name">PN9</span>
12247 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12248generated from a PN9 512-bit sequence (typically implemented
12249in hardware with a linear feedback shift register).<wbr/></p>
12250<p>The generator should be reset at the beginning of each frame,<wbr/>
12251and thus each subsequent raw frame with this test pattern should
12252be exactly the same as the last.<wbr/></p></span>
12253 </li>
12254 <li>
12255 <span class="entry_type_enum_name">CUSTOM1</span>
12256 <span class="entry_type_enum_value">256</span>
12257 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12258available only on this camera device are at least this numeric
12259value.<wbr/></p>
12260<p>All of the custom test patterns will be static
12261(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12262 </li>
12263 </ul>
12264
12265 </td> <!-- entry_type -->
12266
12267 <td class="entry_description">
12268 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12269doing a real exposure from the camera.<wbr/></p>
12270 </td>
12271
12272 <td class="entry_units">
12273 </td>
12274
12275 <td class="entry_range">
12276 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12277<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12278 </td>
12279
12280 <td class="entry_tags">
12281 </td>
12282
12283 </tr>
12284 <tr class="entries_header">
12285 <th class="th_details" colspan="5">Details</th>
12286 </tr>
12287 <tr class="entry_cont">
12288 <td class="entry_details" colspan="5">
12289 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12290by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12291work as normal.<wbr/></p>
12292<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12293occur (and that the test pattern remain unmodified,<wbr/> since the flash
12294would not actually affect it).<wbr/></p>
12295 </td>
12296 </tr>
12297
12298 <tr class="entries_header">
12299 <th class="th_details" colspan="5">HAL Implementation Details</th>
12300 </tr>
12301 <tr class="entry_cont">
12302 <td class="entry_details" colspan="5">
12303 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12304<p>The HAL may choose to substitute test patterns from the sensor
12305with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12306indistinguishable to the ISP whether the data came from the
12307sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12308 </td>
12309 </tr>
12310
12311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12312 <!-- end of entry -->
12313
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012314
12315
12316 <!-- end of kind -->
12317 </tbody>
12318
12319 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012320 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012321
12322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012323 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012324
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012325 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012326 <tr>
12327 <th class="th_name">Property Name</th>
12328 <th class="th_type">Type</th>
12329 <th class="th_description">Description</th>
12330 <th class="th_units">Units</th>
12331 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012332 <th class="th_tags">Tags</th>
12333 </tr>
12334 </thead>
12335
12336 <tbody>
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012348 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012349 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012350 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012351 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012352 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012353
Zhijun He2f86a212014-01-15 10:34:02 -080012354 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012355
12356 <ul class="entry_type_enum">
12357 <li>
12358 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012359 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012360 </li>
12361 <li>
12362 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012363 <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 -080012364 </li>
12365 <li>
12366 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012367 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012368 </li>
12369 </ul>
12370
12371 </td> <!-- entry_type -->
12372
12373 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012374 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012375to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012376 </td>
12377
12378 <td class="entry_units">
12379 </td>
12380
12381 <td class="entry_range">
12382 </td>
12383
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012384 <td class="entry_tags">
12385 </td>
12386
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012387 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012388 <tr class="entries_header">
12389 <th class="th_details" colspan="5">Details</th>
12390 </tr>
12391 <tr class="entry_cont">
12392 <td class="entry_details" colspan="5">
12393 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12394camera device,<wbr/> and an identity lens shading map data will be provided
12395if <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
12396shading 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/>
12397the 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
12398shown below:</p>
12399<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/>
12400 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/>
12401 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/>
12402 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/>
12403 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/>
12404 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 ]
12405</code></pre>
12406<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12407camera device.<wbr/> Applications can request lens shading map data by setting
12408<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
12409lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12410by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12411 </td>
12412 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012413
12414
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012415 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12416 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012417
12418
12419 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012420 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012421 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012422 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012423 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012424 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012425
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012426 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012427
12428
12429 </td> <!-- entry_type -->
12430
12431 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012432 <p>Control the amount of shading correction
12433applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012434 </td>
12435
12436 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012437 unitless: 1-10; 10 is full shading
12438 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012439 </td>
12440
12441 <td class="entry_range">
12442 </td>
12443
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012444 <td class="entry_tags">
12445 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012446 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012447 </ul>
12448 </td>
12449
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012450 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012451
12452
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012453 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12454 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012455
12456
12457
12458 <!-- end of kind -->
12459 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012460 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012461
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012462 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012463 <tr>
12464 <th class="th_name">Property Name</th>
12465 <th class="th_type">Type</th>
12466 <th class="th_description">Description</th>
12467 <th class="th_units">Units</th>
12468 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012469 <th class="th_tags">Tags</th>
12470 </tr>
12471 </thead>
12472
12473 <tbody>
12474
12475
12476
12477
12478
12479
12480
12481
12482
12483
12484 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012485 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012486 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012487 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012488 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012489 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012490
Zhijun He2f86a212014-01-15 10:34:02 -080012491 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012492
12493 <ul class="entry_type_enum">
12494 <li>
12495 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012496 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012497 </li>
12498 <li>
12499 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012500 <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 -080012501 </li>
12502 <li>
12503 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012504 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012505 </li>
12506 </ul>
12507
12508 </td> <!-- entry_type -->
12509
12510 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012511 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012512to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012513 </td>
12514
12515 <td class="entry_units">
12516 </td>
12517
12518 <td class="entry_range">
12519 </td>
12520
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012521 <td class="entry_tags">
12522 </td>
12523
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012524 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012525 <tr class="entries_header">
12526 <th class="th_details" colspan="5">Details</th>
12527 </tr>
12528 <tr class="entry_cont">
12529 <td class="entry_details" colspan="5">
12530 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12531camera device,<wbr/> and an identity lens shading map data will be provided
12532if <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
12533shading 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/>
12534the 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
12535shown below:</p>
12536<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/>
12537 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/>
12538 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/>
12539 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/>
12540 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/>
12541 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 ]
12542</code></pre>
12543<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12544camera device.<wbr/> Applications can request lens shading map data by setting
12545<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
12546lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12547by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12548 </td>
12549 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012550
12551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012552 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012554
12555
12556
12557 <!-- end of kind -->
12558 </tbody>
12559
12560 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012561 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012562
12563
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012564 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012565
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012566 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012567 <tr>
12568 <th class="th_name">Property Name</th>
12569 <th class="th_type">Type</th>
12570 <th class="th_description">Description</th>
12571 <th class="th_units">Units</th>
12572 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012573 <th class="th_tags">Tags</th>
12574 </tr>
12575 </thead>
12576
12577 <tbody>
12578
12579
12580
12581
12582
12583
12584
12585
12586
12587
12588 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012589 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012590 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012591 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012592 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012593 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012594
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012595 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012596
12597 <ul class="entry_type_enum">
12598 <li>
12599 <span class="entry_type_enum_name">OFF</span>
12600 </li>
12601 <li>
12602 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012603 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12604only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012605 </li>
12606 <li>
12607 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012608 <span class="entry_type_enum_notes"><p>Optional Return all face
12609metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012610 </li>
12611 </ul>
12612
12613 </td> <!-- entry_type -->
12614
12615 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012616 <p>State of the face detector
12617unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012618 </td>
12619
12620 <td class="entry_units">
12621 </td>
12622
12623 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012624 <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 -080012625 </td>
12626
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012627 <td class="entry_tags">
12628 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012629 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012630 </ul>
12631 </td>
12632
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012633 </tr>
12634 <tr class="entries_header">
12635 <th class="th_details" colspan="5">Details</th>
12636 </tr>
12637 <tr class="entry_cont">
12638 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012639 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012640should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012641fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012642<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 -080012643 </td>
12644 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012645
12646
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012647 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12648 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012649
12650
12651 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012652 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012653 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012654 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012655 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012656 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012657
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012658 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012659
12660 <ul class="entry_type_enum">
12661 <li>
12662 <span class="entry_type_enum_name">OFF</span>
12663 </li>
12664 <li>
12665 <span class="entry_type_enum_name">ON</span>
12666 </li>
12667 </ul>
12668
12669 </td> <!-- entry_type -->
12670
12671 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012672 <p>Operating mode for histogram
12673generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012674 </td>
12675
12676 <td class="entry_units">
12677 </td>
12678
12679 <td class="entry_range">
12680 </td>
12681
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012682 <td class="entry_tags">
12683 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012684 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012685 </ul>
12686 </td>
12687
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012688 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012689
12690
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012691 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12692 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012693
12694
12695 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012696 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012697 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012698 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012699 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012700 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012701
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012702 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012703
12704 <ul class="entry_type_enum">
12705 <li>
12706 <span class="entry_type_enum_name">OFF</span>
12707 </li>
12708 <li>
12709 <span class="entry_type_enum_name">ON</span>
12710 </li>
12711 </ul>
12712
12713 </td> <!-- entry_type -->
12714
12715 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012716 <p>Operating mode for sharpness map
12717generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012718 </td>
12719
12720 <td class="entry_units">
12721 </td>
12722
12723 <td class="entry_range">
12724 </td>
12725
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012726 <td class="entry_tags">
12727 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012728 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012729 </ul>
12730 </td>
12731
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012732 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012733
12734
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012735 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12736 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012737
Zhijun He69fc0ea2013-07-17 09:42:58 -070012738
12739 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012740 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012741 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012742 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012743 <td class="entry_type">
12744 <span class="entry_type_name entry_type_name_enum">byte</span>
12745
12746 <span class="entry_type_visibility"> [public]</span>
12747
12748 <ul class="entry_type_enum">
12749 <li>
12750 <span class="entry_type_enum_name">OFF</span>
12751 </li>
12752 <li>
12753 <span class="entry_type_enum_name">ON</span>
12754 </li>
12755 </ul>
12756
12757 </td> <!-- entry_type -->
12758
12759 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012760 <p>Whether the HAL needs to output the lens
12761shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012762 </td>
12763
12764 <td class="entry_units">
12765 </td>
12766
12767 <td class="entry_range">
12768 </td>
12769
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012770 <td class="entry_tags">
12771 </td>
12772
12773 </tr>
12774 <tr class="entries_header">
12775 <th class="th_details" colspan="5">Details</th>
12776 </tr>
12777 <tr class="entry_cont">
12778 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012779 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012780<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 -080012781the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012782 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012783 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012784
12785
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012786 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12787 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012788
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012789
12790
12791 <!-- end of kind -->
12792 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012793 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012794
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012795 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012796 <tr>
12797 <th class="th_name">Property Name</th>
12798 <th class="th_type">Type</th>
12799 <th class="th_description">Description</th>
12800 <th class="th_units">Units</th>
12801 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012802 <th class="th_tags">Tags</th>
12803 </tr>
12804 </thead>
12805
12806 <tbody>
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012820 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012821 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012822 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012823 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012824 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012825 <span class="entry_type_container">x</span>
12826
12827 <span class="entry_type_array">
12828 n
12829 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012830 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012831 <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 -080012832
12833
12834 </td> <!-- entry_type -->
12835
12836 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012837 <p>Which face detection modes are available,<wbr/>
12838if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012839 </td>
12840
12841 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012842 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012843 OFF
12844 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012845 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012846 </td>
12847
12848 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012849 </td>
12850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012851 <td class="entry_tags">
12852 </td>
12853
12854 </tr>
12855 <tr class="entries_header">
12856 <th class="th_details" colspan="5">Details</th>
12857 </tr>
12858 <tr class="entry_cont">
12859 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012860 <p>OFF means face detection is disabled,<wbr/> it must
12861be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012862<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012863<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12864<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012865<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012866<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12867<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012868 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012869 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012870
12871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012872 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12873 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012874
12875
12876 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012877 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012878 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012879 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012880 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012881 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012882
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012883 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012884
12885
12886 </td> <!-- entry_type -->
12887
12888 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012889 <p>Number of histogram buckets
12890supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012891 </td>
12892
12893 <td class="entry_units">
12894 </td>
12895
12896 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012897 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012898 </td>
12899
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012900 <td class="entry_tags">
12901 </td>
12902
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012903 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012904
12905
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012906 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12907 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012908
12909
12910 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012911 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012912 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012913 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012914 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012915 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012916
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012917 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012918
12919
12920 </td> <!-- entry_type -->
12921
12922 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012923 <p>Maximum number of simultaneously detectable
12924faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012925 </td>
12926
12927 <td class="entry_units">
12928 </td>
12929
12930 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012931 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012932modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012933 </td>
12934
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012935 <td class="entry_tags">
12936 </td>
12937
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012938 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012939
12940
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012941 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12942 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012943
12944
12945 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012946 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012947 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012948 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012949 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012950 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012951
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012952 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012953
12954
12955 </td> <!-- entry_type -->
12956
12957 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012958 <p>Maximum value possible for a histogram
12959bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012960 </td>
12961
12962 <td class="entry_units">
12963 </td>
12964
12965 <td class="entry_range">
12966 </td>
12967
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012968 <td class="entry_tags">
12969 </td>
12970
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012971 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012972
12973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012974 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12975 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012976
12977
12978 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012979 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012980 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012981 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012982 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012983 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012984
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012985 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012986
12987
12988 </td> <!-- entry_type -->
12989
12990 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012991 <p>Maximum value possible for a sharpness map
12992region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012993 </td>
12994
12995 <td class="entry_units">
12996 </td>
12997
12998 <td class="entry_range">
12999 </td>
13000
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013001 <td class="entry_tags">
13002 </td>
13003
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013004 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013005
13006
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013007 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13008 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013009
13010
13011 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013012 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013013 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013014 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013015 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013016 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013017 <span class="entry_type_container">x</span>
13018
13019 <span class="entry_type_array">
13020 2
13021 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013022 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013023 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013024
13025
13026 </td> <!-- entry_type -->
13027
13028 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013029 <p>Dimensions of the sharpness
13030map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013031 </td>
13032
13033 <td class="entry_units">
13034 </td>
13035
13036 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013037 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013038 </td>
13039
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013040 <td class="entry_tags">
13041 </td>
13042
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013043 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013044
13045
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013046 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13047 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013048
13049
13050
13051
13052
13053
13054 <!-- end of kind -->
13055 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013056 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013057
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013058 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013059 <tr>
13060 <th class="th_name">Property Name</th>
13061 <th class="th_type">Type</th>
13062 <th class="th_description">Description</th>
13063 <th class="th_units">Units</th>
13064 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013065 <th class="th_tags">Tags</th>
13066 </tr>
13067 </thead>
13068
13069 <tbody>
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013081 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013082 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013083 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013084 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013085 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013086
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013087 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013088
13089 <ul class="entry_type_enum">
13090 <li>
13091 <span class="entry_type_enum_name">OFF</span>
13092 </li>
13093 <li>
13094 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013095 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13096only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013097 </li>
13098 <li>
13099 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013100 <span class="entry_type_enum_notes"><p>Optional Return all face
13101metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013102 </li>
13103 </ul>
13104
13105 </td> <!-- entry_type -->
13106
13107 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013108 <p>State of the face detector
13109unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013110 </td>
13111
13112 <td class="entry_units">
13113 </td>
13114
13115 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013116 <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 -080013117 </td>
13118
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013119 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013120 <ul class="entry_tags">
13121 <li><a href="#tag_BC">BC</a></li>
13122 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013123 </td>
13124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013125 </tr>
13126 <tr class="entries_header">
13127 <th class="th_details" colspan="5">Details</th>
13128 </tr>
13129 <tr class="entry_cont">
13130 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013131 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013132should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013133fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013134<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 -080013135 </td>
13136 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013137
13138
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013139 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13140 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013141
13142
13143 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013144 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013145 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013146 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013147 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013148 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013149 <span class="entry_type_container">x</span>
13150
13151 <span class="entry_type_array">
13152 n
13153 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013154 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013155
13156
13157 </td> <!-- entry_type -->
13158
13159 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013160 <p>List of unique IDs for detected
13161faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013162 </td>
13163
13164 <td class="entry_units">
13165 </td>
13166
13167 <td class="entry_range">
13168 </td>
13169
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013170 <td class="entry_tags">
13171 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013172 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013173 </ul>
13174 </td>
13175
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013176 </tr>
13177 <tr class="entries_header">
13178 <th class="th_details" colspan="5">Details</th>
13179 </tr>
13180 <tr class="entry_cont">
13181 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013182 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013183 </td>
13184 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013185
13186
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013187 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13188 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013189
13190
13191 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013192 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013193 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013194 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013195 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013196 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013197 <span class="entry_type_container">x</span>
13198
13199 <span class="entry_type_array">
13200 n x 6
13201 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013202 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013203 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013204
13205
13206 </td> <!-- entry_type -->
13207
13208 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013209 <p>List of landmarks for detected
13210faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013211 </td>
13212
13213 <td class="entry_units">
13214 </td>
13215
13216 <td class="entry_range">
13217 </td>
13218
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013219 <td class="entry_tags">
13220 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013221 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013222 </ul>
13223 </td>
13224
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013225 </tr>
13226 <tr class="entries_header">
13227 <th class="th_details" colspan="5">Details</th>
13228 </tr>
13229 <tr class="entry_cont">
13230 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013231 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013232 </td>
13233 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013234
13235
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013236 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13237 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013238
13239
13240 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013241 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013242 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013243 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013244 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013245 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013246 <span class="entry_type_container">x</span>
13247
13248 <span class="entry_type_array">
13249 n x 4
13250 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013251 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013252 <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 -080013253
13254
13255 </td> <!-- entry_type -->
13256
13257 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013258 <p>List of the bounding rectangles for detected
13259faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013260 </td>
13261
13262 <td class="entry_units">
13263 </td>
13264
13265 <td class="entry_range">
13266 </td>
13267
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013268 <td class="entry_tags">
13269 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013270 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013271 </ul>
13272 </td>
13273
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013274 </tr>
13275 <tr class="entries_header">
13276 <th class="th_details" colspan="5">Details</th>
13277 </tr>
13278 <tr class="entry_cont">
13279 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013280 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013281 </td>
13282 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013283
13284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013285 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13286 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013287
13288
13289 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013290 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013291 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013292 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013293 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013294 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013295 <span class="entry_type_container">x</span>
13296
13297 <span class="entry_type_array">
13298 n
13299 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013300 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013301
13302
13303 </td> <!-- entry_type -->
13304
13305 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013306 <p>List of the face confidence scores for
13307detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013308 </td>
13309
13310 <td class="entry_units">
13311 </td>
13312
13313 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013314 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013315 </td>
13316
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013317 <td class="entry_tags">
13318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013319 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013320 </ul>
13321 </td>
13322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013323 </tr>
13324 <tr class="entries_header">
13325 <th class="th_details" colspan="5">Details</th>
13326 </tr>
13327 <tr class="entry_cont">
13328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013329 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13330meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013331 </td>
13332 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013333
13334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013335 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13336 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013337
13338
13339 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013340 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013341 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013342 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013343 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013344 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013345 <span class="entry_type_container">x</span>
13346
13347 <span class="entry_type_array">
13348 n x 3
13349 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013350 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013351 <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 -080013352
13353
13354 </td> <!-- entry_type -->
13355
13356 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013357 <p>A 3-channel histogram based on the raw
13358sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013359 </td>
13360
13361 <td class="entry_units">
13362 </td>
13363
13364 <td class="entry_range">
13365 </td>
13366
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013367 <td class="entry_tags">
13368 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013369 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013370 </ul>
13371 </td>
13372
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013373 </tr>
13374 <tr class="entries_header">
13375 <th class="th_details" colspan="5">Details</th>
13376 </tr>
13377 <tr class="entry_cont">
13378 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013379 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013380(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 -080013381(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13382supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013383 </td>
13384 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013385
13386
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013387 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13388 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013389
13390
13391 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013392 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013393 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013394 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013395 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013396 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013397
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013398 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013399
13400 <ul class="entry_type_enum">
13401 <li>
13402 <span class="entry_type_enum_name">OFF</span>
13403 </li>
13404 <li>
13405 <span class="entry_type_enum_name">ON</span>
13406 </li>
13407 </ul>
13408
13409 </td> <!-- entry_type -->
13410
13411 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013412 <p>Operating mode for histogram
13413generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013414 </td>
13415
13416 <td class="entry_units">
13417 </td>
13418
13419 <td class="entry_range">
13420 </td>
13421
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013422 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013423 <ul class="entry_tags">
13424 <li><a href="#tag_V1">V1</a></li>
13425 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013426 </td>
13427
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013428 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013429
13430
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013431 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13432 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013433
13434
13435 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013436 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013437 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013438 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013439 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013440 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013441 <span class="entry_type_container">x</span>
13442
13443 <span class="entry_type_array">
13444 n x m x 3
13445 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013446 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013447 <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 -080013448
13449
13450 </td> <!-- entry_type -->
13451
13452 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013453 <p>A 3-channel sharpness map,<wbr/> based on the raw
13454sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013455 </td>
13456
13457 <td class="entry_units">
13458 </td>
13459
13460 <td class="entry_range">
13461 </td>
13462
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013463 <td class="entry_tags">
13464 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013465 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013466 </ul>
13467 </td>
13468
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013469 </tr>
13470 <tr class="entries_header">
13471 <th class="th_details" colspan="5">Details</th>
13472 </tr>
13473 <tr class="entry_cont">
13474 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013475 <p>If only a monochrome sharpness map is supported,<wbr/>
13476all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013477 </td>
13478 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013479
13480
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013481 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13482 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013483
13484
13485 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013486 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013487 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013488 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013489 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013490 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013491
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013492 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013493
13494 <ul class="entry_type_enum">
13495 <li>
13496 <span class="entry_type_enum_name">OFF</span>
13497 </li>
13498 <li>
13499 <span class="entry_type_enum_name">ON</span>
13500 </li>
13501 </ul>
13502
13503 </td> <!-- entry_type -->
13504
13505 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013506 <p>Operating mode for sharpness map
13507generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013508 </td>
13509
13510 <td class="entry_units">
13511 </td>
13512
13513 <td class="entry_range">
13514 </td>
13515
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013516 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013517 <ul class="entry_tags">
13518 <li><a href="#tag_V1">V1</a></li>
13519 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013520 </td>
13521
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013522 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013523
13524
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013525 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13526 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013527
Zhijun He69fc0ea2013-07-17 09:42:58 -070013528
13529 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013530 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013531 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013532 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013533 <td class="entry_type">
13534 <span class="entry_type_name">float</span>
13535 <span class="entry_type_container">x</span>
13536
13537 <span class="entry_type_array">
13538 4 x n x m
13539 </span>
13540 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013541 <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 -070013542
13543
13544 </td> <!-- entry_type -->
13545
13546 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013547 <p>The shading map is a low-resolution floating-point map
13548that lists the coefficients used to correct for vignetting,<wbr/> for each
13549Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013550 </td>
13551
13552 <td class="entry_units">
13553 </td>
13554
13555 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013556 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013557 </td>
13558
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013559 <td class="entry_tags">
13560 </td>
13561
13562 </tr>
13563 <tr class="entries_header">
13564 <th class="th_details" colspan="5">Details</th>
13565 </tr>
13566 <tr class="entry_cont">
13567 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013568 <p>The least shaded section of the image should have a gain factor
13569of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013570<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 -080013571must take into account the colorCorrection settings.<wbr/></p>
13572<p>The shading map is for the entire active pixel array,<wbr/> and is not
13573affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013574entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013575pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13576map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13577(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13578pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13579The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13580<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13581channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13582The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013583is 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 -080013584<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13585and must be smaller than 64x64.<wbr/></p>
13586<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013587<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13588<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013589[ 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/>
13590 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/>
13591 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/>
13592 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/>
13593 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/>
13594 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 -080013595</code></pre>
13596<p>The low-resolution scaling map images for each channel are
13597(displayed using nearest-neighbor interpolation):</p>
13598<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13599<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13600<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13601<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013602<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013603image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013604<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 -070013605 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013606 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013607
13608
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013609 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13610 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013611
13612
13613 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013614 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013615 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013616 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013617 <td class="entry_type">
13618 <span class="entry_type_name">float</span>
13619 <span class="entry_type_container">x</span>
13620
13621 <span class="entry_type_array">
13622 4
13623 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013624 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013625 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013626
13627
13628 </td> <!-- entry_type -->
13629
13630 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013631 <p>The best-fit color channel gains calculated
13632by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013633 </td>
13634
13635 <td class="entry_units">
13636 </td>
13637
13638 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013639 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013640 </td>
13641
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013642 <td class="entry_tags">
13643 </td>
13644
13645 </tr>
13646 <tr class="entries_header">
13647 <th class="th_details" colspan="5">Details</th>
13648 </tr>
13649 <tr class="entry_cont">
13650 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013651 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013652since statistics processing on data from a new frame
13653typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013654applied to that frame.<wbr/></p>
13655<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013656see <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 -080013657<p>This value should always be calculated by the AWB block,<wbr/>
13658regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013659 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013660 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013661
13662
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013663 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13664 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013665
13666
13667 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013668 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013669 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013670 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013671 <td class="entry_type">
13672 <span class="entry_type_name">rational</span>
13673 <span class="entry_type_container">x</span>
13674
13675 <span class="entry_type_array">
13676 3 x 3
13677 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013678 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013679 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013680
13681
13682 </td> <!-- entry_type -->
13683
13684 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013685 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013686calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013687output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013688 </td>
13689
13690 <td class="entry_units">
13691 </td>
13692
13693 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013694 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013695 </td>
13696
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013697 <td class="entry_tags">
13698 </td>
13699
13700 </tr>
13701 <tr class="entries_header">
13702 <th class="th_details" colspan="5">Details</th>
13703 </tr>
13704 <tr class="entry_cont">
13705 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013706 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013707statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013708for the next frame.<wbr/> These are the values the HAL believes
13709are the best fit for the current output frame.<wbr/> This may
13710be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013711statistics processing on data from a new frame typically
13712completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013713that frame.<wbr/></p>
13714<p>These estimates must be provided for all frames,<wbr/> even if
13715capture settings and color transforms are set by the application.<wbr/></p>
13716<p>This value should always be calculated by the AWB block,<wbr/>
13717regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013718 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013719 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013720
13721
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013722 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13723 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013724
13725
13726 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013727 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013728 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013729 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013730 <td class="entry_type">
13731 <span class="entry_type_name entry_type_name_enum">byte</span>
13732
13733 <span class="entry_type_visibility"> [public]</span>
13734
13735 <ul class="entry_type_enum">
13736 <li>
13737 <span class="entry_type_enum_name">NONE</span>
13738 </li>
13739 <li>
13740 <span class="entry_type_enum_name">50HZ</span>
13741 </li>
13742 <li>
13743 <span class="entry_type_enum_name">60HZ</span>
13744 </li>
13745 </ul>
13746
13747 </td> <!-- entry_type -->
13748
13749 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013750 <p>The HAL estimated scene illumination lighting
13751frequency</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013752 </td>
13753
13754 <td class="entry_units">
13755 </td>
13756
13757 <td class="entry_range">
13758 </td>
13759
Zhijun He69fc0ea2013-07-17 09:42:58 -070013760 <td class="entry_tags">
13761 </td>
13762
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013763 </tr>
13764 <tr class="entries_header">
13765 <th class="th_details" colspan="5">Details</th>
13766 </tr>
13767 <tr class="entry_cont">
13768 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013769 <p>Report NONE if there doesn't appear to be flickering
13770illumination</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013771 </td>
13772 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013773
13774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013775 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13776 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013777
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013778
13779
13780 <!-- end of kind -->
13781 </tbody>
13782
13783 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013784 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013785
13786
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013787 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013788
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013789 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013790 <tr>
13791 <th class="th_name">Property Name</th>
13792 <th class="th_type">Type</th>
13793 <th class="th_description">Description</th>
13794 <th class="th_units">Units</th>
13795 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013796 <th class="th_tags">Tags</th>
13797 </tr>
13798 </thead>
13799
13800 <tbody>
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013812 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013813 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013814 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013815 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013816 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013817 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013818
Zhijun He704d1282013-08-19 15:26:33 -070013819 <span class="entry_type_array">
13820 n x 2
13821 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013822 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013823 <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 -080013824
13825
13826 </td> <!-- entry_type -->
13827
13828 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013829 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13830channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13831CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013832 </td>
13833
13834 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013835 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013836 </td>
13837
13838 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013839 <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 -080013840 </td>
13841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013842 <td class="entry_tags">
13843 </td>
13844
13845 </tr>
13846 <tr class="entries_header">
13847 <th class="th_details" colspan="5">Details</th>
13848 </tr>
13849 <tr class="entry_cont">
13850 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013851 <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 -080013852 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013853 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013854
13855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013856 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13857 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013858
13859
13860 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013861 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013862 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013863 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013864 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013865 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013866 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013867
Zhijun He704d1282013-08-19 15:26:33 -070013868 <span class="entry_type_array">
13869 n x 2
13870 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013871 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013872 <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 -080013873
13874
13875 </td> <!-- entry_type -->
13876
13877 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013878 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
13879channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13880CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013881 </td>
13882
13883 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013884 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013885 </td>
13886
13887 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013888 <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 -080013889 </td>
13890
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013891 <td class="entry_tags">
13892 </td>
13893
13894 </tr>
13895 <tr class="entries_header">
13896 <th class="th_details" colspan="5">Details</th>
13897 </tr>
13898 <tr class="entry_cont">
13899 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013900 <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 -080013901 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013902 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013903
13904
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013905 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13906 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013907
13908
13909 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013910 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013911 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013912 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013913 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013914 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013915 <span class="entry_type_container">x</span>
13916
13917 <span class="entry_type_array">
13918 n x 2
13919 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013920 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013921 <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 -080013922
13923
13924 </td> <!-- entry_type -->
13925
13926 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013927 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
13928channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13929CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013930 </td>
13931
13932 <td class="entry_units">
13933 </td>
13934
13935 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013936 <p>0-1 on both input and output coordinates,<wbr/> normalized
13937as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013938 </td>
13939
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013940 <td class="entry_tags">
13941 <ul class="entry_tags">
13942 <li><a href="#tag_DNG">DNG</a></li>
13943 </ul>
13944 </td>
13945
13946 </tr>
13947 <tr class="entries_header">
13948 <th class="th_details" colspan="5">Details</th>
13949 </tr>
13950 <tr class="entry_cont">
13951 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013952 <p>Each channel's curve is defined by an array of control points:</p>
13953<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
13954 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
139552 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
13956<p>These are sorted in order of increasing <code>Pin</code>; it is always
13957guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
13958define a complete mapping.<wbr/> For input values between control points,<wbr/>
13959the camera device must linearly interpolate between the control
13960points.<wbr/></p>
13961<p>Each curve can have an independent number of points,<wbr/> and the number
13962of points can be less than max (that is,<wbr/> the request doesn't have to
13963always provide a curve with number of points equivalent to
13964<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
13965<p>A few examples,<wbr/> and their corresponding graphical mappings; these
13966only specify the red channel and the precision is limited to 4
13967digits,<wbr/> for conciseness.<wbr/></p>
13968<p>Linear mapping:</p>
13969<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 ]
13970</code></pre>
13971<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
13972<p>Invert mapping:</p>
13973<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 ]
13974</code></pre>
13975<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
13976<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
13977<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13978 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/>
13979 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/>
13980 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/>
13981 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 ]
13982</code></pre>
13983<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
13984<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
13985<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13986 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/>
13987 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/>
13988 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/>
13989 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 ]
13990</code></pre>
13991<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013992 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013993 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013994
Igor Murashkin94e06c42014-01-13 16:51:17 -080013995 <tr class="entries_header">
13996 <th class="th_details" colspan="5">HAL Implementation Details</th>
13997 </tr>
13998 <tr class="entry_cont">
13999 <td class="entry_details" colspan="5">
14000 <p>For good quality of mapping,<wbr/> at least 128 control points are
14001preferred.<wbr/></p>
14002<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14003control points used as are available.<wbr/></p>
14004 </td>
14005 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014006
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014007 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14008 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014009
14010
14011 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014012 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014013 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014014 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014015 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014016 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014017
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014018 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014019
14020 <ul class="entry_type_enum">
14021 <li>
14022 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014023 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014024android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14025<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14026for applying the tonemapping curve specified by
14027<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
14028<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14029<p>Must not slow down frame rate relative to raw
14030sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014031 </li>
14032 <li>
14033 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014034 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14035<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014036 </li>
14037 <li>
14038 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014039 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14040<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014041 </li>
14042 </ul>
14043
14044 </td> <!-- entry_type -->
14045
14046 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014047 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014048 </td>
14049
14050 <td class="entry_units">
14051 </td>
14052
14053 <td class="entry_range">
14054 </td>
14055
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014056 <td class="entry_tags">
14057 </td>
14058
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014059 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014060 <tr class="entries_header">
14061 <th class="th_details" colspan="5">Details</th>
14062 </tr>
14063 <tr class="entry_cont">
14064 <td class="entry_details" colspan="5">
14065 <p>When switching to an application-defined contrast curve by setting
14066<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14067per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14068mapping from input high-bit-depth pixel value to the output
14069low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14070and output may change depending on the camera pipeline,<wbr/> the values
14071are specified by normalized floating-point numbers.<wbr/></p>
14072<p>More-complex color mapping operations such as 3D color look-up
14073tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14074transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14075CONTRAST_<wbr/>CURVE.<wbr/></p>
14076<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14077emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14078<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/>
14079These values are always available,<wbr/> and as close as possible to the
14080actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14081<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14082provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14083roughly the same.<wbr/></p>
14084 </td>
14085 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014086
14087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014088 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14089 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014090
14091
14092
14093 <!-- end of kind -->
14094 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014095 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014096
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014097 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014098 <tr>
14099 <th class="th_name">Property Name</th>
14100 <th class="th_type">Type</th>
14101 <th class="th_description">Description</th>
14102 <th class="th_units">Units</th>
14103 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014104 <th class="th_tags">Tags</th>
14105 </tr>
14106 </thead>
14107
14108 <tbody>
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014120 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014121 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014122 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014123 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014124 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014125
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014126 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014127
14128
14129 </td> <!-- entry_type -->
14130
14131 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014132 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014133tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14134<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 -080014135 </td>
14136
14137 <td class="entry_units">
14138 </td>
14139
14140 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014141 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014142 </td>
14143
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014144 <td class="entry_tags">
14145 </td>
14146
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014147 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014148 <tr class="entries_header">
14149 <th class="th_details" colspan="5">Details</th>
14150 </tr>
14151 <tr class="entry_cont">
14152 <td class="entry_details" colspan="5">
14153 <p>If the actual number of points provided by the application (in
14154android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14155resample the curve to its internal representation,<wbr/> using linear
14156interpolation.<wbr/></p>
14157<p>The output curves in the result metadata may have a different number
14158of points than the input curves,<wbr/> and will represent the actual
14159hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14160 </td>
14161 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014162
Igor Murashkin94e06c42014-01-13 16:51:17 -080014163 <tr class="entries_header">
14164 <th class="th_details" colspan="5">HAL Implementation Details</th>
14165 </tr>
14166 <tr class="entry_cont">
14167 <td class="entry_details" colspan="5">
14168 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14169 </td>
14170 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014171
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014172 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14173 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014174
14175
14176
14177 <!-- end of kind -->
14178 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014179 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014180
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014181 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014182 <tr>
14183 <th class="th_name">Property Name</th>
14184 <th class="th_type">Type</th>
14185 <th class="th_description">Description</th>
14186 <th class="th_units">Units</th>
14187 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014188 <th class="th_tags">Tags</th>
14189 </tr>
14190 </thead>
14191
14192 <tbody>
14193
14194
14195
14196
14197
14198
14199
14200
14201
14202
14203 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014204 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014205 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014206 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014207 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014208 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014209 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014210
Zhijun He704d1282013-08-19 15:26:33 -070014211 <span class="entry_type_array">
14212 n x 2
14213 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014214 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014215 <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 -080014216
14217
14218 </td> <!-- entry_type -->
14219
14220 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014221 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14222channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14223CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014224 </td>
14225
14226 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014227 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014228 </td>
14229
14230 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014231 <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 -080014232 </td>
14233
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014234 <td class="entry_tags">
14235 </td>
14236
14237 </tr>
14238 <tr class="entries_header">
14239 <th class="th_details" colspan="5">Details</th>
14240 </tr>
14241 <tr class="entry_cont">
14242 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014243 <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 -080014244 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014245 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014246
14247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014248 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14249 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014250
14251
14252 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014253 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014254 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014255 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014256 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014257 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014258 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014259
Zhijun He704d1282013-08-19 15:26:33 -070014260 <span class="entry_type_array">
14261 n x 2
14262 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014263 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014264 <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 -080014265
14266
14267 </td> <!-- entry_type -->
14268
14269 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014270 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14271channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14272CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014273 </td>
14274
14275 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014276 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014277 </td>
14278
14279 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014280 <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 -080014281 </td>
14282
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014283 <td class="entry_tags">
14284 </td>
14285
14286 </tr>
14287 <tr class="entries_header">
14288 <th class="th_details" colspan="5">Details</th>
14289 </tr>
14290 <tr class="entry_cont">
14291 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014292 <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 -080014293 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014294 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014295
14296
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014297 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14298 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014299
14300
14301 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014302 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014303 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014304 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014305 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014306 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014307 <span class="entry_type_container">x</span>
14308
14309 <span class="entry_type_array">
14310 n x 2
14311 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014312 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014313 <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 -080014314
14315
14316 </td> <!-- entry_type -->
14317
14318 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014319 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14320channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14321CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014322 </td>
14323
14324 <td class="entry_units">
14325 </td>
14326
14327 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014328 <p>0-1 on both input and output coordinates,<wbr/> normalized
14329as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014330 </td>
14331
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014332 <td class="entry_tags">
14333 <ul class="entry_tags">
14334 <li><a href="#tag_DNG">DNG</a></li>
14335 </ul>
14336 </td>
14337
14338 </tr>
14339 <tr class="entries_header">
14340 <th class="th_details" colspan="5">Details</th>
14341 </tr>
14342 <tr class="entry_cont">
14343 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014344 <p>Each channel's curve is defined by an array of control points:</p>
14345<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14346 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
143472 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14348<p>These are sorted in order of increasing <code>Pin</code>; it is always
14349guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14350define a complete mapping.<wbr/> For input values between control points,<wbr/>
14351the camera device must linearly interpolate between the control
14352points.<wbr/></p>
14353<p>Each curve can have an independent number of points,<wbr/> and the number
14354of points can be less than max (that is,<wbr/> the request doesn't have to
14355always provide a curve with number of points equivalent to
14356<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14357<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14358only specify the red channel and the precision is limited to 4
14359digits,<wbr/> for conciseness.<wbr/></p>
14360<p>Linear mapping:</p>
14361<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 ]
14362</code></pre>
14363<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14364<p>Invert mapping:</p>
14365<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 ]
14366</code></pre>
14367<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14368<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14369<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14370 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/>
14371 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/>
14372 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/>
14373 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 ]
14374</code></pre>
14375<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14376<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14377<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14378 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/>
14379 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/>
14380 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/>
14381 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 ]
14382</code></pre>
14383<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014384 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014385 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014386
Igor Murashkin94e06c42014-01-13 16:51:17 -080014387 <tr class="entries_header">
14388 <th class="th_details" colspan="5">HAL Implementation Details</th>
14389 </tr>
14390 <tr class="entry_cont">
14391 <td class="entry_details" colspan="5">
14392 <p>For good quality of mapping,<wbr/> at least 128 control points are
14393preferred.<wbr/></p>
14394<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14395control points used as are available.<wbr/></p>
14396 </td>
14397 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014398
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014399 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14400 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014401
14402
14403 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014404 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014405 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014406 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014407 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014408 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014409
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014410 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014411
14412 <ul class="entry_type_enum">
14413 <li>
14414 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014415 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014416android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14417<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14418for applying the tonemapping curve specified by
14419<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
14420<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14421<p>Must not slow down frame rate relative to raw
14422sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014423 </li>
14424 <li>
14425 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014426 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14427<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014428 </li>
14429 <li>
14430 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014431 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14432<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014433 </li>
14434 </ul>
14435
14436 </td> <!-- entry_type -->
14437
14438 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014439 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014440 </td>
14441
14442 <td class="entry_units">
14443 </td>
14444
14445 <td class="entry_range">
14446 </td>
14447
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014448 <td class="entry_tags">
14449 </td>
14450
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014451 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014452 <tr class="entries_header">
14453 <th class="th_details" colspan="5">Details</th>
14454 </tr>
14455 <tr class="entry_cont">
14456 <td class="entry_details" colspan="5">
14457 <p>When switching to an application-defined contrast curve by setting
14458<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14459per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14460mapping from input high-bit-depth pixel value to the output
14461low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14462and output may change depending on the camera pipeline,<wbr/> the values
14463are specified by normalized floating-point numbers.<wbr/></p>
14464<p>More-complex color mapping operations such as 3D color look-up
14465tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14466transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14467CONTRAST_<wbr/>CURVE.<wbr/></p>
14468<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14469emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14470<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/>
14471These values are always available,<wbr/> and as close as possible to the
14472actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14473<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14474provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14475roughly the same.<wbr/></p>
14476 </td>
14477 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014478
14479
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014480 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14481 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014482
14483
14484
14485 <!-- end of kind -->
14486 </tbody>
14487
14488 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014489 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014490
14491
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014492 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014493
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014494 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014495 <tr>
14496 <th class="th_name">Property Name</th>
14497 <th class="th_type">Type</th>
14498 <th class="th_description">Description</th>
14499 <th class="th_units">Units</th>
14500 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014501 <th class="th_tags">Tags</th>
14502 </tr>
14503 </thead>
14504
14505 <tbody>
14506
14507
14508
14509
14510
14511
14512
14513
14514
14515
14516 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014517 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014518 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014519 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014520 <td class="entry_type">
14521 <span class="entry_type_name entry_type_name_enum">byte</span>
14522
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014523 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014524
14525 <ul class="entry_type_enum">
14526 <li>
14527 <span class="entry_type_enum_name">OFF</span>
14528 </li>
14529 <li>
14530 <span class="entry_type_enum_name">ON</span>
14531 </li>
14532 </ul>
14533
14534 </td> <!-- entry_type -->
14535
14536 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014537 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014538that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014539Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014540disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014541any untrusted applications.<wbr/></p>
14542<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14543transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14544data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014545<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014546doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014547 </td>
14548
14549 <td class="entry_units">
14550 </td>
14551
14552 <td class="entry_range">
14553 </td>
14554
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014555 <td class="entry_tags">
14556 </td>
14557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014558 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014559
14560
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014561 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14562 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014563
14564
14565
14566 <!-- end of kind -->
14567 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014568 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014569
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014570 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014571 <tr>
14572 <th class="th_name">Property Name</th>
14573 <th class="th_type">Type</th>
14574 <th class="th_description">Description</th>
14575 <th class="th_units">Units</th>
14576 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014577 <th class="th_tags">Tags</th>
14578 </tr>
14579 </thead>
14580
14581 <tbody>
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014593 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014594 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014595 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014596 <td class="entry_type">
14597 <span class="entry_type_name entry_type_name_enum">byte</span>
14598
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014599 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014600
14601 <ul class="entry_type_enum">
14602 <li>
14603 <span class="entry_type_enum_name">OFF</span>
14604 </li>
14605 <li>
14606 <span class="entry_type_enum_name">ON</span>
14607 </li>
14608 </ul>
14609
14610 </td> <!-- entry_type -->
14611
14612 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014613 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014614that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014615Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014616disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014617any untrusted applications.<wbr/></p>
14618<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14619transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14620data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014621<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014622doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014623 </td>
14624
14625 <td class="entry_units">
14626 </td>
14627
14628 <td class="entry_range">
14629 </td>
14630
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014631 <td class="entry_tags">
14632 </td>
14633
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014634 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014635
14636
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014637 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14638 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014639
14640
14641
14642 <!-- end of kind -->
14643 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014644 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014645
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014646 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014647 <tr>
14648 <th class="th_name">Property Name</th>
14649 <th class="th_type">Type</th>
14650 <th class="th_description">Description</th>
14651 <th class="th_units">Units</th>
14652 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014653 <th class="th_tags">Tags</th>
14654 </tr>
14655 </thead>
14656
14657 <tbody>
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014669 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014670 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014671 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014672 <td class="entry_type">
14673 <span class="entry_type_name entry_type_name_enum">byte</span>
14674 <span class="entry_type_container">x</span>
14675
14676 <span class="entry_type_array">
14677 n
14678 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014679 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014680
14681 <ul class="entry_type_enum">
14682 <li>
14683 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014684 <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 -070014685 </li>
14686 </ul>
14687
14688 </td> <!-- entry_type -->
14689
14690 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014691 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014692 </td>
14693
14694 <td class="entry_units">
14695 </td>
14696
14697 <td class="entry_range">
14698 </td>
14699
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014700 <td class="entry_tags">
14701 </td>
14702
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014703 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014704
14705
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014706 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14707 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014708
14709
14710
14711 <!-- end of kind -->
14712 </tbody>
14713
14714 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014715 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014716
14717
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014718 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014719
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014720 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014721 <tr>
14722 <th class="th_name">Property Name</th>
14723 <th class="th_type">Type</th>
14724 <th class="th_description">Description</th>
14725 <th class="th_units">Units</th>
14726 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014727 <th class="th_tags">Tags</th>
14728 </tr>
14729 </thead>
14730
14731 <tbody>
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014743 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014744 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014745 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014746 <td class="entry_type">
14747 <span class="entry_type_name entry_type_name_enum">byte</span>
14748
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014749 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014750
14751 <ul class="entry_type_enum">
14752 <li>
14753 <span class="entry_type_enum_name">LIMITED</span>
14754 </li>
14755 <li>
14756 <span class="entry_type_enum_name">FULL</span>
14757 </li>
14758 </ul>
14759
14760 </td> <!-- entry_type -->
14761
14762 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014763 <p>The camera 3 HAL device can implement one of two possible
14764operational modes; limited and full.<wbr/> Full support is
14765expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014766hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014767camera HAL device v1 implementation,<wbr/> and is expected from
14768older or inexpensive devices.<wbr/> Full is a strict superset of
14769limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14770<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014771 </td>
14772
14773 <td class="entry_units">
14774 </td>
14775
14776 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014777 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014778 </td>
14779
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014780 <td class="entry_tags">
14781 </td>
14782
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014783 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014784
14785
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014786 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14787 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014788
14789
14790
14791 <!-- end of kind -->
14792 </tbody>
14793
14794 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014795 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014796
14797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014798 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014799
14800 <thead class="entries_header">
14801 <tr>
14802 <th class="th_name">Property Name</th>
14803 <th class="th_type">Type</th>
14804 <th class="th_description">Description</th>
14805 <th class="th_units">Units</th>
14806 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014807 <th class="th_tags">Tags</th>
14808 </tr>
14809 </thead>
14810
14811 <tbody>
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014823 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014824 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014825 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014826 <td class="entry_type">
14827 <span class="entry_type_name entry_type_name_enum">byte</span>
14828
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014829 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014830
14831 <ul class="entry_type_enum">
14832 <li>
14833 <span class="entry_type_enum_name">OFF</span>
14834 </li>
14835 <li>
14836 <span class="entry_type_enum_name">ON</span>
14837 </li>
14838 </ul>
14839
14840 </td> <!-- entry_type -->
14841
14842 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014843 <p>Whether black-level compensation is locked
14844to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014845 </td>
14846
14847 <td class="entry_units">
14848 </td>
14849
14850 <td class="entry_range">
14851 </td>
14852
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014853 <td class="entry_tags">
14854 <ul class="entry_tags">
14855 <li><a href="#tag_HAL2">HAL2</a></li>
14856 </ul>
14857 </td>
14858
14859 </tr>
14860 <tr class="entries_header">
14861 <th class="th_details" colspan="5">Details</th>
14862 </tr>
14863 <tr class="entry_cont">
14864 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014865 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014866compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080014867OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014868<p>Since changes to certain capture parameters (such as
14869exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080014870compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014871the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080014872metadata.<wbr/></p>
14873<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014874<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014875<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14876<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14877<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14878<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14879<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14880<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014881</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014882<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080014883device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014884result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014885<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014886<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14887<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14888<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14889<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
14890<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14891<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014892</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014893<p>This indicates to the application that on frame 4,<wbr/> black
14894levels were reset due to exposure value changes,<wbr/> and pixel
14895values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014896<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080014897possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014898other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080014899or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014900 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014901 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014902
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014903 <tr class="entries_header">
14904 <th class="th_details" colspan="5">HAL Implementation Details</th>
14905 </tr>
14906 <tr class="entry_cont">
14907 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014908 <p>If for some reason black level locking is no longer possible
14909(for example,<wbr/> the analog gain has changed,<wbr/> which forces
14910black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014911override this request (and it must report 'OFF' when this
14912does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080014913possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014914 </td>
14915 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014916
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014917 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14918 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014919
14920
14921
14922 <!-- end of kind -->
14923 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014924 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014925
14926 <thead class="entries_header">
14927 <tr>
14928 <th class="th_name">Property Name</th>
14929 <th class="th_type">Type</th>
14930 <th class="th_description">Description</th>
14931 <th class="th_units">Units</th>
14932 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014933 <th class="th_tags">Tags</th>
14934 </tr>
14935 </thead>
14936
14937 <tbody>
14938
14939
14940
14941
14942
14943
14944
14945
14946
14947
14948 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014949 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014950 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014951 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014952 <td class="entry_type">
14953 <span class="entry_type_name entry_type_name_enum">byte</span>
14954
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014955 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014956
14957 <ul class="entry_type_enum">
14958 <li>
14959 <span class="entry_type_enum_name">OFF</span>
14960 </li>
14961 <li>
14962 <span class="entry_type_enum_name">ON</span>
14963 </li>
14964 </ul>
14965
14966 </td> <!-- entry_type -->
14967
14968 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014969 <p>Whether black-level compensation is locked
14970to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014971 </td>
14972
14973 <td class="entry_units">
14974 </td>
14975
14976 <td class="entry_range">
14977 </td>
14978
Zhijun He69fc0ea2013-07-17 09:42:58 -070014979 <td class="entry_tags">
14980 <ul class="entry_tags">
14981 <li><a href="#tag_HAL2">HAL2</a></li>
14982 </ul>
14983 </td>
14984
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014985 </tr>
14986 <tr class="entries_header">
14987 <th class="th_details" colspan="5">Details</th>
14988 </tr>
14989 <tr class="entry_cont">
14990 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014991 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014992ON 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 -080014993a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080014994perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014995 </td>
14996 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014997
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014998 <tr class="entries_header">
14999 <th class="th_details" colspan="5">HAL Implementation Details</th>
15000 </tr>
15001 <tr class="entry_cont">
15002 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015003 <p>If for some reason black level locking is no longer possible
15004(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15005black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015006override this request (and it must report 'OFF' when this
15007does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015008possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015009 </td>
15010 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015011
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015012 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15013 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015014
15015
15016
15017 <!-- end of kind -->
15018 </tbody>
15019
15020 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015021 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15022
15023
15024 <tr><td colspan="6" class="kind">dynamic</td></tr>
15025
15026 <thead class="entries_header">
15027 <tr>
15028 <th class="th_name">Property Name</th>
15029 <th class="th_type">Type</th>
15030 <th class="th_description">Description</th>
15031 <th class="th_units">Units</th>
15032 <th class="th_range">Range</th>
15033 <th class="th_tags">Tags</th>
15034 </tr>
15035 </thead>
15036
15037 <tbody>
15038
15039
15040
15041
15042
15043
15044
15045
15046
15047
15048 <tr class="entry" id="dynamic_android.sync.frameNumber">
15049 <td class="entry_name" rowspan="5">
15050 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15051 </td>
15052 <td class="entry_type">
15053 <span class="entry_type_name entry_type_name_enum">int64</span>
15054
15055 <span class="entry_type_visibility"> [hidden]</span>
15056
15057 <ul class="entry_type_enum">
15058 <li>
15059 <span class="entry_type_enum_name">CONVERGING</span>
15060 <span class="entry_type_enum_value">-1</span>
15061 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15062Synchronization is in progress,<wbr/> and reading metadata from this
15063result may include a mix of data that have taken effect since the
15064last synchronization time.<wbr/></p>
15065<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15066this value will update to the actual frame number frame number
15067the result is guaranteed to be synchronized to (as long as the
15068request settings remain constant).<wbr/></p></span>
15069 </li>
15070 <li>
15071 <span class="entry_type_enum_name">UNKNOWN</span>
15072 <span class="entry_type_enum_value">-2</span>
15073 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15074result may have already converged,<wbr/> or it may be in progress.<wbr/>
15075Reading from this result may include some mix of settings from
15076past requests.<wbr/></p>
15077<p>After a settings change,<wbr/> the new settings will eventually all
15078take effect for the output buffers and results.<wbr/> However,<wbr/> this
15079value will not change when that happens.<wbr/> Altering settings
15080rapidly may provide outcomes using mixes of settings from recent
15081requests.<wbr/></p>
15082<p>This value is intended primarily for backwards compatibility with
15083the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15084 </li>
15085 </ul>
15086
15087 </td> <!-- entry_type -->
15088
15089 <td class="entry_description">
15090 <p>The frame number corresponding to the last request
15091with which the output result (metadata + buffers) has been fully
15092synchronized.<wbr/></p>
15093 </td>
15094
15095 <td class="entry_units">
15096 </td>
15097
15098 <td class="entry_range">
15099 <p>Either a non-negative value corresponding to a
15100<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15101 </td>
15102
15103 <td class="entry_tags">
15104 <ul class="entry_tags">
15105 <li><a href="#tag_LIMITED">LIMITED</a></li>
15106 </ul>
15107 </td>
15108
15109 </tr>
15110 <tr class="entries_header">
15111 <th class="th_details" colspan="5">Details</th>
15112 </tr>
15113 <tr class="entry_cont">
15114 <td class="entry_details" colspan="5">
15115 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15116delay of several frames before the controls get applied.<wbr/> A camera
15117device may either choose to account for this delay by implementing a
15118pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15119it may start streaming control changes that span over several frame
15120boundaries.<wbr/></p>
15121<p>In the latter case,<wbr/> whenever a request's settings change relative to
15122the previous submitted request,<wbr/> the full set of changes may take
15123multiple frame durations to fully take effect.<wbr/> Some settings may
15124take effect sooner (in less frame durations) than others.<wbr/></p>
15125<p>While a set of control changes are being propagated,<wbr/> this value
15126will be CONVERGING.<wbr/></p>
15127<p>Once it is fully known that a set of control changes have been
15128finished propagating,<wbr/> and the resulting updated control settings
15129have been read back by the camera device,<wbr/> this value will be set
15130to a non-negative frame number (corresponding to the request to
15131which the results have synchronized to).<wbr/></p>
15132<p>Older camera device implementations may not have a way to detect
15133when all camera controls have been applied,<wbr/> and will always set this
15134value to UNKNOWN.<wbr/></p>
15135<p>FULL capability devices will always have this value set to the
15136frame number of the request corresponding to this result.<wbr/></p>
15137<p><em>Further details</em>:</p>
15138<ul>
15139<li>Whenever a request differs from the last request,<wbr/> any future
15140results not yet returned may have this value set to CONVERGING (this
15141could include any in-progress captures not yet returned by the camera
15142device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15143<li>Submitting a series of multiple requests that differ from the
15144previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15145moves the new synchronization frame to the last non-repeating
15146request (using the smallest frame number from the contiguous list of
15147repeating requests).<wbr/></li>
15148<li>Submitting the same request repeatedly will not change this value
15149to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15150<li>When this value changes to non-negative,<wbr/> that means that all of the
15151metadata controls from the request have been applied,<wbr/> all of the
15152metadata controls from the camera device have been read to the
15153updated values (into the result),<wbr/> and all of the graphics buffers
15154corresponding to this result are also synchronized to the request.<wbr/></li>
15155</ul>
15156<p><em>Pipeline considerations</em>:</p>
15157<p>Submitting a request with updated controls relative to the previously
15158submitted requests may also invalidate the synchronization state
15159of all the results corresponding to currently in-flight requests.<wbr/></p>
15160<p>In other words,<wbr/> results for this current request and up to
15161<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15162<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15163 </td>
15164 </tr>
15165
15166 <tr class="entries_header">
15167 <th class="th_details" colspan="5">HAL Implementation Details</th>
15168 </tr>
15169 <tr class="entry_cont">
15170 <td class="entry_details" colspan="5">
15171 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15172is also UNKNOWN.<wbr/></p>
15173<p>FULL capability devices should simply set this value to the
15174<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15175 </td>
15176 </tr>
15177
15178 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15179 <!-- end of entry -->
15180
15181
15182
15183 <!-- end of kind -->
15184 </tbody>
15185 <tr><td colspan="6" class="kind">static</td></tr>
15186
15187 <thead class="entries_header">
15188 <tr>
15189 <th class="th_name">Property Name</th>
15190 <th class="th_type">Type</th>
15191 <th class="th_description">Description</th>
15192 <th class="th_units">Units</th>
15193 <th class="th_range">Range</th>
15194 <th class="th_tags">Tags</th>
15195 </tr>
15196 </thead>
15197
15198 <tbody>
15199
15200
15201
15202
15203
15204
15205
15206
15207
15208
15209 <tr class="entry" id="static_android.sync.maxLatency">
15210 <td class="entry_name" rowspan="5">
15211 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15212 </td>
15213 <td class="entry_type">
15214 <span class="entry_type_name entry_type_name_enum">int32</span>
15215
15216 <span class="entry_type_visibility"> [public]</span>
15217
15218 <ul class="entry_type_enum">
15219 <li>
15220 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15221 <span class="entry_type_enum_value">0</span>
15222 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15223(and furthermore for all results,<wbr/>
15224<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>
15225<p>Changing controls over multiple requests one after another will
15226produce results that have those controls applied atomically
15227each frame.<wbr/></p>
15228<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15229 </li>
15230 <li>
15231 <span class="entry_type_enum_name">UNKNOWN</span>
15232 <span class="entry_type_enum_value">-1</span>
15233 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15234of the past requests applied to the camera settings.<wbr/></p>
15235<p>By submitting a series of identical requests,<wbr/> the camera device
15236will eventually have the camera settings applied,<wbr/> but it is
15237unknown when that exact point will be.<wbr/></p></span>
15238 </li>
15239 </ul>
15240
15241 </td> <!-- entry_type -->
15242
15243 <td class="entry_description">
15244 <p>The maximum number of frames that can occur after a request
15245(different than the previous) has been submitted,<wbr/> and before the
15246result's state becomes synchronized (by setting
15247<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15248 </td>
15249
15250 <td class="entry_units">
15251 number of processed requests
15252 </td>
15253
15254 <td class="entry_range">
15255 <p>&gt;= -1</p>
15256 </td>
15257
15258 <td class="entry_tags">
15259 <ul class="entry_tags">
15260 <li><a href="#tag_LIMITED">LIMITED</a></li>
15261 </ul>
15262 </td>
15263
15264 </tr>
15265 <tr class="entries_header">
15266 <th class="th_details" colspan="5">Details</th>
15267 </tr>
15268 <tr class="entry_cont">
15269 <td class="entry_details" colspan="5">
15270 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15271between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15272<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15273<p>In other words this acts as an upper boundary for how many frames
15274must occur before the camera device knows for a fact that the new
15275submitted camera settings have been applied in outgoing frames.<wbr/></p>
15276<p>For example if the distance was 2,<wbr/></p>
15277<pre><code>initial request = X (repeating)
15278request1 = X
15279request2 = Y
15280request3 = Y
15281request4 = Y
15282
15283where requestN has frameNumber N,<wbr/> and the first of the repeating
15284initial request's has frameNumber F (and F &lt; 1).<wbr/>
15285
15286initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15287result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15288result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15289result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15290result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15291
15292where resultN has frameNumber N.<wbr/>
15293</code></pre>
15294<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15295<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15296<code>4 - 2 = 2</code>.<wbr/></p>
15297 </td>
15298 </tr>
15299
15300 <tr class="entries_header">
15301 <th class="th_details" colspan="5">HAL Implementation Details</th>
15302 </tr>
15303 <tr class="entry_cont">
15304 <td class="entry_details" colspan="5">
15305 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15306<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15307<p>LIMITED devices are strongly encouraged to use a non-negative
15308value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15309to know when sensor settings have been applied.<wbr/></p>
15310 </td>
15311 </tr>
15312
15313 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15314 <!-- end of entry -->
15315
15316
15317
15318 <!-- end of kind -->
15319 </tbody>
15320
15321 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015322<!-- </namespace> -->
15323 </table>
15324
15325 <div class="tags" id="tag_index">
15326 <h2>Tags</h2>
15327 <ul>
15328 <li id="tag_AWB">AWB -
15329 Needed for auto white balance
15330
15331 <ul class="tags_entries">
15332 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15333 </ul>
15334 </li> <!-- tag_AWB -->
15335 <li id="tag_BC">BC -
15336 Needed for backwards compatibility with old Java API
15337
15338 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015339 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015340 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15341 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15342 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15343 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15344 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015345 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015346 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15347 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015348 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015349 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15350 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15351 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15352 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15353 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15354 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15355 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15356 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015357 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015358 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15359 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15360 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15361 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15362 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15363 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15364 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15365 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15366 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15367 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15368 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15369 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15370 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15371 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15372 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15373 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15374 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15375 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15376 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15377 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15378 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15379 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15380 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15381 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15382 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15383 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15384 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15385 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015386 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015387 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15388 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15389 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015390 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015391 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015392 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15393 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15394 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15395 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15396 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15397 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15398 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15399 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15400 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15401 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15402 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15403 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15404 </ul>
15405 </li> <!-- tag_BC -->
15406 <li id="tag_V1">V1 -
15407 New features for first camera 2 release (API1)
15408
15409 <ul class="tags_entries">
15410 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15411 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15412 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15413 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15414 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15415 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15416 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15417 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15418 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15419 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15420 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15421 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15422 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15423 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15424 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15425 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15426 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15427 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15428 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15429 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15430 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15431 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15432 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15433 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015434 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015435 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15436 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15437 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15438 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15439 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15440 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15441 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15442 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15443 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15444 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15445 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15446 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15447 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15448 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15449 </ul>
15450 </li> <!-- tag_V1 -->
15451 <li id="tag_ADV">ADV - None
15452 <ul class="tags_entries">
15453 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15454 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15455 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15456 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15457 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15458 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15459 </ul>
15460 </li> <!-- tag_ADV -->
15461 <li id="tag_DNG">DNG -
15462 Needed for DNG file support
15463
15464 <ul class="tags_entries">
15465 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015466 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15467 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15468 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15469 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15470 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15471 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15472 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15473 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15474 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15475 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15476 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15477 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15478 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15479 </ul>
15480 </li> <!-- tag_DNG -->
15481 <li id="tag_EXIF">EXIF - None
15482 <ul class="tags_entries">
15483 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15484 </ul>
15485 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015486 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015487 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015488
15489 <ul class="tags_entries">
15490 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15491 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15492 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015493 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015494 </ul>
15495 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015496 <li id="tag_FULL">FULL -
15497 Entry is required for full hardware level devices, and optional for other hardware levels
15498
15499 <ul class="tags_entries">
15500 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15501 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15502 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15503 </ul>
15504 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015505 <li id="tag_LIMITED">LIMITED -
15506 Entry assists with LIMITED device implementation. LIMITED devices
15507 must implement all entries with this tag. Optional for FULL devices.
15508
15509 <ul class="tags_entries">
15510 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15511 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15512 </ul>
15513 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015514 </ul>
15515 </div>
15516
15517 [ <a href="#">top</a> ]
15518
15519</body>
15520</html>